本文介绍如何使用 Oracle Data Guard 将本地 Oracle 数据库迁移到 Azure 虚拟机(VM)。 本文假定你已基本了解 Oracle 数据库技术、Azure 计算和 Azure 网络。 此方案基于将 Oracle 数据库工作负荷迁移到 Azure 中的方案。
体系结构
下图演示了此方案的示例。
下载此体系结构的 Visio 文件。
场景
请考虑以下方案详细信息:
在本地网络中,已有一个 Oracle 数据库实例,并且想要将数据库从该实例迁移到 Azure VM。
数据库为 20 TB,在 Oracle Enterprise Linux(x86)上运行。 数据库版本为 Oracle Database 19c,企业版。
数据库已启用实际应用程序群集(RAC),其中包括两个节点。 若要进行灾难恢复,请通过 Oracle Data Guard 将数据库复制到与主数据库位置相距遥远的另一个数据中心。
你 对本地 Oracle 数据库和应用程序服务进行了评估 ,并在 Azure 中部署了具有所需计算大小和存储配置的 VM。
将 VM 放置在 Oracle 虚拟网络中的数据库子网中,该子网与中心虚拟网络对等互连。 数据库子网的 IP 地址范围为 10.42.1.0/24。
在中心虚拟网络中,流量必须遍历非Microsoft网络虚拟设备(NVA),例如 FortiGate、Check Point 或 Cisco。 NVA 充当路由设备,有助于确保 VM 与本地 Oracle 数据库实现之间的连接完全可路由。 配置 NVA 以检查进出本地的所有流量。 中心 NVA 的 IP 地址为 10.0.0.5。
通过 Azure ExpressRoute 连接到本地网络,在中心虚拟网络中配置混合连接。
需要将本地数据库迁移到 Azure VM,并尽可能减少停机时间。 你决定使用 Oracle Data Guard 和 Oracle 恢复管理器 (RMAN) 进行迁移。
建立网络连接
若要使用 Oracle Data Guard 进行迁移,需要确保源数据库和目标数据库可以相互通信。
- 创建 Azure 路由表并将其与数据库子网相关联。
- 将 Azure 路由表指向中心 NVA 的 IP 地址,以路由到本地环境。
- 将中心 NVA 配置为在本地环境和数据库子网之间路由流量。
配置路由表
使用以下配置创建 Azure 路由表,并将其与数据库子网相关联:
- 地址前缀:192.168.0.0/16
- 下一个跃点类型:虚拟设备
- 下一跃点 IP 地址:10.0.0.5
- 名称: <路由表名称>
下图显示了更新的网络配置示例。
执行以下步骤以验证连接性。
- 登录 Azure VM。 验证是否可以使用安全外壳 (SSH) 协议建立与本地数据库服务器的连接。
- 登录到本地数据库服务器。 验证是否可以使用 SSH 协议建立与 Azure VM 的连接。
执行迁移活动
使用 RMAN 从本地数据库服务器备份数据库并将其还原到目标系统。 有关详细信息,请参阅 在新主机上还原数据库。
根据数据库备份文件大小和网络带宽,你可能能够将备份文件直接复制到为该目的专门创建的一组临时区域磁盘上的 Azure VM。 如果由于网络带宽限制而无法使用该方法,可以使用 Azure Data Box 将备份文件复制到 Azure。 文件位于 Azure Blob 存储中后,应将其复制到 Azure VM 暂存区域集,以便执行还原操作。
在本地数据库服务器(主副本)和 Azure VM 数据库服务器(次要副本)之间配置 Oracle Data Guard。 有关详细信息,请参阅 创建物理备用数据库。
Oracle Data Guard 复制完成后,数据库同步后,执行切换到 Azure VM。 有关详细信息,请参阅 角色转换。 与应用程序团队协调此步骤,确保更新应用程序服务以指向新数据库。
与数据库迁移并行执行以下应用程序迁移活动,以帮助确保停机时间最少。
- 根据计划和讨论迁移应用程序服务。
- 更新应用程序服务以指向新数据库,包括连接字符串、透明网络基底(TNS)条目和其他必需配置。
- 验证应用程序服务是否按预期工作。
执行迁移后活动
为 Azure VM 上的数据库配置备份。 有关详细信息,请参阅 Azure Linux VM 上 Oracle 数据库的备份策略。
Azure VM 不支持 Oracle RAC,因此请考虑使用 Oracle Data Guard 实现高可用性和灾难恢复。 有关详细信息,请参阅 Azure VM 上 Oracle 的业务连续性和灾难恢复。
将本地数据库作为辅助 Data Guard 副本运行一段时间,以确保迁移成功。
不再需要本地数据库后,停用数据库和服务器。 查看对端口和防火墙所做的更改,以允许本地环境和 Azure VM 之间的通信。 转换不再需要的任何更改。
结束语
执行上述配置更改,将数据库从本地环境迁移到 Azure VM。 配置更改有助于确保源数据库和目标数据库可以相互通信,并且可以在最短停机时间的情况下进行迁移。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
- Jan Faurskov |云解决方案架构师
- Güher Kayali Sarikan |云解决方案架构师
要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
查看以下文章,确保实现遵循建议的做法: