11 sql-server
嗨,我有一个生产数据库及其复制的报告数据库.如何在日志文件大小增加时缩小生产数据库中的事务日志文件.我曾尝试过 DBCC SHRINKFILE和SHRINKDATABASE命令,但它对我不起作用.我无法分离和缩小并作为复制中的数据库附加回来.请帮我解决这个问题.
小智 15
首先通过运行检查导致数据库不缩小的原因:
SELECT name, log_reuse_wait_desc FROM sys.DATABASES
Run Code Online (Sandbox Code Playgroud)
如果您被交易阻止,请找到以下内容:
DBCC OPENTRAN
Run Code Online (Sandbox Code Playgroud)
杀死事务并缩小数据库.
如果阻止的原因是"REPLICATION"并且您确定副本是同步的,则可能需要重置复制事务的状态.要查看数据库仍然认为需要复制的状态,请使用:
DBCC loginfo
Run Code Online (Sandbox Code Playgroud)
您可以通过先关闭Reader代理(我通常只关闭整个SQL Server代理)重置此项,然后在要修复复制问题的数据库上运行该查询:
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time= 0, @reset = 1
Run Code Online (Sandbox Code Playgroud)
关闭执行该查询的连接,然后重新启动SQL Server代理(或只是Reader代理).你现在应该全力以赴收缩你的数据库了.
| 归档时间: |
|
| 查看次数: |
20757 次 |
| 最近记录: |