支持模式

  • 支持读取生产redo模式
  • 支持读取ADG备库REDO模式(只支持读取归档日志)

软件支持基础

  • 压缩表支持(11g-19c)
  • 复制支持数据库范围(9i-19c)
  • 支持操作系统
    AIX
    LINUX
    HP-UX
    SOLARIS
    WINDOWS

1 修改配置

1.1 开启归档

1.1.1 检查数据库归档模式

SELECT NAME,LOG_MODE FROM V$DATABASE;

注:ORACLE数据库需开启归档模式
注:启用ARCHIVELOG模式需要Oracle实例短暂脱机。要了解更多信息,请参阅 Oracle归档日志说明文档。

注:ORACLE日志解析的过程中,ZCBUS只解析CURRENT状态下REDO和归档日志
备份软件备份过程中,备份脚本最少缓存几个小时或者一定周期日志。

1.1.2 数据库修改为归档模式步骤(单机模式)

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

配置Oracle RMAN以将备份和归档日志保留至少24小时。我们建议将数据保留七天

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

推荐设置:将DB_RECOVERY_FILE_DEST_SIZE参数设置为与可用磁盘空间相匹配的值,因为过期和过时的日志文件和备份文件会很快填满磁盘。有关详细信息,请参阅.Oracle的DB_RECOVERY_FILE_DEST_SIZE文

1.2 开启附加日志

1.2.1 库级别

  • 查看库级附加日志开启情况
    SELECT LOG_MODE,
         SUPPLEMENTAL_LOG_DATA_MIN MIN,
         SUPPLEMENTAL_LOG_DATA_PK PK,
         SUPPLEMENTAL_LOG_DATA_UI UI,
         SUPPLEMENTAL_LOG_DATA_FK FK,
         SUPPLEMENTAL_LOG_DATA_ALL ALLC
    FROM V$DATABASE;
  • 库级开启附加日志
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS;
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA(ALL) COLUMNS;

1.2.2 表级别

  • 查看表级附加日志开启情况
    SELECT OWNER,TABLE_NAME,LOG_GROUP_TYPE FROM DBA_LOG_GROUPS WHERE OWNER='<USERNAME>' and TABLE_NAME='<TABLE_NAME>';
  • 表级开启附加日志
    ALTER TABLE <USERNAME>.<TABLE_NAME> ADD SUPPLEMENTAL LOG DATA(PRIMARY KEY) COLUMNS;
    ALTER TABLE <USERNAME>.<TABLE_NAME> ADD SUPPLEMENTAL LOG DATA(ALL) COLUMNS;
    ALTER TABLE <USERNAME>.<TABLE_NAME> ADD SUPPLEMENTAL LOG DATA(UNIQUE) COLUMNS;
    或者
    ALTER TABLE <USERNAME>.<TABLE_NAME> ADD SUPPLEMENTAL LOG DATA(ALL,PRIMARY KEY,UNIQUE) COLUMNS;

1.3 创建用户及赋权

1.3.1 创建数据库用户

CREATE USER ZCBUS IDENTIFIED BY "********";

注:12C以上版本数据库的CDB模式zcbus用户名要以c##开头

1.3.2 数据库用户赋权

-- 连接数据库
GRANT CREATE SESSION TO ZCBUS;
-- 授予开发人员的。拥有rESOURCE权限的用户只可以创建实体,不可以创建数据库结构。
GRANT RESOURCE TO ZCBUS; 
-- 查询任何表
GRANT SELECT ANY TABLE TO ZCBUS; 
-- 查询任何字典
GRANT SELECT ANY DICTIONARY TO ZCBUS; 
-- 查询部分字典和包
GRANT SELECT_CATALOG_ROLE TO ZCBUS; 
-- 可执行部分字典和包
GRANT EXECUTE_CATALOG_ROLE TO ZCBUS; 
-- 选择任何事务
GRANT SELECT ANY TRANSACTION TO ZCBUS; 
-- 可执行DBMS_LOGMNR_D包
GRANT EXECUTE ON DBMS_LOGMNR_D TO ZCBUS; 
-- 可执行DBMS_LOGMNR包
GRANT EXECUTE ON DBMS_LOGMNR TO ZCBUS; 
-- 可执行DBMS_FLASHBACK包
GRANT EXECUTE ON DBMS_FLASHBACK TO ZCBUS;
-- flashback表权限 
GRANT FLASHBACK ANY TABLE TO ZCBUS; 
-- 12C版本以上执行,logmining权限
GRANT logmining TO ZCBUS;  

