OB Cloud 云数据库的迁移功能和跨区域同步能力,可以高效实现跨云双活和高可用架构。
说明:跨云厂商数据同步迁移功能为白名单功能,如需使用,请联系 OB Cloud 技术支持人员。
原理介绍
OB Cloud 云数据库支持在不同的云服务商之间部署相同的数据和服务。每个云环境都处于活跃状态,同时处理业务请求,并通过实时数据同步技术保持数据的一致性。
当其中一个云环境发生故障时,另一个云环境可以无缝接管所有业务流量,确保服务不中断。这种架构不仅提高了系统的容错能力,还减少了对单一云服务商的依赖,增强了整体系统的可靠性和稳定性,更多内容参见 跨云双活实现高可用。(可查看链接:https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000001755592)
场景介绍
将商城业务部署在不同云厂商,客户分别在阿里云和腾讯云下单后,两端的数据库通过实时的跨云双活复制链路保持实时同步,详细内容参见 跨云双活高可用 Demo(可查看链接:https://www.oceanbase.com/demo/cross-cloud-bidirectional-synchronization)。本期最佳实践为您介绍在 OB Cloud 云数据库控制台如何实现跨云双活操作。
前提条件
-
以腾讯云和阿里云实例为例,已完成事务型实例创建,分别为实例 A 和实例 B,实例 A 为源端,实例 B 为目标端。
-
仅项目角色为项目所有者、项目管理员或数据服务管理员的用户支持创建数据迁移任务。
-
源端数据库的操作限制,请勿在结构迁移和全量迁移阶段执行库或表结构变更的 DDL 操作,否则可能造成数据迁移任务中断。
-
仅支持 OceanBase 数据库同类型租户之间的数据迁移。即支持迁移 OceanBase 数据库 MySQL 兼容模式租户的数据至 OceanBase 数据库 MySQL 兼容模式租户、迁移 OceanBase 数据库 Oracle 兼容模式租户的数据至 OceanBase 数据库 Oracle 兼容模式租户。
-
数据迁移仅支持迁移库名、表名和列名为 ASCII 码且不包含特殊字符(包括 .|"'`()=;/& 和换行)的对象。
-
数据迁移不支持大小写敏感模式。如果目标端存在同名仅大小写不一致的库或表,预检查会报错。
-
目标端是数据库的情况下,数据迁移不支持目标端存在触发器(Trigger)。如果存在,可能导致数据迁移失败。
操作步骤
以下通过 OceanBase Cloud 的迁移功能和同步机制,构建跨云双活、高可用的数据库架构。
创建租户及账号
分别为实例 A 和实例 B 创建租户、数据库和数据库账号,并保存数据库账号密码。
1.在实例工作台单击 新建租户,创建 MySQL 租户。具体操作参见 新建租户。
2.单击 创建数据库,并单击 创建。
3.单击 账号管理,进入账号管理页面,单击 创建账号。在弹出框中填写账号名称,选择账号类型等操作,具体操作参见 创建并管理账号。
4.执行如下语句,在实例 A 的数据库中创建 student 表格。
CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL,`age` int(11) NOT NULL,`gender` enum('male','female') NOT NULL,`enrollment_date` date NOT NULL,PRIMARY KEY (`id`))
新建数据迁移任务
6.在 目标端 区域,配置各项参数
配置双向同步
student 表格。更多详细内容参见 配置双向同步任务。
3.确认迁移选项信息。
-
您可以排查并处理问题后,重新执行预检查,直至预检查成功。
-
您也可以单击失败预检查项操作列中的 跳过,会弹出对话框提示您跳过本操作的具体影响,确认可以跳过后,请单击对话框中的 确定。
7.待正向任务处于 监控中 的增量同步阶段且任务状态为 运行中 时,单击反向任务后的 配置 按钮,确认源端和目标端信息,单击 下一步 配置反向任务。
数据同步及验证


