将生产数据库迁移到新的环境

我们已经有了一些SQL Server 2005数据库,我们将很快转移到新的生产服务器上。 这些数据库并不庞大,但却足够大,以尽可能less的停机时间来做到这一点很棘手。

这三个数据库将首先被移动,因为它们是最关键的,它们的大小分别是5,9和25 GB(数据只有没有日志)。

现在有几种可能,但由于我不是一个完整的DBA,我想也许这里有些人可能有更好的想法/build议。 这是我们想出来的。

* Create a full backup, move the file and restore the backup. 

这是可能的,但是由于数据库相当大,这意味着系统停机时间会非常严重(几个小时),因为数据库需要移动。

是否有可能今天创build和恢复备份,然后在实际移动时进行差分恢复? 到目前为止,通过差异还原可以发现的问题是,这些问题总是被添加到完全备份中,这会使文件保持相同的大小,并且不会因为将文件从服务器移动到服务器而减less停机时间。

为了使这个“更多”棘手,新的数据库将被configuration为镜像,旧的环境不镜像。 这意味着我必须在主服务器上恢复差异备份(我不认为这应该会导致问题,但我想我会问。)

如果还有另外一个更简单或更好的方法来做这个,那么当然我也很乐意听到这个。

StackOverflow上的用户简单地回答:“您可以使用镜像来完成此操作”。 没有涉及到很多细节,我看到的方式是我可以根据新的原则创build一个镜像,然后强制镜像接pipe旧的生产服务器。 然后,我禁用镜像,并重新启用对新镜像服务器的镜像。

会这样吗?

我多次进行了这种迁移,对我来说最好的方法是:

  • 完整备份(使用数据库)

  • 事务日志每n分钟备份(n取决于时间来复制整个备份)

  • 将完整备份复制到新服务器,然后恢复数据库而不进行恢复( RESTORE....NORECOVERY

  • 复制和恢复(始终没有恢复)事务日志

  • 当新数据库几乎在线时,停止使用旧数据库的应用程序,创build最后一个事务日志备份,将其复制到新服务器并恢复。

  • 现在你在新的服务器上有一个非常less的停机时间的数据库。

就备份和移动数据库而言,我经常在不到半小时的时间内备份​​一个30GB的数据库。 如果您将它们备份到连接到当前服务器的外部USB驱动器,并通过USB驱动器将它们传输到新服务器并恢复它们,则不需要花费大约一个小时,就花几分钟时间。

我试图给出一个观点,
也许我错了让别人说如果这不是常规的方式你可以设置事务复制到NEW服务器和发布和订阅数据库,所以你让两个数据库运行在滞后的几秒钟。
之后,closures客户端的旧数据库连接,等待几秒钟。
禁用复制并开始使用新的数据库