Nei*_*ght 7 sql-server-2008 sql-server transaction-log maintenance-plans
是否有在 SQL Server 2008 中配置维护计划的最佳实践?目前,我正在删除超过 40 小时的数据库备份和事务日志,然后进行备份。我看到的问题是事务日志仍然非常大。我应该包括收缩数据库计划任务吗?
如果您的日志文件越来越大,那么您至少做错了以下一件事情:
BEGIN TRANSACTION,锁定了他们的工作站,然后去度假了。在这个问题中可以看到更多关于这个的细节:
为了暂时缩小日志,如果您处于完全恢复模式并希望保持这种状态,则应执行以下步骤并重新启动日志链以确保安全:
USE [master];
GO
ALTER DATABASE db_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- if you are already in simple, remove this line:
ALTER DATABASE db_name SET RECOVERY SIMPLE;
GO
CHECKPOINT;
GO
-- if you're already in simple, or want to stay that way, remove this line:
ALTER DATABASE db_name SET RECOVERY FULL;
GO
BACKUP DATABASE db_name TO DISK = 'path' WITH INIT, COMPRESSION;
GO
USE db_name;
GO
DBCC SHRINKFILE(N'db_name_log', 30); -- pick some size that makes sense
GO
USE [master];
GO
-- if recovery is full, re-init log chain, otherwise remove this line:
BACKUP LOG db_name TO DISK = 'path' WITH INIT, COMPRESSION;
GO
ALTER DATABASE db_name SET MULTI_USER;
GO
Run Code Online (Sandbox Code Playgroud)
如果您已经在简单(极不可能)或者如果您想切换到简单,我评论了应该删除的行。