zoukankan      html  css  js  c++  java
  • 文件收缩和移除

    收缩数据文件(要腾空间,没办法只能收缩文件)的过程中,遇到日志备份,报错

    USE [DBA_Monitor]
    GO
    DBCC SHRINKFILE (N'DBA_Monitor' , 276000)
    GO
    View Code


    等待日志备份结束,再次收缩数据文件,报错

    查询得知可通过修改文件初始大小

    --修改文件初始大小,当前大小的基础上加1M
    USE [master]
    GO
    ALTER DATABASE [DBA_Monitor] MODIFY FILE ( NAME = N'DBA_Monitor', SIZE = 283649024KB )
    GO
    View Code

    再次收缩正常。
    发现一数据库有两个日志文件,SQLServer对日志记录是按照严格的顺序写入的。所以虽然这里有两个日志文件,SQLServer还是在一个时间点只写其中的一个。只有这个文件写满了,SQLSERVER才会写入另外一个。因此加入多个日志文件对性能基本不会有什么帮助。
    如何确认当前使用的是哪个日志文件?
    可以使用dbcc loginfo命令,查看当前Status>0的FileID

    create table #loginfo(FileId int,FileSize int,StartOffset bigint,FSeqNo bigint,Status int,Parity int,CreateLSN varchar(32))
    insert into #loginfo
    exec('dbcc loginfo')
    select * From #loginfo
    where status>0
    drop table #loginfo
    View Code

    如何删除多余的日志文件
    首先,清空多余的日志文件;然后,删除清空后的日志文件

    --step1通过将数据迁移到同一文件组中的其他文件来清空文件
    USE [DBA_Monitor]
    GO
    DBCC SHRINKFILE (N'DBA_Monitor_log2' , EMPTYFILE)
    GO
    --step2移除清空后的日志文件
    USE [DBA_Monitor]
    GO
    ALTER DATABASE [DBA_Monitor] REMOVE FILE [DBA_Monitor_log2]
    GO
    View Code
  • 相关阅读:
    到底什么时候该使用MQ?
    阿里巴巴开源项目 Druid 负责人温少访谈
    MYSQL外键的使用以及优缺点
    SpringMVC拦截器(资源和权限管理)
    SpringMVC访问静态资源
    设计模式读书笔记文档下载
    java提高篇(八)----详解内部类
    Storm:最火的流式处理框架
    vue 学习视频推荐 & 初始化项目流程
    页面布局练习
  • 原文地址:https://www.cnblogs.com/Uest/p/5807888.html
Copyright © 2011-2022 走看看