开启归档
检查数据库归档模式
SELECT NAME,LOG_MODE FROM V$DATABASE;
注:ORACLE数据库需开启归档模式
注意:启用ARCHIVELOG模式需要Oracle实例短暂脱机。要了解更多信息,请参阅 Oracle归档日志说明文档。
注:ORACLE日志解析的过程中,ZCBUS只解析CURRENT状态下REDO和归档日志
备份软件备份过程中,备份脚本最少缓存几个小时或者一定周期日志。
数据库修改为归档模式步骤(单机模式)
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文
开启附加日志
- 查询当前设置
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;
查看表级附加日志开启情况
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(ALL,PRIMARY KEY,UNIQUE) COLUMNS;
用户创建
创建数据库用户
CREATE USER ZCBUS IDENTIFIED BY "********";
注:12C以上版本数据库的CDB模式zcbus用户名要以c##开头
数据库用户赋权
-- 连接数据库
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##开头
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;
PDB模式DB配置
注:
(1)PDB名称是否需要大小写,需要严格区分(否则增量数据会被过滤,无法分析到增量数据),输入正确的PDB名cdb下查询以下sql才能返回结果:
select CON_UID from dba_pdbs where PDB_NAME=’PDB名’;
(2)zcbus程序只是程序启动才会检查节点信息,不会动态检查节点信息,比如添加删除节点,不能自动检查相应的节点信息,需要手动重启zcbus,如果不重启zcbus,相应的节点操作不能分析到。 -2021.06.20
zcbus程序启动后再次启动down掉的节点,这种情况已支持 (zcbus-7.6-8-20210620.tar.gz版本修复了此项)
检查节点个数:
SELECT DISTINCT THREAD# FROM V$LOG;
检查节点启动状态:
SELECT INSTANCE_NUMBER,INSTANCE_NAME,HOST_NAME,STATUS,VERSION FROM GV$INSTANCE;
ZCBUS准备
- 添加发布节点
- 资源管理-发布节点
添加发布节点,选择运行容器位置
配置发布数据库配置信息【ORACLE】即可
序号 | 变量名 | 默认值 | 是否隐藏函数 | 描述 |
---|---|---|---|---|
1 | db_type | oracle | 不隐藏 | 源数据库类型 |
2 | logmnr_mode | 1 | 不隐藏 | 支持XSTREAM/LOGMNR两种模式,设为1时,用logmnr模式分析日志,默认为0,XSTREAMS【11.2.0.4以上版本】 |
3 | logmnr_scn_range | 20000 | 不隐藏 | logmnr分析模式时,一轮日志分析的最大scn范围,默认为20000;XSTREAM模式可忽略 |
4 | logmnr_scn_back | 10 | 不隐藏 | logmnr分析模式时,在线日志回退scn分析数,默认为10;XSTREAM模式可忽略 |
5 | server_name | xout | 不隐藏 | Oracle捕获服务名,XSTREAM模式中,数据库获取增量数据的服务名,在LOGMNR中可忽略 |
6 | db_name | oracle12c | 不隐藏 | 捕获数据库登录服务名 |
7 | host | 172.17.58.145 | 不隐藏 | 数据库IP地址 |
8 | port | 1521 | 不隐藏 | 数据库端口号 |
9 | user | zcbus | 不隐藏 | 捕获数据库用户名 |
10 | password | zcbus | 不隐藏 | 捕获数据库密码 |
11 | source_db_type | oracle | 不隐藏 | 源数据库的类型,用于全量发布 |
12 | source_db_name | oracle12c | 不隐藏 | 源端数据库名 |
13 | source_host | 172.17.58.145 | 不隐藏 | 源端主机IP地址 |
14 | source_port | 1521 | 不隐藏 | 源端数据库端口 |
15 | source_user | zcbus | 不隐藏 | 源端用户名 |
16 | source_password | zcbus | 不隐藏 | 源端密码 |
17 | read_log_from_remote | 1 | 不隐藏 | 1为远程读日志 |
18 | real_export_buffer | 0 | 不隐藏 | 定时导出每个线程使用的最大内存,单位(M),最小50M |
19 | real_export_by_where | 0 | 不隐藏 | 设置为1时,实时发布时采用定时导出的模式 |
20 | real_export_threads | 1 | 不隐藏 | 定时导出使用的线程数,默认为4 |
21 | real_send_queues | 0 | 不隐藏 | 实时发送队列 |
22 | single_message_max_len | 209715200 | 不隐藏 | 单条消息的最大长度,单条消息超过此长度时,会被拆分成多条消息,单位(BYTE),默认为10485760(10M),最小为5242880(5M),如果设置值比message_max_len小,则调整为和message_max_len一致,-1为无限制 |
26 | parallel_query_count | 4 | 不隐藏 | 数据库查询并行度 |
27 | file_multiblock_read_count | 256 | 不隐藏 | Oracle一次读取的块的数量 |
28 | full_sync_threads | 4 | 不隐藏 | 全量并发线程数 |
29 | max_packet_len | 5242880 | 不隐藏 | 发送到kafka的最大包长度(BYTE) |
30 | full_publish_interval | 0 | 不隐藏 | 全量发送每个包的间隔(毫秒),0为不限制,测试版本每秒钟发送1个包,正式版100毫秒发送一个包,可以设置为不限制 |
31 | log_extract_interval | 2000 | 不隐藏 | 增量每轮分析日志的时间间隔(毫秒),注册版默认为2000(2秒),可修改,最小为50,试用版固定每轮日志分析时间间隔为10秒 |
32 | message_max_len | 0 | 不隐藏 | 发送到kafka的最大消息长度(BYTE),默认为5242880(5M),最小10240(10K) |
33 | full_sync_buffer | 100 | 不隐藏 | 全量导出的Buffer |
35 | land_to_file | 0 | 不隐藏 | 是否落地缓存,1:是 0:否 |
36 | land_file_reserve_cont | 0 | 不隐藏 | 文件发送到kafka之后,保留暂时不删除的文件个数,默认为0,发送成功之后马上删除文件 |
37 | auto_add_table_real_rule | 1 | 不隐藏 | 设置为1是,实时进程启动或者设置实时刷新标志为1时,bus_push_sync_tb表里自动添加实时streams规则,默认为1 |
38 | to_single_byte | 1 | 不隐藏 | 设置为1时,全量发布select查询时,varchar2类型字段加to_single_byte转换,默认为0,在某些特殊情况下,全量导出报错。 ORA-29275: partial multibyte character |
39 | message_encrypt | 0 | 不隐藏 | 发送到kafka的消息是否加密,默认为0不加密,1为加密 |
40 | parallelism | 0 | 不隐藏 | CAPTURE进程的并发数,设置大于等于1的时候生效 |
41 | write_alert_log | 0 | 不隐藏 | CAPTURE进程是否写alert日志,0为不写日志,1为写日志 |
42 | nls_lang | 0 | 不隐藏 | Oracle客户端连接时的环境变量,默认为AMERICAN_AMERICA.AL32UTF8 |
43 | rac_mode | 0 | 不隐藏 | logmnr分析模式,设置为1,可单独读取每个节点的日志,在排序输出 |
44 | rac_ip_list | 不隐藏 | RAC_MODE=1的情况下,多节点分别读取日志,多节点分别读取日志 | |
45 | rac_mode_threads | 0 | 不隐藏 | RAC_MODE=1的时候,设置线程数,可以多线程并行读取日志 |
46 | data_migrate_mode | 0 | 隐藏 | 设置为1时,全量发布时使用迁移模式,不受刷新标志和增量状态的影响,默认为0 |
文档更新时间: 2023-11-01 21:59 作者:操李红