PostgreSQL数据库同步
引导式阅读
Others
PostgreSQL数据库同步
作者
C***
上架时间
2021-11-12 06:05:32

介绍

数据复制服务(Data Replication Service,简称DRS)支持将ECS自建数据库的数据同步到本云云数据库 PostgreSQL 实例。通过DRS提供的实时同步任务,实现在数据库同步过程中业务和数据库不停机,业务中断时间最小化。
本示例主要介绍了通过DRS将ECS自建数据库实时同步至本云云数据库PostgreSQL的任务配置流程。支持以下网络场景:

  • 源数据库和目标数据库属于同一个VPC网络内
  • 源数据库和目标数据库属于不同VPC网络内

您将会学到什么

在这个Codelabs中,您将体验一个完整的ECS自建数据库实时同步至本云云数据库PostgreSQL的任务配置流程。

您需要什么

同步准备

1.权限准备:

当使用DRS将ECS自建数据库PostgreSQL的数据同步到本云云数据库PostgreSQL实例时,在不同同步类型情况下,对源数据库和目标数据库的帐号权限要求如表1所示:
表1 同步帐号权限

  • 源数据库的权限设置:
    需要确保源数据库PostgreSQL的帐号具备表1的权限,若权限不足,需要在源数据库端创建高权限的帐号。
  • 目标数据库的权限设置:
    本云云数据库PostgreSQL使用初始帐号即可。

2.网络准备:

  • 源数据库所在的region要和目标端本云云数据库PostgreSQL实例所在的region保持一致。
  • 源数据库可以与目标端本云云数据库PostgreSQL实例在同一个VPC,也可以不在同一个VPC。
    • 当不在同一个VPC的时候,要求源数据库实例和目标端本云云数据库PostgreSQL实例所处的子网处于不同网段,此时需要通过建立对等连接实现网络互通,具体操作请参见《虚拟私有云用户指南》中“VPC对等连接”章节。
    • 当在同一VPC的时候,网络默认是互通的。

3.安全规则准备:

  • 同一VPC场景下,默认网络是连通的,不需要单独设置安全组。
  • 不同VPC场景下,通过建立对等连接就可以实现网络互通,不需要单独设置安全组。

4.其他事项准备:

DRS仅支持同步PostgreSQL部分类型的DDL语句,具体支持范围请参考相关指导 。请合理规划源数据库业务,不要在同步期间产生支持范围外的DDL操作。

同步步骤

1.创建同步任务。

  • 登录管理控制台,在服务列表中选择“数据库 > 数据复制服务”,进入数据复制服务信息页面。
  • 在“实时同步管理”页面,单击右上角“创建同步任务”,进入同步任务信息页面。
  • 在“同步实例”页面,填选任务名称、任务异常通知信息、描述和同步实例信息。
  • 在“源库及目标库”页面,同步实例创建成功后,填选源库信息和目标库信息,建议您单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和目标库连通后,勾选协议,单击“下一步”。
    说明:
    此处源库类型分为ECS自建库和RDS实例,需要根据源数据库的实际来源选择相应的分类。两种场景下的参数配置不一样,需要根据具体场景进行配置。
    • 场景一:ECS自建库源库信息配置
    • 场景二:RDS实例源库信息配置
  • 在“同步设置”页面,选择同步对象和同步用户。
  • 在“预检查”页面,进行同步任务预校验,校验是否可进行实时同步。
    • 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。 预检查不通过项处理建议请参见《数据复制服务用户指南》中的“预检查不通过项修复方法 ”。
    • 预检查完成后,且所有检查项结果均通过时,单击“下一步”。 说明: 所有检查项结果均通过时,若存在请确认项,需要阅读并确认详情后才可以继续执行下一步操作。
  • 在“任务确认”页面,选择同步任务的启动时间,勾选协议,单击“启动任务”,提交同步任务。
    说明:
    • 同步任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”。
    • 预计同步任务启动后,会对源数据库和目标数据库的性能产生影响,建议选择业务低峰期,合理设置同步任务的启动时间。
  • 同步任务提交后,开始启动同步任务,您可以返回“实时同步管理”页面,查看同步任务状态。

2.任务管理。

同步任务启动后,会经历全量同步和增量同步两个阶段,对于不同阶段的同步任务,您可以进行任务管理。

  • 全量同步
    查看同步进度:全量同步中的任务,您可单击任务名称,在“同步进度”页签下,查看全量同步进度,您可以查看结构、数据、索引同步的进度,也查看具体同步对象的同步进度。当全量同步进度显示为100%,表示全量同步已经完成。
  • 增量同步
    • 查看时延监控:全量同步完成后,开始进行增量同步。对于增量同步中的任务,您可单击任务名称,在“同步进度”页签下,查看增量同步同步时延,当时延为0s时,说明源数据库和目标数据库的数据是实时同步的。您也可以使用“同步对比”页签进行一致性对比。
    • 查看同步对比:为了尽可能减少业务的影响和业务中断时间,增量同步中的任务,您可单击任务名称,在“同步对比”页签下创建对比任务。
      具体的同步对比操作及注意事项请参考《数据复制服务用户指南》中“对比同步项 ”章节。

3.割接建议。

建议您选择一个业务低峰期,开始正式系统割接流程。割接前,请您确认至少在业务低峰期有过一次完整的数据对比。可以结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。

  • 先中断业务(如果业务负载非常轻,也可以尝试不中断业务)。
  • 在源数据库端执行如下语句,并观察在1-5分钟内若无任何新会话执行SQL ,则可认为业务已经完全停止。
    select * from pg_stat_activity;
    说明:
    上述语句查询到的进程列表中,包括DRS同步实例的连接,您需要确认除DRS同步实例的连接外无任何新会话执行SQL,即可认为业务已经完全停止。
  • 通过DRS同步任务监控页面进行观察同步时延,保持实时同步时延为0,并稳定保持一段时间;同时,您可以使用数据级对比功能,进行割接前的最后一次数据级对比,耗时可参考之前的对比记录。
    • 如果时间允许,则选择全部对比。
    • 如果时间不允许,则推荐对比活跃表,关键业务表,第二步对比多次存在差异的表等。
  • 确定系统割接时机,业务系统指向本云数据库,业务对外恢复使用,同步完成。

4.同步结束。

  • 结束同步任务:业务系统和数据库切换至本云后,为了防止源数据库的操作继续同步到目标数据库,造成数据覆盖问题,此时您可选择结束同步任务,该操作仅删除了同步实例,同步任务仍显示在任务列表中,您可以进行查看或删除。结束同步任务后,DRS将不再计费。
  • 删除同步任务:对于已结束的同步任务,您可选择删除任务。该操作将一并删除同步任务,删除同步任务后,该任务将不会出现在任务列表中。

恭喜您

祝贺您,您已经成功地完成了ECS自建数据库的数据同步到本云云数据库 PostgreSQL任务配置的全流程体验。

参考

更多信息请参考DRS文档

修订记录

发布日期 文档版本 修订说明
2021-11-09 1.0 文档首次发布