我目前正在尝试通过恢复完整备份,然后进行差异备份,然后在生产数据库中提供事务日志时补充它们,从而使我们的生产数据库的副本保持最新。源是 SQL Server 2008 Enterprise Edition,目标是 SQL Server 2014 Web。这样做我注意到您可以多次恢复相同的日志(只要之后没有恢复新的日志)。
问题:多次还原同一个事务日志时会发生什么情况?它会被覆盖吗?丢弃?它搞砸了我的数据库吗?
例如
sqlcmd -E -Q "RESTORE LOG [databasename] FROM DISK = 'D:\ LOG\SERVERNAME_databasename_LOG_20160809_141504.trn' WITH NORECOVERY" 已为数据库 'databasename'、文件 1 上的文件 'databasename_dat' 处理了 0 页。为数据库 ' 处理了 0 页databasename',文件 1 上的文件“MyDBDat”。为数据库“databasename”处理了 65662 页,文件 1 上的文件“databasename_log”。RESTORE LOG 在 27.589 秒(18.593 MB/秒)内成功处理了 65662 页。
sqlcmd -E -Q "RESTORE LOG [databasename] FROM DISK = 'D:\LOG\SERVERNAME_databasename_LOG_20160809_141504.trn' WITH NORECOVERY" 为数据库 'databasename' 处理了 0 页,文件 1 上的文件 'databasename_dat'。为数据库 ' 处理了 0 页databasename',文件 1 上的文件“MyDBDat”。为数据库“databasename”处理了 65662 页,文件 1 上的文件“databasename_log”。RESTORE LOG 在 26.238 秒(19.551 MB/秒)内成功处理了 65662 页。
一遍又一遍地恢复相同的事务日志不会给您带来任何好处。在第一次还原后,日志中的更改将已应用于数据库文件,并且不需要对同一事务日志备份的后续还原执行进一步操作。
另外,请记住,除非您使用的是启用只读访问的备用文件,否则在发出 with recovery 命令之前,您无法访问数据库。
根据您想要与生产数据库保持同步的原因,听起来您可能想要研究日志传送