• 沒有找到結果。

其他云 PostgreSQL 同步到 RDS for PostgreSQL

数据复制服务(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. 删除同步任务:对于已结束的同步任务,您可选择删除任务。该操作将一并删除 同步任务,删除同步任务后,该任务将不会出现在任务列表中。

----结束