数据复制服务(Data Replication Service,简称DRS)支持将其他云PostgreSQL数据 库的数据实时同步到本云云数据库PostgreSQL实例。通过DRS提供的实时同步任务,
实现关键业务的数据实时流动。
本章节主要介绍了通过DRS将其他云PostgreSQL数据库实时同步至本云云数据库 PostgreSQL的任务配置流程。包括以下同步场景:
● 其他云RDS PostgreSQL实时同步至本云云数据库PostgreSQL。
● 其他云内云主机自建的PostgreSQL数据库实时同步至本云云数据库PostgreSQL。
网络示意图
图4-1 其他云 RDS PostgreSQL 实时同步示意图
图4-2 其他云自建 PostgreSQL 数据库实时同步示意图
同步流程
图4-3 同步流程图
同步建议(重要)
● 数据库同步与环境多样性和人为操作均有密切关系,为了确保同步的平顺,建议 您在进行正式的数据库同步之前进行一次演练,可以帮助您提前发现问题并解决 问题,如何最小化对数据库的影响请参考如下建议。
● 强烈建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰 期,相对静止的数据可以有效提升一次性同步成功率,避免同步对业务造成性能 影响。
同步须知(重要)
当使用 DRS 将其他云PostgreSQL数据库的数据同步到本云云数据库PostgreSQL 实例时,在不同同步类型情况下,对源数据库和目标数据库的帐号权限要求如表
● 有主键表:SELECT
● 无主键表:SELECT、
UPDATE、DELETE、
TRUNCATE
● 序列:SELECT
● 账户:REPLICATION
● 数据库:CONNENT
● 模式:USAGE
● 有主键表:SELECT
● 无主键表:SELECT、
UPDATE、DELETE、
TRUNCATE
● 序列:SELECT 目标数据库 CREATEDB CREATEDB、
CREATEROLE
– 源数据库权限设置:
需要确保源数据库PostgreSQL的帐号权限具备表4-1的要求。若权限不足,
需要在源数据库端开通高权限的帐号。
目前DRS支持同步的第三方云厂商有:阿里云,腾讯云和亚马逊云。
以阿里云云数据库RDS PostgreSQL同步到本云云数据库PostgreSQL为例,阿 里云推荐使用高权限帐号。一般情况下,默认是没有开通高权限帐号的,您 需要先创建高权限帐号,具体操作及注意事项可以参考阿里云提供的相关指 导。
– 目标数据库权限设置:
本云云数据库PostgreSQL实例使用初始帐号即可。
2. 网络准备:
源数据库需要开放公网访问。
– 源数据库的网络设置:
源数据库PostgreSQL实例需要开放外网域名的访问。
以阿里云云数据库RDS PostgreSQL同步到本云云数据库PostgreSQL实例为 例,一般情况下,阿里云RDS PostgreSQL不提供外网地址,需要通过申请外 网地址来允许外部的应用对接,具体的操作及注意事项可以参考阿里云提供 的相关指导。
– 目标数据库的网络设置:
目标数据库默认与DRS实例处在同一个VPC内,网络是互通的,不需要进行任 何设置。
3. 安全规则准备。
– 源数据库的安全规则设置:
源数据库PostgreSQL实例需要将DRS同步实例的弹性公网IP添加到其网络白 名单中,确保源数据库PostgreSQL实例可以与上述弹性公网IP连通。
以阿里云云数据库RDS PostgreSQL同步到本云云数据库PostgreSQL为例,具 体设置网络白名单的操作及注意事项可以参考相关指导。在设置网络白名单 之前,需要先获取DRS同步实例的弹性公网IP,具体方法如下:
DRS同步实例创建成功后,可在“源库及目标库”页面,获取DRS同步实例弹 性公网IP,如图4-4所示:
图4-4 同步实例弹性公网 IP
上述方法为精细配置网络白名单的方法,还有一种简单设置白名单的方法,
在安全允许的情况下,可以将源数据库PostgreSQL实例的网络白名单设置为 0.0.0.0/0,代表允许任何IP地址访问该实例。
以上白名单是为了进行同步针对性设置的,同步结束后可以删除。
– 目标数据库安全规则设置:
目标数据库默认与DRS同步实例处在同一个VPC,网络是互通的,DRS可以直 接写入数据到目标数据库,不需要进行任何设置。
4. 其他事项准备:
DRS仅支持同步PostgreSQL部分类型的DDL语句,具体支持范围请参考相关指 导。请合理规划源数据库业务,不要在同步期间产生支持范围外的DDL操作。
同步步骤
图4-5 同步实例信息
表4-2 任务和描述
参数 描述
区域 当前所在区域,可进行切换。
任务名称 任务名称在4-50位之间,必须以字母开头,不区分大小写,可以 包含字母、数字、中划线或下划线,不能包含其他的特殊字符。
描述 描述不能超过256位,且不能包含! = < > & ' " \ 特殊字符。
表4-3 同步实例信息
参数 描述
数据流动方向 选择“入云”。
源数据库引擎 选择“PostgreSQL”。
目标数据库引擎 选择“PostgreSQL” 。
网络类型 选择“公网网络”。建议您开启SSL安全连接,SSL约降低 20-30%的同步性能,但保证了数据的安全性。
目标数据库实例 选择您所创建的目标PostgreSQL实例
参数 描述
同步类型 全量+增量:
该模式为数据持续性实时同步,通过全量过程完成目标端数 据库的初始化后,增量同步阶段通过解析日志等技术,将源 端和目标端数据保持数据持续一致。
说明选择“全量+增量”同步模式,增量同步可以在全量同步完成的基础 上实现数据的持续同步,无需中断业务,实现同步过程中源业务和 数据库继续对外提供访问。
4. 在“源库及目标库”信息页面,同步实例创建成功后,填选源库信息和目标库信 息,建议您单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和 目标库连通后,勾选协议,单击“下一步”。
图4-6 源库及目标库信息
表4-4 源库信息
参数 描述
IP地址或域名 配置源数据库PostgreSQL实例的访问地址或域名。
端口 配置源数据库PostgreSQL实例的服务端口,可输入范围为 1~65535间的整数。
数据库用户名 访问源数据库PostgreSQL的用户名。
数据库密码 访问源数据库PostgreSQL的用户名所对应的密码。
SSL安全连接 在选择公网网络进行同步任务时,为了提升数据在网络传输 过程中的安全性,建议您开启SSL安全连接,对同步链路进 行加密,如果开启,需要您上传CA证书。
表4-5 目标库信息
参数 描述
数据库实例名称 默认为创建同步任务时选择的已创建的PostgreSQL实例,不 可进行修改。
数据库用户名 访问目标端PostgreSQL实例的用户名。
数据库密码 访问目标端PostgreSQL实例的用户名所对应的密码。
5. 在“同步设置”页面,选择同步对象和同步用户。
图4-7 同步模式
表4-6 同步对象
参数 描述
流速模式 流速模式支持限速和不限速,默认为不限速。
参数 描述
– 预检查完成后,且所有检查项结果均通过时,单击“下一步”。
图4-8 预检查
说明
所有检查项结果均通过时,若存在请确认项,需要阅读并确认详情后才可以继续执行 下一步操作。
7. 在“任务确认”页面,选择同步任务的启动时间,勾选协议,单击“启动任 务”,提交同步任务。
说明
– 同步任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”。
– 预计同步任务启动后,会对源数据库和目标数据库的性能产生影响,建议选择业务低峰 期,合理设置同步任务的启动时间。
8. 同步任务提交后,开始启动同步任务,您可以返回“实时同步管理”页面,查看 同步任务状态。
步骤2 任务管理。
同步任务启动后,会经历全量同步和增量同步两个阶段,对于不同阶段的同步任务,
您可以进行任务管理。
● 全量同步
查看同步进度:全量同步中的任务,您可单击任务名称,在“同步进度”页签 下,查看全量同步进度,您可以查看结构、数据、索引同步的进度,也查看具体 同步对象的同步进度。当全量同步进度显示为100%,表示全量同步已经完成。
● 增量同步
– 查看时延监控:全量同步完成后,开始进行增量同步。对于增量同步中的任 务,您可单击任务名称,在“同步进度”页签下,查看增量同步同步时延,
当时延为0s时,说明源数据库和目标数据库的数据是实时同步的。您也可以 使用“同步对比”页签进行一致性对比。
图4-9 查看时延监控
select * from pg_stat_activity;
说明
上述语句查询到的进程列表中,包括DRS同步实例的连接,您需要确认除DRS同步实例的 连接外无任何新会话执行SQL,即可认为业务已经完全停止。
3. 通过DRS同步任务监控页面进行观察同步时延,保持实时同步时延为0,并稳定保 同步任务后,DRS将不再计费。
2. 删除同步任务:对于已结束的同步任务,您可选择删除任务。该操作将一并删除 同步任务,删除同步任务后,该任务将不会出现在任务列表中。
----结束