反向迁移

    debezium opengauss connector的source端,监控openGauss的xlog日志,并将数据的DML操作以AVRO格式写入到kafka;

    debezium opengauss connector的sink端,从kafka读取AVRO格式的数据,在mysql端按表并行回放,从而完成数据的DML操作从openGauss在线迁移至mysql。

    反向迁移可满足用户业务迁移逃生的诉求,保持源端、目标端两个库并行运行,在目标端数据库出问题后应用能及时切回源端数据库。

    反向迁移gs_replicate依赖MySQL一键式迁移工具gs_rep_portal,可实现反向迁移的安装、启动、停止、卸载整个过程。

    1、下载gs_rep_portal

    1. cd portal

    3、修改gs_rep_portal配置文件

    配置文件位于config目录内,反向迁移相关的配置文件主要包含如下两个,相关参数含义简要说明如下:

    • toolspath.properties
    1. # 反向迁移依赖包路径,可自定义修改
    2. debezium.path=/ops/portal/tools/debezium/
    3. # kafka路径,位于反向迁移依赖包路径下,可自定义修改
    4. kafka.path=/ops/portal/tools/debezium/kafka_2.13-3.2.3/
    5. # confluent路径,位于反向迁移依赖包路径下,可自定义修改
    6. # connector路径,位于反向迁移依赖包路径下,可自定义修改
    7. connector.path=/ops/portal/tools/debezium/plugin/
    8. connector.opengauss.path=/ops/portal/tools/debezium/plugin/debezium-connector-opengauss/
    9. # kafka下载路径
    10. kafka.pkg.url=https://downloads.apache.org/kafka/3.2.3/kafka_2.13-3.2.3.tgz
    11. # confluent下载路径
    12. confluent.pkg.url=https://packages.confluent.io/archive/5.5/confluent-community-5.5.1-2.12.zip
    13. # debezium opengauss connector下载路径
    14. connector.opengauss.pkg.url=https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/tools/replicate-openGauss2mysql-5.0.0.tar.gz
    15. # 反向迁移依赖安装包路径,可自定义修改
    16. debezium.pkg.path=/ops/portal/pkg/debezium/
    17. # confluent包名
    18. confluent.pkg.name=confluent-community-5.5.1-2.12.zip
    19. # openGauss2mysql在线复制包名
    20. connector.opengauss.pkg.name=replicate-openGauss2mysql-5.0.0.tar.gz
    • migrationConfig.properties

    4、安装

    1. sh gs_replicate.sh install opengauss-mysql workspace.id

    其中workspace.id表示迁移任务id,取值为数字和小写字母的组合,不同的id区分不同的迁移任务,不同迁移任务可并行启动。若使用已存在的workspace.id,并修改其中的配置,请在portal/workspace/${workspace.id}/config/路径下修改对应的配置文件。

    5、启动

    1. sh gs_replicate.sh start opengauss-mysql workspace.id

    7、卸载

    1. sh gs_replicate.sh uninstall opengauss-mysql workspace.id
    • 当前支持openGauss IUD操作(insert、update、delete)产生的增量数据迁移至MySQL。

    • openGauss需要3.1.0及以上版本。

    • 反向迁移依赖于openGauss的逻辑复制,仅限能进行逻辑复制的用户进行操作。

    • openGauss 的GUC参数设置要求为:wal_level = logical。

      1. Kafka中以AVRO格式存储数据,AVRO字段名称为: 以[A-Za-z_]开头,随后仅包含[A-Za-z0-9_] 因此,对于openGauss中的标识符命名,包括表名、列名等,需满足上述命名规范,否则迁移会报错。