注:12C以上版本数据库的CDB模式zcbus用户名要以c##开头

1.3.3 PDB模式用户创建及赋权

CREATE USER C##ZCBUS IDENTIFIED BY *******  CONTAINER=ALL;
GRANT CREATE SESSION TO C##ZCBUS CONTAINER=ALL;
GRANT RESOURCE TO C##ZCBUS CONTAINER=ALL;
GRANT SELECT ANY TABLE TO C##ZCBUS CONTAINER=ALL;
GRANT SELECT ANY DICTIONARY TO C##ZCBUS CONTAINER=ALL;
GRANT SELECT_CATALOG_ROLE TO C##ZCBUS CONTAINER=ALL;
GRANT EXECUTE_CATALOG_ROLE TO C##ZCBUS CONTAINER=ALL;
GRANT SELECT ANY TRANSACTION TO C##ZCBUS CONTAINER=ALL;
GRANT EXECUTE ON DBMS_LOGMNR_D TO C##ZCBUS CONTAINER=ALL;
GRANT EXECUTE ON DBMS_LOGMNR TO C##ZCBUS CONTAINER=ALL;
GRANT EXECUTE ON DBMS_FLASHBACK TO C##ZCBUS CONTAINER=ALL;
GRANT FLASHBACK ANY TABLE TO C##ZCBUS CONTAINER=ALL;
GRANT LOGMINING TO C##ZCBUS CONTAINER=ALL;

2 补充说明

2.1 发布PDB模式DB配置

注:

  • PDB名称是否需要大小写,需要严格区分(否则增量数据会被过滤,无法分析到增量数据),输入正确的PDB名cdb下查询以下sql才能返回结果:
    select CON_UID from dba_pdbs where PDB_NAME=’PDB名’;
  • zcbus程序只是程序启动才会检查节点信息,不会动态检查节点信息,比如添加删除节点,不能自动检查相应的节点信息,需要手动重启zcbus,如果不重启zcbus,相应的节点操作不能分析到。 -2021.06.20
  • zcbus程序启动后再次启动down掉的节点,这种情况已支持 (zcbus-7.6-8-20210620.tar.gz版本修复了此项)

2.2 数据类型支持列表

ORACLE字段类型 字段描述 是否支持
CHAR 固定长度字符串,最大长度2000bytes 是
VARCHAR2 可变长度的字符串, 最大长度4000bytes 是
NCHAR 根据字符集而定的固定长度字符串,最大长度2000bytes 是
NVARCHAR2 根据字符集而定的可变长度字符串,最大长度4000bytes 是
DATE 日期(日-月-年),DD-MM-YY(HH-MI-SS),经过严格测试,无千虫问题 是
TIMESTAMP 日期(日-月-年),DD-MM-YY(HH-MI-SS:FF3),经过严格测试,无千虫问题 是
TIMESTAMP WITH LOCAL TIME ZONE 日期(日-月-年),该类型会转换成数据的时区来保存数据, 即在数据库中保存的时间是数据库本地的时区. 当别的地方用户访问数据库时在显示该类型数据时Oracle会将该时区转换成客户端的时间来显示. 在数据库中保存占7到11字节 是
TIMESTAMP WITH TIME ZONE 日期(日-月-年),保存的是0时区的时间,和所处的时区信息,IMESTAMP WITH TIME ZONE保存的是当前时间转化到0时区的对应的时间,并通过最后两位来保存时区信息 是
LONG 超长字符串 ,最大长度2G,足够存储大部头著作 是
RAW 固定长度的二进制数据,最大长度2000bytes 是
LONG RAW 可变长度的二进制数据,最大长度2G 是
BLOB 二进制数据 ,最大长度4G 是
CLOB 字符数据 ,最大长度4G 是
NCLOB 根据字符集而定的字符数据,最大长度4G 是
NUMBER(P,S) 数字类型,P为整数位,S为小数位 是
DECIMAL(P,S) 数字类型,P为整数位,S为小数位 是
INTEGER 整数类型,小的整数 是
FLOAT 浮点数类型,NUMBER(38),双精度 是
REAL 实数类型,NUMBER(63),精度更高 是
XMLTYPE XML类型,存储XML类型 是
TYPE 自定义数据类型,自定义UDT字段,以及地图位置等数据类型暂不支持 不支持
BFILE 二进制数据类型,BFILE字段存放指向操作系统文件的指针,外部的lob类型,存储在数据库外的操作系统文件 不支持
文档更新时间: 2026-06-12 00:21   作者:阿力