跳到主要内容
版本:2.x

Oracle

Oracle Database(简称 Oracle)是甲骨文公司的一款关系数据库管理系统。在创建 Oracle 连接前,您需要在跟随本文完成前置准备工作,完成操作后即可创建连接并在数据复制/开发任务中使用该数据源。

支持版本

Oracle 9i、10g、11g、12c、19c

注意事项

  • 如设置了 connect_time(自动断开超时会话),可能导致实时同步异常,可通过下述命令检查该参数的设置。

    select resource_name, limit from dba_profiles where profile=( select profile from dba_users where username = '<username>');
  • 您需要为归档日志预留足够的存储空间,避免存储占满影响数据库运行。

功能限制

  • Oracle 作为源库时:
    • 日志解析速度约为 10,000 QPS,如增量事件高于该速率,可能导致数据处理的延迟上升。
    • 裸日志功能目前不支持在 RAC-ASM 的部署架构上使用,且不支持从 DG 架构的非主节点获取裸日志。
  • Oracle 作为目标库时:
    • Db2 的非空字段可以用""赋值,但相关字段向Oracle写入的时候,Oracle会认为该字段是NULL,从而导致非空字段写入失败。

作为源库

  1. 以具有 DBA 权限的用户身份登录 Oracle 数据库。

  2. 开启数据库归档模式(ARCHIVELOG)。

    提示

    您也可以执行 select log_mode from v$database; 命令来查看是否已开启该功能,返回结果为 ARCHIVELOG 表示已开启,可跳过本步骤。

    1. 执行下述命令,关闭数据库,请务必在业务低峰期操作,以免影响业务运行。

      shutdown immediate;
    2. 执行下述命令,启动并挂载数据库。

      startup mount;
    3. 执行下述命令,开启存档并打开数据。

      alter database archivelog;
      alter database open;
  3. 开启补充日志(Supplemental Logging)。

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
  1. 开启标识键日志(identification key)。

    提示

    当使用 12c 的 PDB 时,推荐为容器的表开启日志,您可以执行先执行命令 ALTER SESSION SET CONTAINER=<pdb>;,将更改应用于容器。

    • 为单个表开启

      ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
      ALTER TABLE <schema name>.<table name> ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
    • 为所有表开启

      ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
  2. 开启全补充日志(full supplemental logging)。

    • 为单个表开启

      ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
      ALTER TABLE <schema name>.<table name> ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    • 为所有表开启

      ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
  3. 提交更改。

    ALTER SYSTEM SWITCH LOGFILE;
  4. 创建用于数据同步/开发任务的账号。

CREATE USER username IDENTIFIED BY password;
GRANT create session, alter session, execute_catalog_role, select any dictionary, select any transaction, select any table, create any table, create any index, unlimited tablespace to user name;

作为目标库

  1. 以具有 DBA 权限的用户身份登录 Oracle 数据库。

  2. 创建用于数据同步/开发任务的账号,该账号拥有 schema 的 owner权限。

    具体操作,见 CREATE USERGRANT

下一步

连接 Oracle 数据库