更新时间:2022-05-25 GMT+08:00
分享

GaussDB(for openGauss)主备版->Oracle

操作要求

针对一些无法预知或人为因素及环境突变导致同步失败的情况,数据复制服务提供以下常见的操作限制,供您在同步过程中参考。
表1 操作要求

类型名称

操作限制(需要人为配合)

注意事项

  • 表 环境要求中的环境要求均不允许在同步过程中修改,直至同步结束。
  • 该链路不支持SSL安全连接。
  • 不建议在数据库中使用非精确数值类型做主键,该特性影响 DRS 增量场景下对 UPDATE、DELETE语句的同步,同时也会导致内容比对不可用。主键支持的类型可参考Oracle数据库->GaussDB(for openGauss)数据库映射关系
  • 一个同步任务只能对一个数据库进行数据同步,如果一个GaussDB(for openGauss)实例下有多个数据库需要同步,则需要为每个数据库创建实时同步任务。

操作须知

  • 一般情况下,此链路为Oracle到GaussDB(for openGauss)主备版同步链路的反向逃生链路,并与Oracle到GaussDB(for openGauss)主备版同步链路配合使用,不建议单独使用此链路做其他场景的数据同步。
  • 表等对象名同步到目标库后会转换成大写。因此全量和增量同步阶段,选择的源库表中不能存在表名称字母相同但大小写不同的表,否则,会导致同步失败。如果此链路作为Oracle到GaussDB(for openGauss)主备版的逃生链路使用,建议仅同步Oracle端为大写的schema名和表名,且GaussDB(for openGauss)主备版端为小写的schema名和表名。
  • 实时同步过程中,受限于GaussDB(for openGauss)逻辑复制功能,不支持DDL语句的同步。一般情况下,不建议同步过程中进行DDL操作。
  • 实时同步过程中,修改源库的用户名、密码、IP和端口,可能会导致同步任务失败。
  • 对于全量同步中的目标数据库表对象,不能进行写入操作,否则会导致数据不一致。
  • 增量同步中,需保持源库和目标库表的主键列一致。
  • 目标库需提前创建好与源库SCHEMA相应的用户及表结构,创建的用户,需要赋予该用户使用表空间的权限。

环境要求

实时同步对环境有一些特定的要求,请确保环境配置满足以下条件。该类型的要求系统会自动检查,并给出处理建议。
表2 环境要求

类型名称

使用限制(DRS自动检查)

数据库权限设置

  • 源数据库端需要同时拥有以下权限:
    • 库级权限:需要使用root或其他有Sysadmin角色的DATABASE用户登录postgres基库,赋予用户DATABASE的CONNECT权限以及REPLICATION权限。
    • SCHEMA级权限:需要使用 root、或其他有Sysadmin角色的DATABASE用户、或目标数据库的OWNER用户登入目标数据库,赋予用户SCHEMA的USAGE权限。
    • 表级权限:需要使用 root、或其他有Sysadmin角色的DATABASE用户、或目标数据库的OWNER用户登入目标数据库 ,赋予用户SCHEMA下所有表的SELECT权限。
  • 目标库账户需要同时拥有以下角色或权限:
    • 拥有DATABASE或表的SELECT、INSERT、UPDATE、DELETE权限。
    • 拥有SCHEMA的RESOURCE权限。

同步对象约束

  • 不支持无主键表的同步。
  • 支持的数据类型有BIGINT,BIT,BIT VARYING,BLOB,BOOLEAN,BYTEA,CHARACTER,CHARACTER VARYING,CLOB,DATE,DOUBLE PRECISION,INTEGER,MONEY,NUMBER,NUMERIC,NVARCHAR2,RAW,REAL,SMALLDATETIME,SMALLINT,TEXT,TIME WITH TIME ZONE,TIME WITHOUT TIME ZONE,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITHOUT TIME ZONE,TINYINT。
  • 全量同步时仅支持表数据、表结构和索引约束的同步。
  • 增量同步不支持列存表、压缩表、非日志表、临时表数据同步。

源数据库要求

  • 增量同步时GaussDB(for openGauss)源数据库日志模式(wal_level)必须为logical。
  • 全量和增量同步时源数据库中的库名和表名不能包含:+%"<>'\以及非ASCII字符。
  • 源库必须是本云GaussDB(for openGauss)主备版实例。
  • 源库字符集目前仅支持UTF8。

目标数据库要求

  • 全量和增量同步时必须先在目标实例中手动创建SCHEMA和表。
  • 增量同步的表要禁用外键,因为DRS并行回放会使得不同表之间的写入顺序和源库不一致,可能会触发外键约束限制,造成同步失败。
分享:

    相关文档

    相关产品

close