通过网络以较低的停机时间迁移大型SQL Server数据库的最佳方法


22

问题定义

我们的数据库服务器需要转移到另一个数据中心。它在Microsoft SQL Server 2012 Enterprise(64位)上运行,并包含两个大约2TB和1TB的数据库。

为此,几乎没有停机时间甚至没有停机时间将是理想的。

工作量

这些数据库用于.NET网站,并且会不断更新。

周末不可用它是可以接受的。在切换到新数据库之前,当前正在使用的数据库将保持唯一。

理想情况下,只需更改DNS条目以指向新的数据库服务器,同时确保不更新数据库,即可进行该切换。

此外,只要将从一台服务器切换到另一台服务器的停机时间(停机时间)保持在较低水平,此操作所花费的时间并不重要。

考虑的方法

  • 备份还原

    过去已经做到了这一点,但是即使通过内部网络完成,也要花费大量的停机时间,因此比通过Internet 更有效

  • 日志传送

    据我了解,该方法将通过配置主/从服务器并将主数据库的精确副本传输到只读的从服务器,从而最大程度地减少停机时间。如上所述,不需要访问从属服务器,我们只需要一种在不破坏数据的情况下拥有主数据库副本的方法。

    就资源利用率而言,它似乎也相当有效,并且不会对主服务器性能产生太大影响。

    我对这种方法可能不对,请随时纠正我。

  • 数据库镜像

    我不太了解这种方法,但似乎是一个有效的选择。不需要实时同步,并且主机的性能非常重要,因此,如果选择这种方法,异步将是必经之路。

  • 还有其他选择吗?

    该服务器直接在裸机硬件上运行,因此不幸的是不能选择较低级别的解决方案。也许有更好的方法可以做到这一点?

约束条件

如上所述,这些数据库很大,难以维护,但这是另一个问题。

SQL Server的版本将相同(Microsoft SQL Server 2012 Enterprise 64位)。

它必须在两个数据中心之间通过网络传输,因此很有可能在Internet上传输。不幸的是,无法将磁盘从一个站点发送到另一个站点进行初始同步。为传输提供某种安全性将是理想的,但是我们会尽力解决这种情况。

这应该可以很好地概述我们对这项任务的需求,希望你们中的某些人不得不面对这种情况。

Answers:


20

直接备份和还原显然已经淘汰了。我也不会考虑任何形式的复制。

数据库镜像的建立相对简单,但是需要两台服务器之间的实时连接,合作伙伴和端点的建立等。可用性组可以是一种选择,但是除了网络复杂性之外,您还必须同时拥有两台服务器作为同一WSFC的成员-这意味着它们必须都在同一域中。对于数据中心迁移来说,这不是典型的设置(甚至可以使其暂时工作)。

我的投票将是原木运输。这样做的好处是,您可以使用已经进行的备份和日志备份(对吗?),并且不必一定要在两个数据库之间建立实时连接-他们不必了解每个数据库其他,您不需要为镜像,伙伴,安全性等设置端点。您只需要一种方法即可将文件从旧服务器获取到可以在新服务器上还原文件的位置。您可以事先做好完整备份,将其转移到新服务器上,进行还原,然后从该点开始应用(可能是差异和)增量日志备份,直到过渡为止。该过程实际上非常简单,如果遇到任何困难,可以在线获得许多有关日志传送的教程。

如果Web应用程序随数据库一起移动,由于DNS可能需要一段时间才能传播,因此您可能希望在旧应用程序的连接字符串中进行切换,以使其一旦可写就指向新数据库服务器的IP。 ,因为即使在切换之后,即使您的TTL设置很严格,客户端也可能会继续使用旧的Web服务器。这完全取决于其提供商对您的TTL的尊重程度。


16

我最近使用镜像在6个数据库中迁移了15TB。非常简单,可以完美地工作,只需几秒钟的故障转移时间。

编辑:

我有两个新的虚拟化SQL Server。这些数据库来自3台服务器,这些服务器已经过时了,并且正在影响托管在其上的较小数据库的性能。

这个过程非常简单。

  1. 等待周末完整备份完成
  2. 还原而不恢复到新服务器
  3. 还原完成后,暂停备份
  4. 运行一次额外的还原,直到从原始文件还原到最新的日志备份,而无任何恢复
  5. 开始跨所有六个镜像
  6. 恢复备份

我选择将它们保留在异步模式下,直到我们准备好对它们进行故障转移以减少网络负载等为止。镜像在维护(索引/统计)和其他大量活动期间会引起延迟,因此在一定程度上享有声誉,但是我没有发现这是真的。在进行手动故障转移之前,必须将它们切换到同步模式。

在下一个维护窗口期间,我手动对每个数据库进行故障转移,并且在进行了冒烟测试后,关闭了镜像,并最终从原始服务器中删除了旧数据文件。此过程中的一个怪癖是,对镜像数据库进行故障转移会使先前的主数据库处于恢复状态,因此除非您放心地将它们删除,否则需要将它们重新联机然后分离,或者采用您喜欢的任何删除方法。另外,我没有为此配置见证服务器,因为我不希望自动故障转移。这是一个受控事件。

如果您需要其他详细信息,请告诉我。我没有列出服务器和网络规格,但可以根据需要提供。

谢谢

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.