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