Oracle LogMiner 同步准备
CloudCanal 使用 LogMiner 实现 Oracle 增量数据同步。本文介绍数据同步前的准备工作。
准备动作 1 - 开启 LogMiner
非 RAC 模式 Oracle
-
使用 DBA 权限的账号登录 Oracle (e.g.,sqlplus)。
-
检查数据库日志模式。
- 如果 log_mode 返回
ARCHIVELOG则忽略后续步骤。 - 如果 log_mode 返回
NOARCHIVELOG则继续后续步骤。
select dbid,name,log_mode from v$database; - 如果 log_mode 返回
-
关闭当前数据库。
shutdown immediate; -
启动并挂载数据库。
startup mount; -
开启归档日志,并打开数据库。
alter database archivelog;
alter database open read write;
RAC 模式 Oracle
-
在 Oracle RAC 的某一个节点的 shell 中,关闭、启动、挂载某一个数据库。
srvctl stop database -d <数据库名字>
srvctl start database -d <数据库名字> -o mount -
使用 DBA 权限账号登录该数据库 (e.g.,sqlplus),并开启归档。
alter database archivelog; -
在 Oracle RAC 的某一个节点的 shell 中, 重启数据库。
srvctl stop database -d <数据库名字>
srvctl start database -d <数据库名字> -
使用 DBA 权限账号登录该数据库 (e.g.,sqlplus),检查该数据库是否是归档日志模式。
select log_mode from v$database;
准备动作 2 - 开启补全日志 (Supplemental Logging)
-
检查数据库是否开启补全日志。
信息如果以下4个 SQL 字段值都返回
YES或者Implicit,则略过此准备动作。select supplemental_log_data_min min, supplemental_log_data_pk pk,supplemental_log_data_ui ui, supplemental_log_data_all all_cols from v$database; -
开启库级别最小补全日志模式。
- 多租户数据库 (PDB)
alter session set container=cdb$root;
alter database add supplemental log data;- 标准数据库 (CDB)
alter database add supplemental log data; -
(选择 1,推荐) 开启库级别完整补全日志模式。
- 多租户数据库 (PDB)
alter session set container=cdb$root;
alter database add supplemental log data (all,primary key,unique) columns;- 标准数据库 (CDB)
alter database add supplemental log data (all,primary key,unique) columns;(选择 2) 准备动作 3 中开启表补全日志。
alter table schema名.表名 add supplemental log data (all,primary key,unique) columns;