数据复制服务(Data Replication Service,简称DRS)支持将ECS自建数据库的数据同 步到本云云数据库 PostgreSQL 实例。通过DRS提供的实时同步任务,实现在数据库同 步过程中业务和数据库不停机,业务中断时间最小化。
本章节主要介绍了通过DRS将ECS自建数据库实时同步至本云云数据库PostgreSQL的任 务配置流程。支持以下网络场景:
● 源数据库和目标数据库属于同一个VPC网络内
● 源数据库和目标数据库属于不同VPC网络内
网络示意图
图4-10 同一 VPC 网路
图4-11 同区域不同 VPC 网络
同步流程
图4-12 同步流程图
同步建议(重要)
● 数据库同步与环境多样性和人为操作均有密切关系,为了确保同步的平顺,建议 您在进行正式的数据库同步之前进行一次演练,可以帮助您提前发现问题并解决 问题,如何最小化对数据库的影响请参考如下建议。
● 强烈建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰 期,相对静止的数据可以有效提升一次性同步成功率,避免同步对业务造成性能 影响。
同步须知(重要)
须知
在创建实时同步任务之前,请您务必仔细阅读同步使用须知。
参考《数据复制服务实时同步》中具体链路的“使用须知”章节。
同步准备
1. 权限准备:
当使用DRS将ECS自建数据库PostgreSQL的数据同步到本云云数据库PostgreSQL 实例时,在不同同步类型情况下,对源数据库和目标数据库的帐号权限要求如表 4-7所示:
表4-7 同步帐号权限
同步类型 全量同步 全量+增量同步
源数据库 ● 数据库:CONNENT
● 模式:USAGE
● 有主键表:SELECT
● 无主键表:SELECT、
UPDATE、DELETE、
TRUNCATE
● 序列:SELECT
● 账户:REPLICATION
● 数据库:CONNENT
● 模式:USAGE
● 有主键表:SELECT
● 无主键表:SELECT、
UPDATE、DELETE、
TRUNCATE
● 序列:SELECT 目标数据库 CREATEDB CREATEDB、
CREATEROLE
– 源数据库的权限设置:
需要确保源数据库PostgreSQL的帐号具备表4-7的权限,若权限不足,需要 在源数据库端创建高权限的帐号。
– 目标数据库的权限设置:
本云云数据库PostgreSQL使用初始帐号即可。
2. 网络准备:
– 源数据库所在的region要和目标端本云云数据库PostgreSQL实例所在的 region保持一致。
– 源数据库可以与目标端本云云数据库PostgreSQL实例在同一个VPC,也可以 不在同一个VPC。
▪
当不在同一个VPC的时候,要求源数据库实例和目标端本云云数据库 PostgreSQL实例所处的子网处于不同网段,此时需要通过建立对等连接 实现网络互通,具体操作请参见《虚拟私有云用户指南》中“VPC对等 连接”章节。DRS仅支持同步PostgreSQL部分类型的DDL语句,具体支持范围请参考相关指 导。请合理规划源数据库业务,不要在同步期间产生支持范围外的DDL操作。
同步步骤
步骤1 创建同步任务。
1. 登录管理控制台,在服务列表中选择“数据库 > 数据复制服务”,进入数据复制 服务信息页面。
2. 在“实时同步管理”页面,单击右上角“创建同步任务”,进入同步任务信息页
SMN主题 “任务异常通知设置”项开启后可见,需提前在SMN上申请主 题并添加订阅。
SMN主题申请和订阅可参考《消息通知服务用户指南》。
时延阈值 在增量同步阶段,源数据库和目标数据库之间的同步有时会存在 一个时间差,称为时延,单位为秒。
时延阈值设置是指时延超过一定的值后(时延阈值范围为1—
3600s),DRS可以发送告警通知给指定收件人。告警通知将在 时延稳定超过设定的阈值6min后发送,避免出现由于时延波动 反复发送告警通知的情况。
说明
– 首次进入增量同步阶段,会有较多数据等待同步,存在较大的时延,
属于正常情况,不在此功能的监控范围之内。
– 设置时延阈值之前,需要设置任务异常通知。
参数 描述 任务异常自
动结束时间
(天)
设置任务异常自动结束天数,输入值必须在14-100之间。
说明
源数据库引擎 选择“PostgreSQL”。
目标数据库引擎 选择“PostgreSQL” 。
网络类型 选择“VPC网络”。建议您开启SSL安全连接,SSL约降低 20-30%的同步性能,但保证了数据的安全性。
目标数据库实例 选择您所创建的目标PostgreSQL实例 同步类型 全量+增量:
此处源库类型分为ECS自建库和RDS实例,需要根据源数据库的实际来源选择相应的分类。
两种场景下的参数配置不一样,需要根据具体场景进行配置。
– 场景一:ECS自建库源库信息配置
图4-14 ECS 自建库场景源库信息
表4-10 ECS 自建库场景源库信息
参数 描述
源库类型 选择“ECS自建库”。
VPC 源数据库实例所在的虚拟专用网络,可以对不同业务进 行网络隔离。您需要创建或选择所需的虚拟私有云。如 何创建虚拟私有云,请参见《虚拟私有云用户指南》中 的“创建虚拟私有云基本信息及默认子网”。
子网 通过子网提供与其他网络隔离的、可以独享的网络资 源,以提高网络安全。子网在可用分区内才会有效,创 建源数据库实例的子网需要开启DHCP功能,在创建过程 中也不能关闭已选子网的DHCP功能。
IP地址或域名 配置源数据库PostgreSQL实例的访问地址或域名。
端口 配置源数据库PostgreSQL实例的服务端口,可输入范围 为1~65535间的整数。
数据库用户名 访问源数据库PostgreSQL的用户名。
数据库密码 访问源数据库PostgreSQL的用户名所对应的密码。
SSL安全连接 在选择公网网络进行同步任务时,为了提升数据在网络 传输过程中的安全性,建议您开启SSL安全连接,对同步 链路进行加密,如果开启,需要您上传CA证书。
– 场景二:RDS实例源库信息配置
图4-15 RDS 实例场景源库信息
表4-11 RDS 实例场景源库信息
参数 描述
源库类型 选择“RDS实例”。
数据库实例名
称 选择待同步的关系型PostgreSQL数据库实例作为源数据 库实例。
数据库用户名 访问源数据库PostgreSQL的用户名。
数据库密码 访问源数据库PostgreSQL的用户名所对应的密码。
图4-16 目标库信息
表4-12 目标库信息
参数 描述
数据库实例名称 默认为创建同步任务时选择的已创建的PostgreSQL实例,不 可进行修改。
数据库用户名 访问目标端PostgreSQL实例的用户名。
数据库密码 访问目标端PostgreSQL实例的用户名所对应的密码。
5. 在“同步设置”页面,选择同步对象和同步用户。
图4-17 同步模式
表4-13 同步对象
参数 描述
增量阶段冲突 策略
数据复制服务提供的实时同步功能使用了主键或唯一键冲突策 略,这些策略可以由您自主选择,尽可能保证源数据库中有主 键约束或唯一键约束的表同步到目标数据库是符合预期的。
冲突策略目前支持如下三种形式:
– 忽略当同步数据与目标数据库已有数据冲突时(主键/唯一键存 在重复等),将跳过冲突数据,继续进行后续同步。
– 报错当同步数据与目标数据库已有数据冲突时(主键/唯一键存 在重复等),同步任务将失败并立即中止。
– 覆盖当同步数据与目标数据库已有数据冲突时(主键/唯一键存 在重复等),将覆盖原来的冲突数据。
当数据发生冲突时,针对如下情况,建议选择“忽略”或者
“覆盖”,否则建议选择“报错”:
– 目标数据库存在数据 – 多对一同步场景
– 目标数据库手动更新数据
对象同步范围 对象同步范围支持选择普通索引、增量DDL同步和全量阶段填 充物化视图,您可以根据业务需求选择是否进行同步。
全量阶段填充物化视图:仅对源库已经填充的物化视图生效,
该填充操作会影响全量同步性能,建议在全量同步完成后,手 动在目标库填充。
参数 描述
说明 同步对象的同步进度。当全量同步进度显示为100%,表示全量同步已经完成。
● 增量同步
select * from pg_stat_activity;
说明
上述语句查询到的进程列表中,包括DRS同步实例的连接,您需要确认除DRS同步实例的 连接外无任何新会话执行SQL,即可认为业务已经完全停止。
3. 通过DRS同步任务监控页面进行观察同步时延,保持实时同步时延为0,并稳定保 持一段时间;同时,您可以使用数据级对比功能,进行割接前的最后一次数据级 对比,耗时可参考之前的对比记录。
– 如果时间允许,则选择全部对比。
– 如果时间不允许,则推荐对比活跃表,关键业务表,第二步对比多次存在差 异的表等。
4. 确定系统割接时机,业务系统指向本云数据库,业务对外恢复使用,同步完成。
步骤4 同步结束。
1. 结束同步任务:业务系统和数据库切换至本云后,为了防止源数据库的操作继续 同步到目标数据库,造成数据覆盖问题,此时您可选择结束同步任务,该操作仅 删除了同步实例,同步任务仍显示在任务列表中,您可以进行查看或删除。结束 同步任务后,DRS将不再计费。
2. 删除同步任务:对于已结束的同步任务,您可选择删除任务。该操作将一并删除 同步任务,删除同步任务后,该任务将不会出现在任务列表中。
----结束