SQL Server DB镜像中Ldf文件过大,在不中断镜像的前提下,如何缩减Ldf文件(Mdf文件已超过1.5T,Ldf文件已达到500G,全备份每周执行一次,日志文件每两小时备份一次)?望大师指教,谢谢!sql server镜像

解决方案 »

  1.   

    楼上不要误人子弟了。。直接在主库上上备日志,再收缩日志:dbcc shrinkfile(2,128)就可以了。
    镜像文件会自动随主变动收缩掉。
      

  2.   

    查询sys.databases log_reuse_wait_desc 栏位看看是什么原因导致日志太大的。如果是日志备份不频繁可以增加日志的备份频率。如果是因为镜像同步的问题,可能要看看如何解决(因为主数据库的日志需要同步到镜像并且备份以后空间才可重用)从不建议直接删除日志文件,因为如果数据库不是被干净的关闭日志就无法重建,会遇到很大的问题。 
      

  3.   

    另外DBCC SQLPERF(LOGSPACE)可以看到LOG真实的使用率
      

  4.   

    DBCC SHRINKFILE (logfile, 1)是需要将数据库恢复模式设置为 SIMPLE 才能截断,这样的话Mirror就必须先停掉了.
      

  5.   

    数据库恢复模式为Full时,可以执行DBCC SHRINKFILE (logfile, 1),但是空间是不会释放出来了,测试下就知道了.
    数据库恢复模式为Full时,可以执行DBCC SHRINKFILE (logfile, 1),但是空间是不会释放出来了,测试下就知道了.
      

  6.   

    可以可以啦,为什么一定要在DB执行Transaction log备份才可以?
      

  7.   

    做了日志备份,里面的已提交事务就写入了mdf了,这样ldf里面的可用空间就变大,可以收缩,但是也可以不管,因为里面的空间可以重用。对于镜像,不要设为简单模式。做下日志备份再收缩