Jor*_*son 28 sql-server sql-server-2005
我有一个具有28gig事务日志文件的数据库.恢复模式很简单.我刚刚对数据库进行了完整备份,然后运行了两个:
backup log dbmcms with truncate_only
DBCC SHRINKFILE ('Wxlog0', TRUNCATEONLY)
backup log dbmcms with truncate_only
DBCC SHRINKFILE ('Wxlog0', TRUNCATEONLY)
backup log dbmcms with truncate_only
DBCC SHRINKFILE ('Wxlog0', TRUNCATEONLY)
db的名称是db_mcms,事务日志文件的名称是Wxlog0.
两者都没有帮助.我不知道下一步该做什么.
Jor*_*son 44
谢谢大家的回答.
我们终于找到了这个问题.在sys.databases中,log_reuse_wait_desc等于'replication'.显然,这意味着SQL Server在重用日志空间之前等待复制任务完成的效果.
从未在此数据库上使用复制,或者此服务器曾在此数据库上玩过一次.我们通过运行sp_removedbreplication清除了错误的状态.运行之后,备份日志和dbcc shrinkfile工作得很好.
绝对是一个包的技巧.
资料来源:
http://www.eggheadcafe.com/conversation.aspx?messageid=34020486&threadid=33890705
Nic*_*ias 29
如果您的数据库设置为自动增长日志并且最终会有大量虚拟日志文件,则可能会遇到此问题.
运行DBCC LOGINFO('databasename')并查看最后一个条目,如果这是2,则您的日志文件不会缩小.与数据文件不同,虚拟日志文件无法在日志文件中移动.
您需要多次运行BACKUP LOG和DBCC SHRINKFILE才能使日志文件缩小.
对于额外的奖励积分,在日志和推卸之间运行DBBC LOGINFO
小智 7
“sp_removedbreplication”并没有为我解决问题,因为 SQL 只是返回说数据库不是复制的一部分...
我在这里找到了答案:
基本上我必须创建一个复制,将所有复制指针重置为零;然后删除我刚刚所做的复制。IE
Execute SP_ReplicationDbOption {DBName},Publish,true,1
GO
Execute sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
GO
DBCC ShrinkFile({LogFileName},0)
GO
Execute SP_ReplicationDbOption {DBName},Publish,false,1
GO
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121625 次 |
| 最近记录: |