0

我正在尝试使用Tungsten Replicator 文档中概述的并行提取方法来提供 Oracle 到 MySQL 的复制。

  1. 使用 Tungsten 提供的 setupCDC.sh 脚本在 Oracle 中设置 CDC 表。
  2. 启动并行提取器,指定前面脚本给出的 CDC 进程的起始 SCN。
  3. 并行提取器将使用表单的烧瓶查询插入所有现有数据AS OF SCN ...,执行具有数据完整性的时间点供应。

问题是 setupCDC 脚本仅在 CDC 是异步的时才打印出 SCN 。在官方论坛帖子中暗示这是为了“为整个模式快照获取一个位置”。

由于许可限制,我只能使用同步CDC。手动读取all_capture表中记录的 SCN 并将其用于配置是否安全?我有哪些选择可以同时实现数据完整性和最短停机时间?

  • 一个。在配置过程中禁用对主数据库的写入操作:
    • 这是不可取的,因为我的数据库包含数百 GB 的数据,可能会导致很长的停机时间。
  • 湾。在配置期间允许写入操作:在并行提取处理完所有表后,通过正常复制重新应用所有 CDC 数据来修复任何差异。在重新申请期间出现的任何错误都必须被忽略。
    • 从数据完整性的角度来看,这是否安全?
4

1 回答 1

0

手动读取 all_capture 表中记录的 SCN 并将其用于配置是否安全?

对于同步 CDC,表中没有条目,all_capture用于异步捕获进程。

相反,每个更改表都会在其创建时记录 SCN。您可以从表中确定最低 SCNchange_tables并将其作为参数提供给配置命令:trepctrl online -provision <scn>

SQL> COL scn FORMAT 999999999999999
SQL> SELECT MIN(created_scn) scn FROM change_tables WHERE change_set_name = 'TUNGSTEN_CS_{service_name}';

(替换{service_name}为您自己的服务名称。)

于 2014-12-20T04:14:17.157 回答