首批通过分布式安全可靠测评,为关键业务系统打造
Oracle Store
更新时间:2023-06-08 10:50:48
注意:
Store 使用时,所有配置项都在 deliver2store section 下,配置项名称前面加上
logminer.(除特殊说明) 例如,oracle.url为logminer.oracle.url。如果直接使用 Logminer Reader 插件,则无需关心在哪个 section 下,前面也无需加
logminer.。
| 参数 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|
| back_query_retry_times | 否 | 1 | 回查未查到,重试次数。 |
| connect_task_queue_size | 否 | 20000 | Connector task 中的 queue 大小。 |
| connect_timeout_ms | 否 | 30000 | 连接 Oracle 的超时时间。 |
| convert_to_source_record_thread_num | 否 | 6 | 增量 Record 向外吐出转换时,Converter 的并发个数。 |
| enable_check_ddl_cause_row_move | 否 | true | 是否启用检查 DDL 是否引起了行移动。 |
| enable_flashback_query | 否 | true | 是否启用 flashback query 功能。启用后回查时是根据日志的 scn 查询历史时刻的值,否则回查是查询当前时刻的值。 |
| enable_nopk_table_update_change_to_delete_plus_insert | 否 | true | 遇到无主键表时,是否转换 update 操作为一条 delete 和一条 insert 操作。 |
| enable_replace_null | 否 | true | 与 replace_null_string 结合使用,遇到有非空约束的列,分析到的数据为空时,是否将该空值替换为 replace_null_string 中配置的值。 |
| enable_skip_revise_valid_rowid_exception | 否 | false | 是否跳过修正 rowid 引起的异常。 |
| enable_stage_queue_compression | 否 | false | 预拉取的归档文件在本地磁盘暂存时是否压缩。建议设置为 true 打开,压缩后的文件大小与归档日志本身的大小差不多。如果不压缩,会有比较大的容量放大,会消耗磁盘空间占用。 |
| fetch_arch_logs_max_parallelism_per_instance | 否 | 1 | 一个 instance(thread) 上可以并发拉取归档日志的数量,默认为 1。大于 1 时会预拉取,用于增加拉取性能,预拉取的归档日志会暂存在本地磁盘文件。 |
| fetch_log_size | 否 | 10000 | 拉取日志中 PreparedStatement 的 setFetchSize,会影响拉取的速度。 |
| fetch_online_log_interval_seconds | 否 | 5 | 设置分析在线日志的间隔时间。 |
| full_table_name_black_list | 是,可为空 | 无 | 全名黑名单列表,表名需要是全路径的。支持两段式 database.table 和三段式 tenant.database.table,但需要统一。对于每一段指定为全名称或 *,不支持正则。多张表之间通过 | 相连。白名单允许为 *.*,黑名单不允许 . 前面一段指定的是 *,则后面的也必须是 .*。例如不允许 *.table1。 |
| full_table_name_white_list | 是 | 无 | 全名白名单列表,表名需要是全路径的。支持两段式 database.table 和三段式 tenant.database.table,但需要统一。对于每一段指定为全名称或*,不支持正则。多张表之间通过 | 相连。白名单允许为 *.*,黑名单不允许 . 前面一段指定的是 *,则后面的也必须是 .*。例如不允许 *.table1。 |
| ignore_error_code | 否 | 空 | 查询 record 时,指定忽略哪些 Oracle 错误码,多个之间使用 | 分隔。 |
| init_connection_size | 否 | 10 | 初始连接数。 |
| load_dictionary_thread_num | 否 | 16 | 启动时获取元信息的并发线程数,每个 Schema 一个任务。 |
| log_after_select_queue_size | 否 | 20000 | 回查阶段处理完后的队列大小,用于排查 pipeline 中的瓶颈。 |
| log_aggregator_queue_size | 否 | 20000 | aggregation 阶段的 queue 大小。 |
| log_analyse_queue_size | 否 | 20000 | analyse 阶段的 queue 大小。 |
| log_converter_queue_size | 否 | 20000 | converter 阶段的 queue 大小。 |
| log_entry_queue_size | 否 | 20000 | fetch 阶段的 queue 大小。 |
| master.timestamp | 是 | 无 | 指定拉取日志的起始时间戳。Store 使用时单位为秒,配置项名称前无需加 logminer.。直接使用 Logminer Reader 时,单位为毫秒。 无论是新启动还是重启,都使用该值作为起始拉取位点,单位为毫秒。消费 logminer-reader 的增量数据时,需要对最后消费一个事务的 committed timestamp 进行 checkpoint,重启恢复时传入上一次 checkpoint 的值。 |
| max_actively_staged_arch_logs_per_instance | 否 | Integer.MAX_VALUE | 一个 instance(thread) 上最多允许在本地磁盘暂存的并行拉取的归档文件的数量,达到该值后会暂停预拉取。该配置主要用于控制磁盘空间占用。暂存文件数实际会使用的值为 Math.max(fetch_arch_logs_max_parallelism_per_instance, max_actively_staged_arch_logs_per_instance)。 |
| max_connection_size | 否 | 无,可为空 | 该参数为空时自动计算,计算规则为 max(load_dictionary_thread_num, selector_thread_num) + 4。 |
| max_num_in_memory_one_transaction | 否 | 1000 | 一个事务最多可以存放在内存的日志记录数量。如果超过设置的值,日志记录会暂存至磁盘。 该参数用于解决大事务问题。 |
| max_wait_ms | 否 | 180000 | Oracle 连接的最大等待毫秒数。 |
| only_fetch_archived_log | 否 | false | 是否仅拉取归档日志。 |
| oracle.password | 是 | 无 | 用于抓取日志的用户名对应的密码。 |
| oracle.url | 是 | 无 | 需要抓取日志的 Oracle 数据库的 ip:port 或 service_name。如果是 PDB 数据库,则填写 PDB 的 service_name。 |
| oracle.user | 是 | 无 | 用于抓取日志的用户名。如果是 PDB 数据库,需要是 common user。 |
| output_rowid | 否 | false | 是否输出 ROWID。包含无主键表时,用户可以根据获得的 ROWID 去重。 |
| print_data | 否 | false | 是否打印拉取的日志,用于问题排查。 |
| read_timeout_ms | 否 | 180000 | Oracle 连接上的 read timeout。 |
| read_timeout_retry_times | 否 | 10 | 查询 Oracle 时异常的重试次数。 |
| replace_invalid_date | 否 | false | 遇到无法解析的 DATE 类型时,是否将其转换为落日志时的时间,以确保 logminier reader 能够继续运行。 |
| replace_null_string | 否 | " " | 需要替换空值的值,默认为一个空格。 |
| replace_rowids | 否 | 空 | 是否启动将指定 ROWID 替换为另一个值,格式为 before1:after1|before2:after2。 |
| selector_thread_num | 否 | 32 | 回查线程数。INSERT LOB 和 UPDATE 需要回查,调整该参数可以提高 INSERT LOB 和 UPDATE 的处理速度。一个回查线程需要一个连接。 |
| session_timezone | 否 | Asia/Shanghai | timestamp with local time zone 类型根据哪个时区吐出字符串。需要和 Writer 的 timezone 参数匹配。 |
| skip_records | 否 | 空 | 是否跳过包含有指定字符串的记录,多个之间使用 | 分隔。 |
| skip_transactions | 否 | 空 | 是否跳过指定 transid 的事物,多个之间使用 | 分隔。 |
| sql_in_clause_max_parameter_num | 否 | 200 | 查询元信息时,用到 IN clause 时,一次最多查询多少张表。 |
| stage_queue_directory | 否 | 进程当前工作路径 | 预拉取的归档文件暂存目录,默认为进程当前工作路径。 |
| start_timestamp_backoff_seconds | 否 | 300 | 抓取的起始时间以断点时间后退多少秒开始。 |
| use_independent_fetcher_per_instance | 否 | false | 是否对数据库中的各个 instance(thread) 产生的事务日志使用独立的 fetcher 模块进行拉取,默认为 false。
|
| use_system_exit | 否 | true | 是否使用 System.exit。 |