Windows Azure VM 之间的数据库镜像

Posted

技术标签:

【中文标题】Windows Azure VM 之间的数据库镜像【英文标题】:Database mirroring between Windows Azure VMs 【发布时间】:2014-05-23 16:26:45 【问题描述】:

我有两个运行 SQL Server 标准 2012 的 Windows Server 2012 数据中心 R2 虚拟机。我在每个虚拟机上都安装了我的应用程序和数据库服务器。两个虚拟机都驻留在同一个云服务中。

我还通过端口:80 在两个虚拟机之间设置负载平衡。现在是镜像数据库的问题。我尝试设置 SQL 镜像,但到目前为止没有运气。我不确定这两个虚拟机如何通过同一个端口 5022 相互通信。

我也做了一些阅读,但我仍然不确定这样做的可能方法是什么。我现在肯定需要帮助。

问题: a) 我是否需要设置虚拟网络才能镜像数据库? b) 我可以镜像数据库驻留在同一个虚拟网络中吗? c) 如果我的上述假设不正确,那么最好的方法是什么?

提前致谢!!

更新:我设法在 VM1 中设置了 Principle 服务器,在 VM2 中设置了 Mirror & Witness 服务器(如果您有资源,最好将它们放在单独的 VM 中)。两个虚拟机都驻留在同一个虚拟网络和同一个云服务中。

所以当 Principle 不可用时,Witness 会自动将 Mirror 设置为 Principle,不再处于恢复状态。

如果您计划在同一服务器中同时拥有见证和镜像 SQL 实例,请确保为见证服务器使用不同的端口。 例如。

- Principle : 5022
- Mirror    : 5022
- Witness   : 5023

【问题讨论】:

虚拟机是否在同一个关联组中? 是的,我把它们都放在东亚的同一个地区。 这个问题和镜像有什么关系?这纯粹是 Azure 中的网络问题。 【参考方案1】:

它们可以在同一个云服务中,并将它们放在同一个 CS 中将使生活更简单,因为不需要处理公共端点。事实上,云服务只是一个虚拟机和/或角色的容器,它也与隐式创建的网络相关联(因此您需要一个端点才能从外部访问它)。

还建议将虚拟机放入同一个可用性集中,在这种情况下,Azure 将尝试不同时关闭所有虚拟机。

设置 DBM 的最简单方法是使用证书。您可以查看示例here。

注意:如果您需要自动故障转移,请不要忘记设置见证。

【讨论】:

您好 Evgeny,我想镜像 DB 以使用负载平衡。即,如果我可以维护 VM1 的数据库副本并将其存储在 VM2 上。如果 VM1 不可用,我的应用程序将在 Azure 负载平衡的帮助下与 VM2 联机。但不确定在不丢失这两个功能的情况下设置我的虚拟机的最佳方法是什么。即数据库镜像和负载平衡。 也是不是说我不一定需要虚拟网络?可以用同一个云服务存档吗? 不幸的是,DBM 只有在您可以使用 DB 快照的情况下才可用于负载平衡,这意味着您在“辅助节点”上的数据将始终落后。其他选项是 AlwaysOn 可用性组(尤其是在 SQL 2014 中,您有多达 8 个可读辅助副本)。如果您不需要高可用性,而只需要负载平衡,您可以查看日志传送。它将为您提供几乎无限数量的可读副本,但数据可能落后于这些副本。 感谢您的想法,但我使用的是 SQL 服务器标准,并且我认为 Always On 不适用于 std。顺便说一下 DBM,如果修改了辅助数据库(镜像),这些更改会反映在主数据库中吗? 我想这就是我需要见证服务器的原因。【参考方案2】:

为了让两个 Azure VM 进行通信,需要将它们设置在同一个关联组中。

虚拟网络是一个专门的关联组,您可以在其中控制 IP。

虚拟网络设置完成后,为数据库设置复制应该没有问题。

【讨论】:

它们是否也需要驻留在同一个云服务中? 不,事实上,我不认为他们可以拥有相同的云服务。我还没有尝试过,但个别云服务总是能更好地工作。我过去曾遇到过冲突。 我认为负载平衡不适用于不同的云服务。来源:blogs.msdn.com/b/walterm/archive/2013/06/13/… 您能确认一下吗?即负载平衡仍然适用于同一虚拟网络中的不同云服务?我的阅读表明它没有。 看起来@Evgeny 有云服务和复制方面的经验。在这方面我会听从他的建议。

以上是关于Windows Azure VM 之间的数据库镜像的主要内容,如果未能解决你的问题,请参考以下文章

Windows Azure上的时钟同步质量?

Azure 数据科学 VM 和 Azure 深度学习 VM 之间的区别

在Azure China用自定义镜像创建Azure VM Scale Set

记一次Azure VM 迁移(不同的订阅之间)

Azure VM 使用 D: 盘作为 Windows VM 上的数据驱动器

[AWS][迁移] 使用 VM import 将 Azure 虚拟机迁移至 AWS 平台