我目前正在设置一个大型数据库(大约 1.5TB)的日志传送,并且想知道我可以对日志文件做些什么。
就目前而言,我想执行以下步骤:
- 将 DB 更改为 FULL 恢复
- 在主服务器上进行完整备份(5-6 小时)
- 将 FULL 备份恢复到辅助(保留在 NORECOVERY 中)
- 在主数据库上进行 DIFF 备份
- 将 DIFF 备份恢复到辅助(仍在 NORECOVERY 中)
- 使用“数据库已初始化”初始化日志传送
问题是,当我进行完整备份时,日志文件将比备份完成的速度更快。
我有哪些选项可以防止日志文件填满?我能否在完整备份期间照常进行日志备份,因为 DIFF 还原将涵盖该时间范围内发生的任何事务?以前有没有人用这种大小的数据库做过这个,有什么技巧/技巧可以让它更容易吗?
如果我理解正确的话,您的主要问题是几个小时的备份期间的日志文件。根据您的开场白,我了解到 1.5 TB 的数据库通常以 SIMPLE 恢复方式运行,因此无需进行日志备份。
免责声明:我从未进行过这种规模的日志传送。
当然,您应该询问是否可以为您的日志文件分配更多空间。如果可以,那就太好了。
但是,我认为对您的计划进行小幅修改,前提是您已经在 SIMPLE 恢复模式下运行和/或 SIMPLE 恢复模式的风险持续几个小时是值得的,这将减轻您的一些担忧。
明显的优点是:
关于何时可以开始日志备份:
https://technet.microsoft.com/en-US/library/ms190729(v=SQL.105).aspx
这表示:“新的日志链从创建数据库后的第一个完整数据库备份开始,或者从简单恢复模式切换到完整或批量日志恢复模式之后开始。”
所以,我仍然相信这会像概述的那样起作用。(不完全相同,但我使用差异备份来弥补日志文件丢失时的差距,从而为日志备份建立新的来源。)
(当然,请记住我的免责声明。)