我有一个场景,我正在将 T-Log 备份运送到我们的 DR 站点并将其还原到我们的 DR SQL 服务器。
我正在尝试解决的问题是,目前为了对 DR 站点进行测试,我们必须将这些数据库上线,进行测试,然后发送完整备份,以便我们可以启动 t-log 恢复。
有什么方法可以让这些数据库生效,进行测试,然后回到恢复模式数据库,而不需要发送完整的数据库备份?
答案1
我能想到两种方法可以实现你想要的效果。
第一种方法:本地恢复和回滚:
- 停止日志传送实例上的 SQL 服务。
- 将所有数据库(包括系统数据库)复制到安全的地方 - 这些是您的回滚文件。
- 使实例重新联机并恢复数据库。
完成后,停止实例并将回滚文件复制回文件并重新启动,您的日志传送将恢复。
复制文件时使用复制实用程序来验证文件(复制/V 等)以确保复制是可行的。
第二种方法:重命名
- 创建一个新的数据库,其名称与您计划用于测试的名称相同(该数据库将在文件级别被日志传送数据库的副本覆盖)。
- 停止日志传送实例上的 SQL 服务。
- 删除步骤 1 中创建的数据库的数据和日志文件,确保跟踪步骤 4 中使用的文件名。
- 将日志传送数据库的数据库文件复制(重复)到相同的文件夹,然后重命名它们以匹配您在步骤 3 中刚刚删除的数据库文件。
- 重新启动实例;系统将自动恢复数据库。
- 测试完成后删除数据库。
答案2
不可以。您无法修改备用数据库,第一次写入将使数据库与主数据库分离,并且整个过程必须重新播种。一种解决方案是让您的测试是非破坏性的,即只读的,这样它们就可以在备用数据库上运行。