Sna*_*ken 8 sql-server-2005 sql-server migration sql-server-2014
我的公司正在将我们的基础设施迁移到新的数据中心,我正在尝试找出使新服务器上的数据库与当前生产数据库保持同步的最佳方法,直到新环境准备好投入使用。作为一名全职 DBA,我做了一些研究,从我所读到的内容来看,跨国复制设置似乎最适合我们的需求。
一些细节:生产数据库的大小约为 90 GB,使用 Robocopy 将其副本移动到其中一台新服务器需要大约 9 个小时。当前的生产数据库需要在整个迁移过程中保持在线和可访问。由于是简单恢复,所以数据库镜像不可用。
事务复制是保持数据库同步的最佳方法吗?
我的计划:
我心里有两件事。事务复制要求每个发布的表都有一个主键,而生产数据库中的很多表都没有定义主键。我不认为这会是一个太大的问题,因为我主要关心的是让数据库同步。我们将在稍后的数据中测试使用数据库的不同应用程序,但我想确保这不是一个严重的问题。其次,我是否还需要从原始实例中移动任何关联的系统 DB,例如 master?我们正在新环境中迁移到 Active Directory 设置,所以我不关心用户等,但我不确定系统 DB 的必要性。
总的来说,我是否正确理解了这些概念?
您目前的情况:
我看到你的方法有很多缺点:
根据我的经验,以下是我的建议:
WITH NORECOVERY
。WITH RECOVERY
。这将使目标数据库联机。您不必移动任何系统数据库。确保在手动之前完成所有准备工作 - 编写登录、作业、ssis 包等的脚本并在目标服务器上创建它们。
注意:您也可以实现数据库镜像(SYNC 或 ASYNC,具体取决于您使用的 sql server 版本),但日志传送实现起来很简单,如果您对其进行测试,它不会让您失望。我已经使用上述技术成功地将 TB 级数据库从一个数据中心移动到另一个数据中心,并且运行良好。
当前的生产数据库需要在整个迁移过程中保持在线和可访问。
总会有停机时间,您必须对其进行安排。即使您在集群等解决方案上投入大量资金,当您进行故障转移时,也会有一些停机时间。您必须平衡您的公司可以投资多少来实现接近零的停机时间与一些可接受的停机时间可用的停机时间。