6.6. Debezium Oracle 连接器配置属性的描述
Debezium Oracle 连接器有许多配置属性,您可以使用它们来实现应用程序的正确连接器行为。许多属性具有默认值。有关属性的信息按如下方式进行组织:
- 所需的 Debezium Oracle 连接器配置属性
数据库架构历史记录配置属性,用于控制 Debezium 如何处理从数据库架构历史记录主题读取的事件。
- 控制 数据库驱动程序行为的直通数据库驱动程序属性。
所需的 Debezium Oracle 连接器配置属性
除非默认值可用 , 否则需要以下配置属性。
属性 | 默认 | 描述 |
没有默认值 | 连接器的唯一名称。尝试再次使用相同的名称注册将失败。(所有 Kafka Connect 连接器都需要此属性。) | |
没有默认值 |
连接器的 Java 类的名称。对于 Oracle 连接器,始终使用 | |
没有默认值 |
枚举连接器可以使用 的自定义转换器 实例的符号名称的逗号分隔列表。
对于您为连接器配置的每个转换器,还必须添加一个
例如, boolean.type: io.debezium.connector.oracle.converters.NumberOneToBooleanConverter
如果要进一步控制配置的转换器的行为,您可以添加一个或多个配置参数将值传递给转换器。要将任何其他配置参数与转换器关联,请将参数名称与转换器的符号链接名称添加前缀。 boolean.selector: .*MYTABLE.FLAG,.*.IS_ARCHIVED | |
| 为此连接器创建的最大任务数量。Oracle 连接器始终使用单个任务,因此不要使用这个值,因此始终可以接受默认值。 | |
没有默认值 | Oracle 数据库服务器的 IP 地址或主机名。 | |
没有默认值 | Oracle 数据库服务器的整数端口号。 | |
没有默认值 | 连接器用于连接 Oracle 数据库服务器的 Oracle 用户帐户的名称。 | |
没有默认值 | 连接到 Oracle 数据库服务器时要使用的密码。 | |
没有默认值 | 要连接的数据库的名称。使用 CDB + PDB 模型时,必须是 CDB 名称。 | |
没有默认值 | 指定原始数据库 JDBC URL。使用此属性提供定义数据库连接的灵活性。有效值包括原始 TNS 名称和 RAC 连接字符串。 | |
没有默认值 | 要连接的 Oracle 可插拔数据库的名称。仅将此属性用于容器数据库(CDB)安装。 | |
没有默认值 |
为连接器从中捕获更改的 Oracle 数据库服务器提供命名空间的主题前缀。您设置的值用作连接器发出的所有 Kafka 主题名称的前缀。指定 Debezium 环境中所有连接器的唯一主题前缀。以下字符有效:字母数字字符、连字符、句点和下划线。 警告 不要更改此属性的值。如果您更改了 name 值,重启后,而不是继续向原始主题发出事件,连接器会将后续事件发送到名称基于新值的主题。连接器也无法恢复其数据库架构历史记录主题。 | |
|
连接器在流数据库更改时使用的适配器实现。您可以设置以下值: | |
Initial | 指定连接器用来获取捕获表快照的模式。您可以设置以下值:
快照完成后,连接器将继续从数据库的红色日志读取更改事件,除非
如需更多信息,请参阅 | |
shared | 控制连接器保存表锁定的时长。表锁定可防止连接器执行快照时发生某些类型的更改表操作。您可以设置以下值:
| |
|
一个可选的、以逗号分隔的正则表达式列表,与表的完全限定名称(< 要匹配表的名称,Debebe 应用您指定的正则表达式。也就是说,指定的表达式与表的整个名称字符串匹配,它与表名称中可能存在的子字符串不匹配。 | |
没有默认值 | 指定要包含在快照中的表行。如果您希望快照仅在表中包括行的子集,请使用此属性。此属性仅影响快照。它不适用于连接器从日志中读取的事件。
属性包含一个以逗号分隔的表名称列表,格式为 <
在包含 soft-delete 列 "snapshot.select.statement.overrides": "customer.orders", "snapshot.select.statement.overrides.customer.orders": "SELECT * FROM [customers].[orders] WHERE delete_flag = 0 ORDER BY id DESC"
在生成的快照中,连接器仅包含 | |
没有默认值 |
可选的、以逗号分隔的正则表达式列表,与您要 捕获更改的模式的名称匹配。只有 POSIX 正则表达式有效。任何未包含在 schema.
要匹配架构的名称,Debezium 应用您指定的正则表达式,以 替代 的正则表达式。也就是说,指定的表达式与模式的整个名称字符串匹配,它与 schema 名称中可能存在的子字符串不匹配。 | |
| 指定连接器是否应该解析和发布元数据对象上的表和列注释的布尔值。启用此选项会对内存用量造成影响。逻辑架构对象的数量和大小严重影响 Debezium 连接器消耗的内存量,并为每一个字符串添加潜在的大型字符串数据可能非常昂贵。 | |
没有默认值 |
可选的、以逗号分隔的正则表达式列表,与 您不想 捕获更改的模式的名称匹配。只有 POSIX 正则表达式有效。任何名称没有包含在 schema.
要匹配架构的名称,Debezium 应用您指定的正则表达式,以 替代 的正则表达式。也就是说,指定的表达式与模式的整个名称字符串匹配,它与 schema 名称中可能存在的子字符串不匹配。 | |
没有默认值 |
可选的正则表达式列表,与要捕获的表的完全限定表标识符匹配。只有 POSIX 正则表达式有效。当设置此属性时,连接器只从指定的表中捕获更改。每个表标识符都使用以下格式:
要匹配表的名称,Debebe 应用您指定的正则表达式。也就是说,指定的表达式与表的整个名称字符串匹配,它与表名称中可能存在的子字符串不匹配。 | |
没有默认值 |
可选的正则表达式列表,与要从监控中排除的表的完全限定表标识符匹配。只有 POSIX 正则表达式有效。连接器从排除列表中指定的任何表中捕获更改事件。使用以下格式为每个表指定标识符:
要匹配表的名称,Debebe 应用您指定的正则表达式。也就是说,指定的表达式与表的整个名称字符串匹配,它与表名称中可能存在的子字符串不匹配。 | |
没有默认值 |
可选的、以逗号分隔的正则表达式列表,与更改事件消息值中包含的列的完全限定名称匹配。只有 POSIX 正则表达式有效。列的完全限定域名使用以下格式:
要匹配列的名称,Debebe 应用您指定的正则表达式。也就是说,指定的表达式与列的整个名称字符串匹配,它与列名称中可能存在的子字符串不匹配。 | |
没有默认值 |
可选的、以逗号分隔的正则表达式列表,与您要从更改事件消息值中排除的列的完全限定名称匹配。只有 POSIX 正则表达式有效。完全限定列名称使用以下格式:
要匹配列的名称,Debebe 应用您指定的正则表达式。也就是说,指定的表达式与列的整个名称字符串匹配,它与列名称中可能存在的子字符串不匹配。 | |
| 不适用 |
一个可选的、以逗号分隔的正则表达式列表,与基于字符的列的完全限定名称匹配。列的完全限定域名格式为
一个 pseudonym,它包括了通过应用指定的 hashAlgorithm 和 salt 的结果的哈希值。根据使用的 hash 功能,会维护引用完整性,而列值则替换为伪nyms。支持的哈希功能在 Java Cryptography 架构标准算法名称文档中的 MessageDigest 部分 进行了描述。 column.mask.hash.SHA-256.with.salt.CzQMA0cB5K = inventory.orders.customerName, inventory.shipment.customerName
如有必要,伪的nym 会自动缩短到列的长度。连接器配置可以包含多个指定不同哈希算法和 salt 的属性。 |
bytes |
指定二进制( | |
none |
指定如何调整架构名称,以便与连接器使用的消息转换器兼容。可能的设置:
| |
|
指定连接器如何处理
| |
|
指定连接器应该如何处理 | |
| 指定连接器在处理事件时应如何响应异常。您可以设置以下选项之一:
| |
| 一个正整数值,用于指定每个连接器迭代期间要处理的事件的最大大小。 | |
|
正整数值,用于指定阻塞队列可以保存的最大记录数。当 Debezium 从数据库读取事件时,它会将事件放置在阻塞队列中,然后再将它们写入 Kafka。当连接器将消息写入 Kafka 或 Kafka 不可用时,阻塞队列可以提供从数据库读取更改事件的后端。当连接器定期记录偏移时,队列中保存的事件会被忽略。始终将 | |
|
较长的整数值,指定块队列的最大卷(以字节为单位)。默认情况下,不会为阻塞队列指定卷限制。要指定队列可以使用的字节数,请将此属性设置为正长值。 | |
| 正整数值,用于指定连接器在每次迭代期间应该等待的毫秒数,以便显示新的更改事件。 | |
| 控制 删除 事件是否随后是 tombstone 事件。可能会有以下值:
删除源记录后,tombstone 事件(默认行为)可让 Kafka 完全删除启用了 日志压缩的主题中已删除行键的所有事件。 | |
没有默认值 | 指定连接器用来组成自定义消息键的表达式列表,以更改它发布到指定表的 Kafka 主题的事件记录。
默认情况下,Debezium 使用表的主键列作为它发出的记录的消息键。对于缺少主密钥的表,或者指定缺少主密钥的表的密钥,您可以根据一个或多个列配置自定义消息密钥。 | |
没有默认值 |
一个可选的、以逗号分隔的正则表达式列表,与基于字符的列的完全限定名称匹配。如果您希望连接器屏蔽一组列的值,例如,如果它们包含敏感数据,则设置此属性。将
列的完全限定域名会观察以下格式:< 您可以在单个配置中指定多个长度不同的属性。 | |
没有默认值 |
可选的、以逗号分隔的正则表达式列表,用于更改事件消息中的掩码列名称,方法是用星号替换字符(DSL)。 | |
没有默认值 | 可选的、以逗号分隔的正则表达式列表,它与您希望连接器发送代表列元数据的完全限定名称匹配。当设置此属性时,连接器会将以下字段添加到事件记录的架构中:
这些参数分别传播列的原始类型和长度(用于变量带宽类型)。
列的完全限定域名会观察以下格式之一:< | |
没有默认值 | 可选的、以逗号分隔的正则表达式列表,用于指定为数据库列定义的数据类型的完全限定名称。当设置此属性时,对于具有匹配数据类型的列,连接器会发出事件记录,该记录在 schema 中包含以下额外字段:
这些参数分别传播列的原始类型和长度(用于变量带宽类型)。
列的完全限定域名会观察以下格式之一:< 有关特定于 Oracle 的数据类型名称的列表,请查看 Oracle 数据类型映射。 | |
|
以毫秒为单位指定连接器发送消息的频率。 | |
没有默认值 |
指定连接器发送心跳消息时连接器在源数据库上执行的查询。 设置此属性并创建一个心跳表来接收心跳消息,以解决 Debezium 无法同步与高流量数据库 相同的主机上的偏移量。连接器将记录插入到配置的表中后,它可以从低流量数据库接收更改,并确认数据库中的 SCN 更改,以便偏移可与代理同步。 | |
没有默认值 |
指定连接器在创建快照前等待的时间(毫秒)。 | |
| 指定在进行快照时应从一个表中读取的最大行数。连接器以指定大小的多个批处理读取表内容。 | |
没有默认值 | 指定在给定查询的每个数据库往返时将获取的行数。默认为 JDBC 驱动程序的默认获取大小。 | |
当连接器配置明确指定使用 Avro 的 | 指定字段名称是否规范化,以符合 Avro 命名要求。如需更多信息,请参阅 Avro 命名。 | |
|
如果您希望 Debezium 生成带有事务边界的事件,并使用事务元数据增强数据事件,则将属性设置为 如需了解更多详细信息,请参阅事务元数据。 | |
|
指定最小策略,用于控制 Oracle LogMiner 构建和使用给定数据字典解析表和列 ids to name。 | |
|
缓冲区类型控制连接器如何管理缓冲区事务数据。 | |
|
在使用新会话前,LogMiner 会话可以处于活跃状态的最大毫秒数。 | |
| 此连接器尝试从 redo/archive 日志中读取的最小 SCN 间隔大小。活跃批处理大小也会根据需要增加/减少这个数量,以便调整连接器吞吐量。 | |
| 此连接器从 redo/archive 日志读取时使用的最大 SCN 间隔大小。 | |
| 连接器用于从 redo/archive 日志中读取数据的起始 SCN 间隔大小。这也服务器是调整批处理大小的方法 - 当当前 SCN 和批处理开始/结束 SCN 之间的区别大于这个值时,批处理大小会增加/降低。 | |
| 从 redo/archive 日志读取数据后连接器休眠的最短时间,并在重新读取数据前开始读取数据。值以毫秒为单位。 | |
| 连接器在从 redo/archive 日志读取数据后的最大时间,并在重新读取数据前开始读取数据。值以毫秒为单位。 | |
| 连接器在从 redo/archive 日志读取数据后休眠的时间,并在重新读取数据前开始读取数据。值以毫秒为单位。 | |
| 连接器在从 logminer 读取数据时用于调整最佳睡眠时间的最大时间。值以毫秒为单位。 | |
|
过去的小时数从 SYSDATE 到 mine 归档日志。当使用默认设置( | |
|
控制连接器是否从归档日志或在线 redo 日志和归档日志(默认)的组合中减去更改。 | |
|
连接器在轮询之间休眠的毫秒数,以确定启动系统更改号是否在归档日志中。如果没有启用 | |
|
正整数值,用于指定在 redo 日志交换机之间保留长时间运行的事务的小时数。当设置为 LogMiner 适配器维护所有正在运行的事务的内存缓冲。因为所有作为事务一部分的 DML 操作都会被缓冲,直到检测到提交或回滚,所以应该避免长时间运行的事务来溢出该缓冲区。任何超过此配置值的事务都会完全丢弃,连接器不会为属于事务的操作发出任何消息。 | |
没有默认值 |
指定在使用 LogMiner 最小归档日志时要使用的 Oracle 归档目的地。 | |
没有默认值 | 要从 LogMiner 查询中排除的数据库用户列表。如果您希望捕获过程始终排除特定用户所做的更改,则设置此属性非常有用。 | |
|
指定连接器与当前和之前的 SCN 值之间的区别进行比较的值,以确定是否存在 SCN 差距。如果 SCN 值之间的区别大于指定的值,且时间差大于 | |
|
指定一个值(以毫秒为单位),连接器与当前和之前的 SCN 时间戳之间的区别进行比较,以确定是否存在 SCN 差距。如果时间戳之间的区别小于指定的值,并且 SCN delta 大于 | |
|
控制是否在更改事件时发送大型对象(CLOB 或 BLOB)列值。 注意 使用大型对象数据类型是一个技术预览功能。 | |
| 指定连接器提供的常量,以指示原始值保持不变,且不由数据库提供。 | |
没有默认值 | 以逗号分隔的 Oracle Real Application Clusters (RAC)节点主机名或地址列表。需要此字段才能与 Oracle RAC 部署兼容。 使用以下方法之一指定 RAC 节点列表:
如果您使用 | |
| 您希望连接器在流期间跳过的操作类型的逗号分隔列表。您可以配置连接器来跳过以下类型的操作:
默认情况下,仅跳过截断操作。 | |
没有默认值 |
用于向连接器发送信号的数据收集的完全限定名称。https://access.redhat.com/documentation/zh-cn/red_hat_integration/2023.q2/html-single/debezium_user_guide/index#debezium-signaling-enabling-signaling当您将此属性与 Oracle 可插拔数据库(PDB)搭配使用时,将其值设为 root 数据库的名称。 | |
| 连接器在增量快照块期间获取并读取内存的最大行数。增加块大小可提高效率,因为快照会运行更大的快照查询。但是,较大的块大小还需要更多内存来缓冲快照数据。将块大小调整为在您的环境中提供最佳性能的值。 | |
|
应该用来决定数据更改的主题名称、模式更改、事务、心跳事件等的 TopicNamingStrategy 类的名称,默认为 | |
|
指定主题名称的分隔符,默认为 | |
| 用于在绑定并发哈希映射中保存主题名称的大小。此缓存有助于确定与给定数据收集对应的主题名称。 | |
|
控制连接器向发送心跳消息的主题名称。主题名称具有此模式: | |
|
控制连接器向发送事务元数据消息的主题名称。主题名称具有此模式: |
Debezium Oracle 连接器数据库模式历史记录配置属性
Debezium 提供了一组 schema.history.internal114
属性,用于控制连接器如何与 schema 历史记录主题交互。
下表描述了用于配置 Debezium 连接器的 schema.history.internal
属性。
属性 | 默认 | 描述 |
---|---|---|
没有默认值 | 连接器存储数据库架构历史记录的 Kafka 主题的完整名称。 | |
没有默认值 | 连接器用来建立到 Kafka 集群的初始连接的主机/端口对列表。此连接用于检索之前由连接器存储的数据库架构历史记录,并编写从源数据库读取的每个 DDL 语句。每个对都应该指向 Kafka Connect 进程使用的相同 Kafka 集群。 | |
| 整数值,用于指定连接器在轮询保留数据时应该等待的最大毫秒数。默认值为 100ms。 | |
| 指定连接器在使用 Kafka admin 客户端获取集群信息时应等待的最大毫秒数。 | |
| 指定连接器在使用 Kafka admin 客户端创建 kafka 历史记录主题时应等待的最大毫秒数。 | |
|
连接器在连接器恢复失败前读取保留历史记录数据的次数上限。在收到数据后等待的最长时间为 | |
|
指定连接器是否应该忽略不正确的或未知数据库语句或停止处理等布尔值,以便人可以解决这个问题。安全默认值为 | |
|
指定连接器是否应该记录所有 DDL 语句的布尔值
安全默认值为 |
直通数据库模式历史记录属性,用于配置制作者和消费者客户端
Debezium 依赖于 Kafka producer 将模式更改写入数据库架构历史记录主题。同样,它依赖于 Kafka 使用者在连接器启动时从数据库 schema 历史记录主题中读取。您可以通过将值分配给以 schema.history.internal.consumer 前缀开头的一组直通配置属性来定义 Kafka producer
和 消费者
客户端的配置。直通制作者和消费者数据库模式历史记录属性控制一系列行为,如这些客户端如何与 Kafka 代理安全连接,如下例所示:
schema.history.internal.producer.security.protocol=SSL schema.history.internal.producer.ssl.keystore.location=/var/private/ssl/kafka.server.keystore.jks schema.history.internal.producer.ssl.keystore.password=test1234 schema.history.internal.producer.ssl.truststore.location=/var/private/ssl/kafka.server.truststore.jks schema.history.internal.producer.ssl.truststore.password=test1234 schema.history.internal.producer.ssl.key.password=test1234 schema.history.internal.consumer.security.protocol=SSL schema.history.internal.consumer.ssl.keystore.location=/var/private/ssl/kafka.server.keystore.jks schema.history.internal.consumer.ssl.keystore.password=test1234 schema.history.internal.consumer.ssl.truststore.location=/var/private/ssl/kafka.server.truststore.jks schema.history.internal.consumer.ssl.truststore.password=test1234 schema.history.internal.consumer.ssl.key.password=test1234
Debezium 在将属性传递给 Kafka 客户端之前,从属性名称中分离前缀。
如需有关 Kafka producer 配置属性和 Kafka 使用者配置属性的更多详情,请参阅 Kafka 文档。
Debezium Oracle 连接器直通数据库驱动程序配置属性
Debezium 连接器为数据库驱动程序的透传配置提供。直通数据库属性以前缀 驱动程序 开头
。例如,连接器将 driver.foobar=false
等属性传递给 JDBC URL。
与 数据库架构历史记录客户端的直通属性 一样,Debebe 会将属性中的前缀从属性分离,然后再将它们传递给数据库驱动程序。