diff --git "a/content/zh/docs/AboutopenGauss/Oracle\345\242\236\351\207\217\350\277\201\347\247\273gs_replicate.md" "b/content/zh/docs/AboutopenGauss/Oracle\345\242\236\351\207\217\350\277\201\347\247\273gs_replicate.md" new file mode 100644 index 0000000000000000000000000000000000000000..7bb3dea8a6b98233f2d0171d1a0a7f5e4dc2a7f2 --- /dev/null +++ "b/content/zh/docs/AboutopenGauss/Oracle\345\242\236\351\207\217\350\277\201\347\247\273gs_replicate.md" @@ -0,0 +1,60 @@ +# 增量迁移gs_replicate(Oracle -> openGauss) + +## 可获得性 + +本特性自openGauss 6.0.0-RC1版本开始引入。 + +## 特性简介 + +增量迁移 gs_replicate 是指将 Oracle 数据迁移期间(包括全量和增量迁移)产生的增量数据迁移至 openGauss 端。 + +## 客户价值 + +通过使用 gs_replicate 工具,可完成增量数据从 Oracle 搬迁至 openGauss 数据库。 + +## 特性描述 + +debezium oracle connector 的 source 端,监控 Oracle 数据库的归档日志,并将数据(DDL和DML操作)以 AVRO 格式写入到 Kafka; +debezium oracle connector 的 sink 端,从 Kafka 读取 AVRO 格式数据(DDL和DML操作),并组装为事务,在 openGauss 端按照事务粒度串行回放,从而完成数据(DDL和DML操作)从 Oracle 在线迁移至 openGauss 端。 + +由于该方案严格保证事务的顺序性,因此将 DDL 和 DML 路由在 Kafka 的一个 topic 下,且该 topic 的分区数只能为 1(参数num.partitions=1),从而保证 source 端推送到 Kafka,和 sink 端从 Kafka 拉取数据都是严格保序的。 + +## 特性增强 + +- 增量迁移支持迁移进度与回放失败的SQL语句实时上报。 +- 增量迁移支持jdbc超时重连机制,可在jdbc断连后自动重连,用户无感知。 +- 增量迁移增加流量控制能力,可在迁移大批量增量数据时触发流量控制,防止系统崩溃。 +- 增量迁移支持两种回放模式:按事务串行回放和按表并行回放,可根据不同的业务场景选择不同的回放模式,达到性能最优。 + +## 特性约束 + +- 当前支持 Oracle IUD 操作(Insert、Update、Delete)产生的增量数据迁移至 openGauss。 + +- Oracle 的 log_mode 需要设置为 ARCHIVELOG。 + +- 按表进行回放的模式下暂不支持 DDL 操作的回放。 + +- 先进行全量迁移,再进行增量迁移,全量迁移可基于[ora-migration-tool](https://gitee.com/opengauss/ora-migration-tool)工具完成。 + +- Kafka 中以 AVRO 格式存储数据,AVRO 字段名称[命名规则](https://gitee.com/link?target=https%3A%2F%2Favro.apache.org%2Fdocs%2F1.11.1%2Fspecification%2F%23names)为: + + ``` + - 以[A-Za-z_]开头 + - 随后仅包含[A-Za-z0-9_] + ``` + + 因此,对于 Oracle 中的标识符命名,包括表名、列名等,需满足上述命名规范,否则在线迁移会报错。 + +## 依赖关系 + +无。 + +## 参考文档 + +开源社区地址:[gs_rep_portal](https://gitee.com/opengauss/openGauss-migration-portal/tree/5.1.0) + +详细参考文档: README.md + +增量迁移社区地址:[gs_replicate](https://gitee.com/opengauss/debezium/tree/5.1.0) + +详细参考文档:README.md \ No newline at end of file diff --git "a/content/zh/docs/AboutopenGauss/\345\267\245\345\205\267\351\223\276.md" "b/content/zh/docs/AboutopenGauss/\345\267\245\345\205\267\351\223\276.md" index 47dc5eec4df42db6302094eadf91fcd9aba02046..5d05d6342940d5e6040f7d378940d8e0ad104e4d 100644 --- "a/content/zh/docs/AboutopenGauss/\345\267\245\345\205\267\351\223\276.md" +++ "b/content/zh/docs/AboutopenGauss/\345\267\245\345\205\267\351\223\276.md" @@ -4,6 +4,7 @@ - **[MySQL一键式迁移gs_rep_portal](MySQL一键式迁移工具gs_rep_portal.md)** - **[全量迁移gs_mysync](全量迁移gs_mysync.md)** - **[增量迁移gs_replicate(MySQL -> openGauss)](增量迁移gs_replicate.md)** +- **[增量迁移gs_replicate(Oracle -> openGauss)](Oracle增量迁移gs_replicate.md)** - **[反向迁移gs_replicate(openGauss -> MySQL)](反向迁移gs_replicate.md)** - **[反向全量迁移(openGauss -> MySQL)](反向全量迁移.md)** - **[数据校验gs_datacheck](数据校验gs_datacheck.md)** diff --git a/content/zh/menu/index.md b/content/zh/menu/index.md index 95181954e27da7738a313ceb6db4a141b90f7aa5..afb6eadcf1382802d774d9c1fd0f44ce2ecff6e4 100644 --- a/content/zh/menu/index.md +++ b/content/zh/menu/index.md @@ -154,6 +154,7 @@ headless: true - [MySQL一键式迁移]({{< relref "./docs/AboutopenGauss/MySQL一键式迁移工具gs_rep_portal.md" >}}) - [全量迁移gs_mysync]({{< relref "./docs/AboutopenGauss/全量迁移gs_mysync.md" >}}) - [增量迁移gs_replicate(MySQL -\> openGauss)]({{< relref "./docs/AboutopenGauss/增量迁移gs_replicate.md" >}}) + - [增量迁移gs_replicate(Oracle -\> openGauss)]({{< relref "./docs/AboutopenGauss/Oracle增量迁移gs_replicate.md" >}}) - [反向迁移gs_replicate(openGauss -\> MySQL)]({{< relref "./docs/AboutopenGauss/反向迁移gs_replicate.md" >}}) - [反向全量迁移(openGauss -\> MySQL)]({{< relref "./docs/AboutopenGauss/反向全量迁移.md" >}}) - [数据校验gs_datacheck]({{< relref "./docs/AboutopenGauss/数据校验gs_datacheck.md" >}}) diff --git "a/sphinx/source/AboutopenGauss/\345\267\245\345\205\267\351\223\276.rst" "b/sphinx/source/AboutopenGauss/\345\267\245\345\205\267\351\223\276.rst" index 07311e2cc35380d42d4afb034575f6bf7cfd5c21..984f7e15fb4eeb1d1e68232afd5706075ebabc83 100644 --- "a/sphinx/source/AboutopenGauss/\345\267\245\345\205\267\351\223\276.rst" +++ "b/sphinx/source/AboutopenGauss/\345\267\245\345\205\267\351\223\276.rst" @@ -6,6 +6,7 @@ ../content/zh/docs/AboutopenGauss/MySQL一键式迁移工具gs_rep_portal ../content/zh/docs/AboutopenGauss/全量迁移gs_mysync ../content/zh/docs/AboutopenGauss/增量迁移gs_replicate + ../content/zh/docs/AboutopenGauss/Oracle增量迁移gs_replicate ../content/zh/docs/AboutopenGauss/反向迁移gs_replicate ../content/zh/docs/AboutopenGauss/反向全量迁移 ../content/zh/docs/AboutopenGauss/数据校验gs_datacheck