我们有一台用于网站和 SQL Server 数据库的生产服务器。我们计划为网站和 SQL Server 配备一台新的生产服务器。我们需要将 SQL Server 数据库从旧服务器迁移到新服务器。
那么,如何才能以更少的停机时间将数据库迁移/移动到新的生产服务器?
谢谢,Velu。
答案1
如果您使用 SQL Server 2005/2008,则可以使用镜像:
- 安装新的 SQL Server 实例
- 从生产服务器在此服务器上创建镜像数据库
- 等到数据库同步
- 关闭旧服务器
- 从新服务器删除镜像
- 恢复镜像数据库
停机时间 = 删除镜像并恢复数据库的时间
如果你不想使用镜像,你可以不使用镜像来做同样的工作:
- 安装新的 SQL Server 实例
- 从生产数据库创建备份
- 在新服务器上复制并使用 NORECOVERY 选项恢复生产数据库
- 将生产数据库转变为单用户模式
- 进行事务日志备份
- 关闭生产服务器
- 在新服务器上复制并使用 RECOVERY 选项恢复日志
停机时间 = 进行日志备份、复制并在新服务器上恢复此备份的时间
答案2
取决于——你知道多少?
一种方法是设置镜像,然后切换镜像并删除旧服务器。另一方面,镜像比使用 UI 设置数据库更深入地了解 sq server。
答案3
我知道下面的方法不是最有效或最先进的方法 - 但我确实认为这是几乎任何人都可以用最少的帮助和很少的停机时间做到的方法......
假设您正在谈论 CMS 的数据库,您可以获取新服务器上网站新位置的临时 URL(我们使用外部托管,他们往往会设置这一点 - 临时 URL 通常是带后缀的 IP 地址)。然后遍历数据库,将引用旧 URL 的值替换为新的临时 URL。
然后,您还可以在新服务器(或其他任何服务器)上恢复网站,替换新 URL 的值。这样您就可以测试数据库是否正常运行。当您满意时,您可以更改 DNS(或 A 记录或其他),以便原始 URL 指向新服务器,将所有内容改回原样(使用良好的查找和替换程序,这只需一两分钟)然后就大功告成了。这不是进行转移的最快方法,但它应该能为您的网站提供最少的停机时间,让您高枕无忧,一切都会正常运转。
您使用什么 CMS?
答案4
如果数据库文件单独位于 LUN 上(或者与您不介意移动的其他文件一起),您可以将 LUN 从旧服务器分离并将它们附加到新服务器。然后,您可以在新服务器上执行“创建数据库...以进行附加”。
此外,我逐渐喜欢使用单节点集群来满足未来的需求。这样,如果您需要新硬件,您可以向集群中添加一个节点,运行节点设置,然后就可以开始工作了。不过,这假设 SQL 2008+。