SQL Server 数据库迁移 - 在原始数据库仍在生产中时进行备份/恢复

Hor*_*man 2 sql-server backup migration sql-server-2008-r2 restore

我在完全恢复模式下有一个非常大的数据库。我的 SQL Server 是 2008 R2。问题是我需要迁移到新服务器,同时原始数据库仍在生产中。

备份和恢复都需要几个小时,所以...

  • 备份时添加到数据库中的记录会发生什么变化?如果我是对的,这不是问题,.bak文件将包含所有数据,直到备份结束。我是否标记了仅复制?

  • 备份完成后,我开始恢复......在新服务器中恢复时获取已添加到原始数据库的其余记录的最佳选择是什么?

我试过全+差分,但我收到一条消息

无法恢复差异备份,因为数据库尚未恢复到正确的早期状态

在我的测试环境中。

可以肯定这是最后一次完整备份,因为我只是在修改一条记录后一分钟后才进行备份。

另外,我用 norecovery 恢复完整,用 recovery 恢复差异。

我做错了什么?

备份将备份到磁盘,因为我需要尽快完成。

编辑:

我仍然收到消息“无法恢复差异备份,因为...”。有什么问题?

备份到磁盘时我必须做一些特别的事情吗?这些是 LSN:

+------------+--+-------------------+--+-------------------+--+-------------------+--+-------------------+-
| BackupType |  |     FirstLSN      |  |          LastLSN  |  | CheckpointLSN     |  | DatabaseBackupLSN | 
+------------+--+-------------------+--+-------------------+--+-------------------+--+-------------------+-
| FullBackup |  | 99000000025100209 |  | 99000000034000001 |  | 99000000033800001 |  | 98000002545900051 | 
| DiffBackup |  | 99000000033800001 |  | 99000000036800001 |  | 99000000035000041 |  | 98000002545900051 | 
+------------+--+-------------------+--+-------------------+--+-------------------+--+-------------------+-
Run Code Online (Sandbox Code Playgroud)

Kin*_*hah 6

第一步是将恢复模式更改为 FULL。

进行完整备份(带压缩),并将完整备份还原到新服务器with NORECOVERY。这将允许您恢复额外的日志备份。

现在配置从主(旧)服务器到辅助(新)服务器的日志传送。

在切换期间,进行尾日志备份并通过恢复日志备份使辅助服务器联机WITH RECOVERY

确保在两台服务器上都启用了即时文件初始化以减少恢复时间。

有关更详细的步骤,请参阅我对将数据库移动到新数据中心的回答