You need to enable JavaScript to run this app.
文档中心
文档控制台
注册
大数据研发治理套件

大数据研发治理套件

复制全文
下载 pdf
解决方案
Oracle CDC 数据源 LogMiner 配置文档
复制全文
下载 pdf
Oracle CDC 数据源 LogMiner 配置文档

1 概述

在 Oracle CDC 数据源中,使用基于 LogMiner 的日志进行实时采集时需要进行一些配置操作。本文将为您介绍进行实时采集前的前置操作。

2 使用限制

  • 当前配置方案适用于 Oracle 整库的数据变更量小于 10000 条/秒的场景;
  • 仅支持主库读取,不支持从库;
  • 默认情况下,只支持 Oracle 非 CDB 模式,以及非 RAC 模式1
  • 不支持二进制类型和超大类型、特殊类型,例如 NCLOB、CLOB、BFILE、XMLTYPE、LONG、BINARY,VARBINARY,TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB。

3 配置步骤

3.1 启用归档日志模式(Archive Log)

注意

  • 开启 Archive Log 需要重启数据库,可能会导致业务中断,请谨慎评估后进行。
  • 开启 Archive Log 模式后,请务必预留足够磁盘空间(建议 50GB 以上),以免空间不足导致 Oracle 异常。
  1. 在**数据盘(确保有足够空余空间)**新建目标目录,例如:

    mkdir -p /opt/oracle/oradata/recovery_area
    mkdir -p /opt/oracle/oradata/ORCLCDB
    
    -- 对于 CDB + PDB 模式,还需要执行如下的命令,为 PDB 也创建对应的目录:
    mkdir -p /opt/oracle/oradata/ORCLCDB/ORCLPDB1
    
    chown -R oracle /opt/oracle/***
    
  2. 切换到有 Oracle DBA 权限的用户,运行 sqlplus / as sysdba 命令。

  3. 然后在 sqlplus 命令中,继续执行如下指令,设置日志目录的最大占用空间,以及存储路径:

    alter system set db_recovery_file_dest_size = 100G;
    alter system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile;
    
  4. 上述指令执行完成后,随后继续执行如下指令:

    shutdown immediate;
    startup mount;
    alter database archivelog;
    alter database open;
    
    -- 必须执行, 否则会出现列缺失等问题;
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    alter system switch logfile;
    
    -- 确保如下图显示 "Database log mode: Archive Mode"
    archive log list;
    
    -- 配置完成后退出
    exit;
    

说明

建议通过 RMAN 配置 Archive Log 清理策略,同样也是切换到有 Oracle DBA 权限的用户,运行 rman target / 命令后执行如下策略:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;

此外,您可以手动或定期执行如下命令,主动触发清理:
DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 1 TIMES TO DISK;

3.2 检查 LogMiner 安装情况(可选)

  1. 首先进入 sysplus 命令,执行:

    desc DBMS_LOGMNR;
    desc DBMS_LOGMNR_D;
    
  2. 如果上述执行语句没有任何信息返回,则需要执行如下命令来安装 LogMiner 组件。否则有信息返回时无需安装。

    @$ORACLE_HOME/rdbms/admin/dbmslm.sql
    @$ORACLE_HOME/rdbms/admin/dbmslmd.sql
    

3.3 配置 LogMiner 用户和权限

  1. 再次进入 sysplus 命令,执行下面命令:

    注意

    仅适用于 12c 及以上的 Oracle 版本。

    SELECT name, cdb from v$database;
    
  2. 如果 CDB 为 0,则说明是非 CDB 模式,可以继续执行下面的命令:

    注意

    以下命令仅适用于 10g、11c 版本,或者 12c 及以上版本的非 CDB 模式。
    **如果自行指定了归档目录,则请替换下文的路径为您部署环境的实际路径;**此外,请替换 CREATE USER 命令中的 [您的密码] 为实际密码值

    -- 创建 LogMiner 采集用户
    CREATE TABLESPACE logminer_tbs DATAFILE '/opt/oracle/oradata/ORCLCDB/logminer_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
    CREATE USER logminer_user IDENTIFIED BY [您的密码] DEFAULT TABLESPACE logminer_tbs QUOTA UNLIMITED ON logminer_tbs;
    
    -- 允许获取 LogMiner 所必须的表
    GRANT CREATE SESSION TO logminer_user;
    GRANT SELECT ON V_$DATABASE to logminer_user;
    GRANT SELECT ON V_$LOG TO logminer_user;
    GRANT SELECT ON V_$LOGFILE TO logminer_user;
    GRANT SELECT ON V_$LOGMNR_LOGS TO logminer_user;
    GRANT SELECT ON V_$LOGMNR_CONTENTS TO logminer_user;
    GRANT SELECT ON V_$ARCHIVED_LOG TO logminer_user;
    GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO logminer_user;
    GRANT EXECUTE ON DBMS_LOGMNR TO logminer_user;
    GRANT EXECUTE ON DBMS_LOGMNR_D TO logminer_user;
    
    GRANT SELECT ANY TABLE TO logminer_user;
    GRANT ANALYZE ANY TO logminer_user;
    
    -- 允许查看所有用户信息
    GRANT SELECT ON ALL_USERS TO logminer_user;
    
    -- 允许查看所有对象信息
    GRANT SELECT ON ALL_OBJECTS TO logminer_user;
    GRANT SELECT ON DBA_OBJECTS TO logminer_user;
    
    -- 允许查看物化视图和物化视图日志
    GRANT SELECT ON DBA_MVIEWS TO logminer_user;
    GRANT SELECT ON DBA_MVIEW_LOGS TO logminer_user;
    
    -- 允许查看约束信息
    GRANT SELECT ON DBA_CONSTRAINTS TO logminer_user;
    GRANT SELECT ON DBA_CONS_COLUMNS TO logminer_user;
    
    -- 允许查看表列信息
    GRANT SELECT ON ALL_TAB_COLS TO logminer_user;
    
    -- 允许查看系统表信息
    GRANT SELECT ON SYS.OBJ$ TO logminer_user;
    GRANT SELECT ON SYS.COL$ TO logminer_user;
    GRANT SELECT ON SYS.USER$ TO logminer_user;
    GRANT SELECT ON SYS.CDEF$ TO logminer_user;
    GRANT SELECT ON SYS.CON$ TO logminer_user;
    GRANT SELECT_CATALOG_ROLE to logminer_user WITH delegate option;
    
    -- 允许查看所有索引信息
    GRANT SELECT ON ALL_INDEXES TO logminer_user;
    
    -- 允许查看备用日志信息
    GRANT SELECT ON V_$STANDBY_LOG TO logminer_user;
    GRANT SELECT ON V_$ARCHIVE_GAP TO logminer_user;
    
    -- 允许查看事务信息
    GRANT SELECT ANY TRANSACTION TO logminer_user;
    
    -- 允许查询 DUAL 表
    GRANT SELECT ON DUAL TO logminer_user;
    
    -- Oracle 12c 及更高版本需要额外执行如下命令, 11 等旧版本无需执行
    GRANT LOGMINING TO logminer_user;
    

强烈不建议】如果您在测试环境遇到其他各类权限问题,如 ORA-01031: insufficient privileges、ORA-00942: table or view does not exist,可以尝试执行快速授予高权限:

GRANT DBA TO logminer_user;

-- 数据同步任务全部执行完成以后可解除授权
REVOKE DBA FROM logminer_user;

4 实时数据集成使用方法

上述配置操作完成后,您可通过 DataSail 解决方案界面,来配置 Oracle 实时整库同步、分库分表等作业,便可实现全增量数据同步的效果。

  1. 登录 DataSail 控制台
  2. 在左侧导航栏中选择数据同步方案,进入同步方案配置界面。
  3. 单击目录树中项目选择入口,选择已创建的 DataLeap 项目。
  4. 图片
  5. 单击右上角新建数据同步解决方案按钮,下拉选择实时整库同步、实时分库分表按钮,进入整库实时同步方案配置界面。按照以下配置,完成方案新建。

进入配置界面后,您可按实际场景需求,完成方案的基本配置、数据缓存配置、映射配置等流程配置。具体配置说明详见解决方案
图片

最近更新时间:2024.08.26 20:06:34
这个页面对您有帮助吗?
有用
有用
无用
无用