Acronis Backup 不会在创建磁盘备份后截断事务日志。如果您不使用 Microsoft SQL Server 的本地备份引擎或是能自动管理事务日志的任何第三方备份解决方案,您可以通过以下方法来管理日志。
有关截断功能的更多信息,请参阅以下文章:
http://technet.microsoft.com/en-us/library/ms189085(v=sql.105)
有关缩小的更多信息,请参阅以下文章:
http://technet.microsoft.com/en-us/library/ms178037(v=sql.105)
使用 SQL Server Management Studio 进行日志截断
当您将数据库切换至简单恢复模式时,事务日志将自动截断。
自动进行日志截断和缩小
您可使用脚本自动执行上述截断操作并(可选地)进行日志文件缩小。如果您将该脚本添加至备份后命令,日志将在备份后立即截断并缩小。此方法假设您具备编写 Transact-SQL 脚本的技能并且熟悉 sqlcmd 实用工具。
有关 Transact-SQL 和 sqlcmd 的更多信息,请参阅以下文章:
对 SQL 实例自动进行事务日志截断和缩小
USE database_name
ALTER DATABASE database_name SET RECOVERY SIMPLE;
DBCC SHRINKFILE(logfile_name);
ALTER DATABASE database_name SET RECOVERY FULL;
在最后一个字符串中,SET RECOVERY 值取决于具体数据库的原始恢复模式,该值可为 FULL 或 BULK_LOGGED。
具有两个数据库(TestDB1 和 TestDB2)的实例示例:
USE TestDB1;
ALTER DATABASE TestDB1 SET RECOVERY SIMPLE;
DBCC SHRINKFILE(TestDB1_log);
ALTER DATABASE TestDB1 SET RECOVERY FULL;
USE TestDB2;
ALTER DATABASE TestDB2 SET RECOVERY SIMPLE;
DBCC SHRINKFILE(TestDB2_log);
ALTER DATABASE TestDB2 SET RECOVERY BULK_LOGGED;
sqlcmd -S myServer\instanceName -i C:\myScript.sql
其中:
对多个 SQL 实例自动进行事务日志截断和缩小
如果计算机中有多个实例且您想对这些实例应用上述过程,请按照以下说明操作:
sqlcmd -S myServer\instance1 -i C:\script1.sql
sqlcmd -S myServer\instance2 -i C:\script2.sql