0

我在这里遇到需要专家帮助的情况,情况是我们公司想要将数据库服务器运送到不同的地方,所以他们安装了新的服务器并对其进行测试,然后将其实际运送到目的地并带来旧服务器宕机,新服务器上线。问题是我们已经配置了服务器,但无法找到一个计划,让我们可以将停机时间降至最低,并让第二个数据库与主服务器中的所有数据一起启动。另一个痛点是这两者不会连接在一个网络中。因此,我们 260 GB 的数据库无法从一台服务器移动到另一台服务器。甚至在我们将新服务器移动到目的地并准备好上线之前,我们也不能有停机时间。

在服务器移动到目的地后,我们需要以某种方式同步数据库,请帮助。

4

2 回答 2

1

如果你能负担得起几个小时的离线时间,我会看看rsync. 如果您使用 Windows 系统,您可以获得一个发行版cygwin并安装它,包括rsyncssh.

我首先要做的是尝试尽可能准确地计算所需的估计离线时间。为了那个原因:

  1. 您必须cygwin在源机器和目标机器上进行设置并配置 SSH(有一个脚本可以为您完成几乎所有工作,名为ssh-host-config)。您需要确保可以通过 SSH 从源服务器连接到目标服务器。

  2. 首次将整个数据库备份文件复制.BAK到目标服务器。为方便起见,您第一次可以将 DB 备份文件压缩并拆分成更小的部分。一旦你第一次有了数据库备份文件,就不要再压缩源数据库备份文件了。

  3. 编写一个任务来每天rsync备份数据库文件。您可能需要配置 SSH 以无需密码(通过使用密钥)连接到目标服务器,在这种情况下,请查看这里的摘要详细信息

  4. 一旦您实现了一个稳定的过程,请检查数据并尝试计算在迁移当天将传输的字节量。

  5. 使用估计的字节数和上传/下载带宽速率,您应该能够得出所需时间的估计值。

我做出以下假设:

  • 数据库为 260 GB,但我希望几乎所有数据都是静态的。
  • 您可以对数据库执行每日(完整)备份。
  • 系统处于离线状态,一旦最终数据库备份过程开始,将没有待回滚/提交的待处理事务。

注意不是rsyncldfmdf文件在线,而是完整备份文件。说,考虑到这个其他DBA 线程

在上面提到的所有注释和评论之后,让我补充一点,去年我们面临与您相同的任务,使用较小的数据库,但在检查了其他可能性之后,我们最终完成了rsync,当然是在测试了所有步骤之后并预先测试并非常准确地知道所需的时间。

您的数据库很大,所以我不确定这种方法是否最适合您。

于 2012-08-28T16:36:41.287 回答
0

您可以设置新的数据库服务器。然后备份现有数据库并在新服务器上恢复。然后使用合并复制将数据从现有数据库复制到新数据库。当然,这是假设现有数据库服务器将能够连接到新的数据库服务器(即使通过互联网)。如果您根本无法通过网络连接,那么您将不得不面对这样一个事实,即会有一些停机时间。在这种情况下,您将备份恢复到新服务器上——这当然是完整备份。将数据库恢复到新服务器后,返回旧服务器并进行差异备份以及事务日志备份。然后您需要关闭旧服务器(以便在恢复时不会发生任何事务),

于 2012-08-27T12:13:17.963 回答