开云体育官方注册网址Debezium连接器用于Oracle
开云体育官方注册网址Debezium的Oracle Connector可以监视和记录Oracle服务器上数据库中的所有行级更改。开云体育电动老虎机该连接器处于开发的早期阶段,被认为是Debezium 0.8的孵化特性。开云体育官方注册网址它不是功能完整的,发出的CDC消息的结构可能会在未来的修订中更改。最值得注意的是,连接器还不支持更改捕获表的结构(例如。ALTER TABLE……
)在初始快照完成后(请参阅dbz - 718,计划在即将到来的0.9之一。x版本)。不过,它支持在连接器运行时捕获新添加的表(前提是新表的名称与连接器的筛选器配置匹配)。
概述
从Debez开云体育官方注册网址ium 0.8开始,来自Oracle的更改事件使用XStream API.为了使用这个API和连接器,您需要拥有GoldenGate产品的许可证(尽管并不要求安装GoldenGate本身)。我们将在未来的Debezium 0.9中探索使用XStream的替代方案。开云体育官方注册网址x版本,例如基于LogMiner和/或替代解决方案。请追踪dbz - 137如果您知道从Oracle获取变更事件的其他潜在方法,请加入讨论。
安装Oracle
需要执行以下步骤来准备数据库,以便可以使用Debezium连接器。开云体育官方注册网址开云体育电动老虎机这假设多租户配置(具有容器数据库和至少一个可插拔数据库);开云体育电动老虎机如果您不使用此模型,请相应地调整步骤。
你可以在目录中找到在虚拟机中设置Oracle的模板(通过Vagrant)oracle-vagrant-box /存储库。
准备数据库开云体育电动老虎机
启用GoldenGate复制和归档日志模式:
ORACLE_SID=ORCLCDB dbz_oracle sqlplus /nolog CONNECT sys/top_secret AS SYSDBA alter system set db_recovery_file_dest_size = 5G;修改system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile;Alter system set enable_goldengate_replication=true;立即关闭数据库启动;开云体育电动老虎机打开数据库开云体育电动老虎机——应该显示“数据库日志模式:存开云体育电动老虎机档模式”存档日志列表退出;
此外,为了捕获之前更改行的状态,必须为捕获的表或数据库启用补充日志记录。开云体育电动老虎机例如,对于一个特定的表:
更改表库存。客户ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
为连接器创建一个XStream管理用户和用户
在容器数据库中创建一个XStream管理用户(根据Oracle的建议来管理XStream):开云体育电动老虎机
/opt/oracle/oradata/ORCLCDB/xstream_adm_tbs. sqlplus sys/top_secret@//localhost:1521/ORCLCDB as sysdba CREATE TABLESPACE xstream_adm_tbs DATAFILE '/opt/oracle/oradata/ORCLCDB/xstream_adm_tbs. sqldbf的大小25M重用自动扩展MAXSIZE无限制;退出;
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/xstream_adm_tbs DATAFILE . sqlplus sys/top_secret@//localhost:1521/ORCLPDB1 as sysdba CREATE TABLESPACE xstream_adm_tbs DATAFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/xstream_adm_tbs. sqldbf的大小25M重用自动扩展MAXSIZE无限制;退出;
sqlplus sys/top_secret@//localhost:1521/ORCLCDB as sysdba CREATE USER c##xstrmadmin IDENTIFIED BY xsa DEFAULT TABLESPACE xstream_adm_tbs QUOTA UNLIMITED ON xstream_adm_tbs CONTAINER=ALL;授权创建会话,设置容器为c##xstrmadmin CONTAINER=ALL;DBMS_XSTREAM_AUTH开始。GRANT_ADMIN_PRIVILEGE(grantee => 'c##xstrmadmin', privilege_type => 'CAPTURE', grant_select_privileges => TRUE, container => 'ALL');结束;/退出;
创建XStream用户(Debezium连接器用于连接到XStre开云体育官方注册网址am出站服务器):
/opt/oracle/oradata/ORCLCDB/xstream_tbs. sqlplus sys/top_secret@//localhost:1521/ORCLCDB as sysdba CREATE TABLESPACE xstream_tbs DATAFILE '/opt/oracle/oradata/ORCLCDB/xstream_tbs. sqldbf的大小25M重用自动扩展MAXSIZE无限制;退出;
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/xstream_tbs DATAFILE . sqlplus sys/ top_secrets @//localhost:1521/ORCLPDB1 as sysdba CREATE TABLESPACE xstream_tbs DATAFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/xstream_tbs. sqldbf的大小25M重用自动扩展MAXSIZE无限制;退出;
sqlplus sys/top_secret@//localhost:1521/ORCLCDB as sysdba CREATE USER c##xstrm IDENTIFIED BY xs DEFAULT TABLESPACE xstream_tbs QUOTA UNLIMITED ON xstream_tbs CONTAINER=ALL;授予c##xstrm CONTAINER=ALL创建会话权限;授予c##xstrm CONTAINER=ALL;授予V_$DATABASE的SELEC开云体育电动老虎机T权限给c##xstrm CONTAINER=ALL;给c##xstrm CONTAINER=ALL回闪任意表;退出;
创建一个XStream出站服务器
sqlplus c##xstrmadmin/xsa@//localhost:1521/ORCLCDB声明表dbms_utilities . uncl_array;模式DBMS_UTILITY.UNCL_ARRAY;开始表(1):= NULL;schema (1):= 'd开云体育官方注册网址ebezium';DBMS_XSTREAM_ADM。CREATE_OUTBOUND(server_name => 'dbzxout', table_names =>表,schema_names => schema);结束;/退出;
修改XStream出站服务器以允许xstrm用户连接到它:
sqlplus sys/top_secret@//localhost:1521/ORCLCDB as sysdba BEGIN DBMS_XSTREAM_ADM. sqlALTER_OUTBOUND(server_name => 'dbzxout', connect_user => 'c##xstrm');结束;/退出;
注意,给定的出站服务器不能同时被多个连接器实例使用。如果希望设置Debezium Oracle连接器的多个实例,则每个实例都需要一个特定的XStre开云体育官方注册网址amOutbound服务器。
Oracle连接器如何工作
快照
大多数Oracle服务器都被配置为不在重做日志中保留数据库的完整历史,因此Debezium Oracle连接器将无法通过简单地读取日志来查看数据库的完整历开云体育电动老虎机史。开云体育官方注册网址因此,默认情况下(快照模式最初的)连接器将在第一次启动时执行初始化一致的快照数据库(意味着开云体育电动老虎机根据连接器的筛选器配置捕获的任何表中的结构和数据)。
每个快照由以下步骤组成:
确定要捕获的表
获得一个
独占模式
锁定每个被监视的表,以确保任何表都不会发生结构更改。读取服务器重做日志中的当前SCN(“系统更改号”)位置。
捕获所有相关表的结构。
释放在第2步中获得的锁,即锁只被持有一小段时间。
扫描所有相关的数据库表和模式,使其在步骤3中读取的开云体育电动老虎机SCN位置有效(
从scn123开始选择*
),并生成一个读
事件,并将该事件写入相应的特定于表的Kafka主题。在连接器偏移中记录快照的成功完成。
如果连接器失败,重新平衡,或者在步骤1开始后但在步骤7完成之前停止,重新启动连接器将开始一个新的快照。一旦Oracle连接器完成了它的初始快照,它将继续从第3步中的位置读取流,以确保它不会错过快照拍摄时发生的任何更新。如果连接器由于任何原因再次停止,在重新启动时,它将从之前停止的地方继续流式传输更改。
第二种快照模式为initial_schema_only.在这种情况下,上面描述的快照例程中的第6步将不会被应用。也就是说,连接器仍然会捕获相关表的结构,但它不会创建任何表读
表示连接器启动时的完整数据集的事件。如果您只对从现在开始的任何数据更改感兴趣,而不关心所有记录的完整当前状态,那么这可能很有用。
读取重做日志
在第一次启动时,连接器获取捕获的表(DDL)结构的快照,并将此信息保存在其内部数据库历史主题中。开云体育电动老虎机然后,它继续从捕获模式结构的SCN监听更改事件。处理后的scn作为偏移量传递给Kafka Connect,并定期与数据库服务器确认(允许它丢弃旧的日志文件)。开云体育电动老虎机重新启动后,连接器将从之前停止的偏移量(SCN)恢复。
架构更改主题
面向用户的模式更改主题还没有实现(请参见dbz - 753).
事件
由Oracle连接器产生的所有数据更改事件都有一个键和一个值,尽管键和值的结构依赖于产生更改事件的表(参见主题名称).
Debe开云体育官方注册网址zium Oracle连接器确保所有Kafka连接模式名是有效的Avro模式名.这意味着逻辑服务器名必须以拉丁字母或下划线开头(例如,[a-z, a-z, _]),逻辑服务器名中的其余字符以及模式和表名中的所有字符必须是拉丁字母、数字或下划线(例如,[a-z, a-z, 0-9,\_])。如果不是,则所有无效字符将自动替换为下划线字符。 当逻辑服务器名、模式名和表名包含其他字符时,这可能导致意外的冲突,并且表全名之间唯一的区分字符无效,因此被下划线取代。 |
开云体育官方注册网址Debezium和Kafka Connect就是围绕这个设计的连续的事件消息流,这些事件的结构可能会随着时间而改变。对于消费者来说,这可能很难处理,所以Kafka Connect让每个事件都是自包含的。每个消息键和值都有两部分模式而且有效载荷.模式描述有效负载的结构,而有效负载包含实际数据。
更改事件键
对于给定的表,更改事件的键将具有一个结构,该结构在创建事件时包含表的主键(或唯一键约束)中的每一列的字段。
考虑一个客户
表中定义的库存
开云体育电动老虎机数据库模式:
CREATE TABLE customers (id NUMBER(9) GENERATED BY DEFAULT ON NULL AS IDENTITY (START WITH 1001) NOT NULL PRIMARY KEY, first_name VARCHAR2(255) NOT NULL, last_name VARCHAR2(255) NOT NULL, email VARCHAR2(255) NOT NULL UNIQUE);
如果开云体育电动老虎机database.server.name
属性的值server1
,每变事件为客户
表,当它有这个定义时,将具有相同的键结构,在JSON中是这样的:
{"schema": {"type": "struct", "fields": [{"type": "int32", "optional": false, "field": "ID"}], "optional": false, "name": "server1.INVENTORY.CUSTOMERS. "Key"}, "payload": {"ID": 1004}}
的模式
密钥部分包含一个Kafka Connect模式,描述密钥部分中的内容,在我们的例子中,这意味着有效载荷
值不是可选的,是由名为server1.开云体育官方注册网址DEBEZIUM.CUSTOMERS.Key
,并且有一个名为id
类型的int32
.如果我们看一下键的值有效载荷
字段,我们将看到它确实是一个结构(在JSON中只是一个对象)id
字段,值为1004
.
因此,我们将此键解释为描述对象中的行inventory.customers
表(从命名的连接器输出server1
),其id
主键列的值为1004
.
更改事件值
与消息键一样,更改事件消息的值具有模式节和有效载荷部分。Oracle连接器产生的每个更改事件值的有效负载部分都有一个信封结构,使用以下字段:
人事处
必选字段,包含描述操作类型的字符串值。Oracle连接器的值为c
对于创建(或插入),u
对于更新,d
对于删除,和r
用于读取(在快照的情况下)。之前
是否是可选字段,如果存在则包含行状态之前事件发生了。该结构将由server1.INVENTORY.CUSTOMERS.Value
Kafka Connect模式,其中server1
对象中的所有行使用连接器inventory.customers
表格
该字段及其元素是否可用在很大程度上取决于补充日志应用于表的配置。 |
后
是否是可选字段,如果存在则包含行状态后事件发生了。结构的描述是相同的server1.INVENTORY.CUSTOMERS.Value
中使用的Kafka Connect模式之前
.源
是一个必须的字段,它包含一个描述事件源元数据的结构,在Oracle中包含这些字段:Debezium版本,连接器名称,事件是否是正在进行的快照的一部分,事务id(不是在快照时),更改的SCN,以及表示源数据库中记录更改的时间点的时间戳(在快照期间,它将是快照的时间点)。开云体育官方注册网址开云体育电动老虎机ts_ms
是可选的,如果存在,则包含连接器处理事件的时间(使用运行Kafka Connect任务的JVM中的系统时钟)。
当然,还有模式事件消息值的一部分包含描述此信封结构及其内嵌套字段的模式。
创建事件
我们来看看a创建事件值可能看起来像客户
表:
{"模式":{“类型”:“结构”、“字段”:[{“类型”:“结构”、“字段”:[{“类型”:“int32”、“可选”:假的,“场”:“ID”},{“类型”:“弦”、“可选”:假的,“场”:“FIRST_NAME”},{“类型”:“弦”、“可选”:假的,“场”:“LAST_NAME”},{“类型”:“弦”、“可选”:假的,“场”:“电子邮件”}],“可选”:真的,“名字”:“server1.DEBEZIUM.CUSTOMERS。开云体育官方注册网址值","field": "before"}, {"type": "int32", "optional": false, "field": "ID"}, {"type": "string", "optional": false, "field": "FIRST_NAME"}, {"type": "string", "optional": false, "field": "LAST_NAME"}, {"type": "string", "optional": false, "field": "EMAIL"}], "optional": true, "name": "server1. debezum . customers。开云体育官方注册网址值”、“场”:“后”},{“类型”:“结构”、“字段”:[{“类型”:“弦”、“可选”:真的,“场”:“版本”},{“类型”:“弦”、“可选”:假的,“场”:“name”},{“类型”:“int64”、“可选”:真的,“场”:“ts_ms”},{“类型”:“弦”、“可选”:真的,“场”:“txId”},{“类型”:“int64”、“可选”:真的,“场”:“scn”},{“类型”:“布尔”、“可选”:真的,“场”:“快照”}],“可选”:假的,“名字”:“io.debezium.connector.oracle.Source”、“字段”:开云体育官方注册网址"source"}, {"type": "string", "optional": false, "field": "op"}, {"type": "int64", "optional": true, "field": "ts_ms"}], "optional": false, "name": "server1. debez开云体育官方注册网址um . customers . "信封”},“有效载荷”:{“前”:空,“后”:{" ID ": 1004年,“FIRST_NAME”:“安妮”,“LAST_NAME”:“Kretchmar”、“电子邮件”:“annek@noanswer.org”},“源”:{“版本”:“0.9.0。Alpha1", "name": "server1", "ts_ms": 1520085154000, "txId": "6.28.807", "scn": 2122185, "snapshot": false}, "op": "c", "ts_ms": 1532592105975}}
如果我们看模式
事件的一部分价值的模式信封的模式源
结构(特定于Oracle连接器并在所有事件中重用),以及表特定的模式之前
而且后
字段。
的模式名称 |
如果我们看有效载荷
事件的一部分价值,我们可以看到事件中的信息,即它正在描述创建的行(sinceop = c
),以及后
字段值包含新插入行的'ID
,FIRST_NAME
,LAST_NAME
,电子邮件
列。
事件的JSON表示形式似乎比它们描述的行要大得多。这是正确的,因为JSON表示必须包含模式和有效载荷部分信息。这是可能的,甚至建议使用Avro转换器以大幅减少写入Kafka主题的实际消息的大小。 |
更新事件
的值更新这个表上的Change事件实际上会有完全相同的结果模式,其有效负载的结构相同,但将持有不同的值。这里有一个例子:
{"schema":{…},“有效载荷”:{“前”:{" ID ": 1004年,“FIRST_NAME”:“安妮”,“LAST_NAME”:“Kretchmar”、“电子邮件”:“annek@noanswer.org”},“后”:{" ID ": 1004年,“FIRST_NAME”:“安妮”,“LAST_NAME”:“Kretchmar”、“电子邮件”:“anne@example.com”},“源”:{“版本”:“0.9.0。Alpha1", "name": "server1", "ts_ms": 1520085811000, "txId": "6.9.809", "scn": 2125544, "snapshot": false}, "op": "u", "ts_ms": 1532592713485}}
当我们把这个和插入事件中,我们看到了一些不同有效载荷
部分:
的
人事处
字段值现在是u
,表示该行因更新而更改的
之前
字段现在拥有数据库提交前包含值的行状态开云体育电动老虎机的
后
字段现在已经更新了行状态,这里可以看到电子邮件
价值就是现在anne@example.com
.的
源
字段结构具有与以前相同的字段,但值不同,因为此事件来自重做日志中的不同位置。的
ts_ms
显示了Debezium处理此事件的时间戳。开云体育官方注册网址
通过观察,我们可以学到很多东西有效载荷
部分。我们可以比较之前
而且后
结构来确定由于提交而在该行中实际更改的内容。的源
结构告诉我们Oracle关于这个变化记录的信息(提供可跟踪性),但更重要的是,我们可以将这个信息与这个和其他主题中的其他事件进行比较,以了解这个事件是在之前发生的,之后发生的,还是作为其他事件的一部分发生在同一个Oracle提交中。
当一行的主键/唯一键的列更新时,行键的值也发生了变化,因此Debezium将输出开云体育官方注册网址三个事件: |
删除事件
到目前为止,我们已经看到了样本创建而且更新事件。现在,我们来看看a的值删除事件。再一次,模式
的部分值将与创建而且更新事件:
{"schema":{…},“有效载荷”:{“前”:{" ID ": 1004年,“FIRST_NAME”:“安妮”,“LAST_NAME”:“Kretchmar”、“电子邮件”:“anne@example.com”},“后”:空,“源”:{“版本”:“0.9.0。Alpha1", "name": "server1", "ts_ms": 1520085153000, "txId": "6.28.807", "scn": 2122184, "snapshot": false}, "op": "d", "ts_ms": 1532592105960}}
如果我们看有效载荷
部分,我们看到了一些不同的比较创建或更新事件的有效载荷:
的
人事处
字段值现在是d
,表示该行已被删除的
之前
字段现在拥有在数据库提交时删除的行状态。开云体育电动老虎机的
后
字段为空,表示该行不再存在的
源
字段结构具有许多与以前相同的值,除了ts_ms
,视交叉上核
而且txId
领域发生了变化的
ts_ms
显示了Debezium处理此事件的时间戳。开云体育官方注册网址
此事件向使用者提供了用于处理删除该行的各种信息。
Oracle连接器的事件设计用于处理Kafka对数压缩,只要每个键至少保留最近的消息,就可以删除一些旧消息。这允许Kafka回收存储空间,同时确保主题包含一个完整的数据集,并可用于重新加载基于键的状态。
删除一行时,删除上面列出的event值仍然适用于日志压缩,因为Kafka仍然可以删除所有使用相同键的早期消息。但仅当消息值为时零
卡夫卡会知道它可以移除吗所有消息用同样的钥匙。为了实现这一点,Debezium的Oracle开云体育官方注册网址连接器总是遵循删除特别活动墓碑上具有相同but键的事件零
价值。
数据类型
如上所述,Debezium Oracle连接器用开云体育官方注册网址事件表示行更改,事件的结构类似于行所在的表。事件包含每个列值的字段,该值在事件中如何表示取决于列的Oracle数据类型。本节描述从Oracle数据类型到a的映射文字类型而且语义类型在事件字段中。
在这里,文字类型描述了如何使用Kafka Connect模式类型逐字表示值,即INT8
,INT16
,INT32
,INT64
,FLOAT32
,FLOAT64
,布尔
,字符串
,字节
,数组
,地图
,结构体
.
的语义类型描述了Kafka Connect模式如何捕获意义该字段使用Kafka Connect模式的名称。
对更多数据类型的支持将在后续版本中添加。请提交JIRA问题对于你遗漏的任何特定类型。
字符值
Oracle数据类型 | 文字类型(模式类型) | 语义类型(模式名) | 笔记 |
---|---|---|---|
|
|
N/A |
|
|
|
N/A |
|
|
|
N/A |
|
|
|
N/A |
|
|
|
N/A |
数值
Oracle数据类型 | 文字类型(模式类型) | 语义类型(模式名) | 笔记 |
---|---|---|---|
|
|
io.开云体育官方注册网址debezium.data.VariableScaleDecimal |
包含两个字段的结构: |
|
|
|
|
|
|
N/A |
|
|
|
|
|
|
|
|
|
|
|
|
处理等效于 |
|
|
|
处理等效于 |
|
|
N/A |
|
|
|
N/A |
|
|
|
io.开云体育官方注册网址debezium.data.VariableScaleDecimal |
包含两个字段的结构: |
|
|
io.开云体育官方注册网址debezium.data.VariableScaleDecimal |
包含两个字段的结构: |
|
|
io.开云体育官方注册网址debezium.data.VariableScaleDecimal |
包含两个字段的结构: |
时间值
Oracle数据类型 | 文字类型(模式类型) | 语义类型(模式名) | 笔记 |
---|---|---|---|
|
|
|
表示过去纪元的毫秒数,不包括时区信息。 |
|
|
|
表示过去纪元的毫秒数,不包括时区信息。 |
|
|
|
表示经过epoch的微秒数,不包括时区信息。 |
|
|
|
表示过去纪元的纳秒数,不包括时区信息。 |
|
|
|
带有时区信息的时间戳的字符串表示形式 |
|
|
|
属性的时间间隔的微秒数 |
部署连接器
由于许可要求,Debezium Oracle连接器不附带Oracle 开云体育官方注册网址JDBC驱动程序和XStream API JAR。你可以下载Oracle即时客户端.
将存档提取到一个目录中,例如/ / instant_client / /路径。复制文件_ojdbc8.jar而且xstreams.jar从即时客户端到卡夫卡的填词目录中。创建环境变量LD_LIBRARY_PATH
,指向即时客户端目录:
LD_LIBRARY_PATH = /道路/ / instant_client /
示例配置
下面是一个注册Debezium Oracle连接器实例的JSON请求示例:开云体育官方注册网址
{"name": "inventory-connector", "config": {"connector.class": "io.deb开云体育官方注册网址ezium.connector.oracle.OracleConnector", "tasks. debezium.connector.oracle. oracleconnector ", "Max ": "1", "开云体育电动老虎机database.server.name": "server1", "database. name"。Hostname ": "", "开云体育电动老虎机数据库。端口":"1521","数据库。开云体育电动老虎机user" : "c##xstrm", "database.password" : "xsa", "database.dbname" : "ORCLCDB", "database.pdb.name" : "ORCLPDB1", "database.out.server.name" : "dbzxout", "database.history.kafka.bootstrap.servers" : "kafka:9092", "database.history.kafka.topic": "schema-changes.inventory" } }
监控
Kafka, Zookeeper和Kafka Connect都有内置支持用于JMX度量。Oracle连接器还发布了许多关于连接器活动的度量,这些活动可以通过JMX进行监视。连接器有两种类型的指标。快照度量可以帮助您监视快照活动,并且在连接器执行快照时可用。流度量帮助您在连接器读取XStream事件时监视进度和活动。
快照指标
MBean: 开云体育官方注册网址debezium.oracle: type = connector-metrics上下文=快照,server =<开云体育电动老虎机 database.server.name >
属性名称 | 类型 | 描述 |
---|---|---|
|
|
连接器读取的最后一个快照事件。 |
|
|
自连接器读取并处理最近事件以来的毫秒数。 |
|
|
自上次启动或重置以来,此连接器已看到的事件总数。 |
|
|
连接器上已配置白名单或黑名单过滤规则过滤的事件个数。 |
|
|
连接器监视的表的列表。 |
|
|
用于在快照和主Kafka Connect循环之间传递事件的队列长度。 |
|
|
用于在快照和主Kafka Connect循环之间传递事件的队列的空闲容量。 |
|
|
快照中包含的表的总数。 |
|
|
快照尚未复制的表数。 |
|
|
快照是否启动。 |
|
|
快照是否中止。 |
|
|
快照是否完成。 |
|
|
快照到目前为止所花费的总秒数,即使没有完成。 |
|
|
映射,其中包含为快照中的每个表扫描的行数。在处理期间将表增量地添加到Map中。每扫描10,000行并在完成一个表时更新一次。 |
流指标
MBean: 开云体育官方注册网址debezium.oracle: type = connector-metrics、上下文=流媒体服务器=<开云体育电动老虎机 database.server.name >
属性名称 | 类型 | 描述 |
---|---|---|
|
|
连接器读取的最后一个流事件。 |
|
|
自连接器读取并处理最近事件以来的毫秒数。 |
|
|
自上次启动或重置以来,此连接器已看到的事件总数。 |
|
|
连接器上已配置白名单或黑名单过滤规则过滤的事件个数。 |
|
|
连接器监视的表的列表。 |
|
|
用于在streamer和主Kafka Connect循环之间传递事件的队列长度。 |
|
|
用于在streamer和主Kafka Connect循环之间传递事件的队列的空闲容量。 |
|
|
标志,该标志表示连接器当前是否连接到数据库服务器。开云体育电动老虎机 |
|
|
从最后一个更改事件的时间戳到连接器处理它之间的毫秒数。这些值将包含运行数据库服务器和Debezium连接器的机器上的时钟之间的任何差异。开云体育官方注册网址开云体育电动老虎机 |
|
|
提交的已处理事务的数量。 |
|
|
上次接收事件的坐标。 |
|
|
最后处理的事务的事务标识符。 |
架构历史指标
MBean: 开云体育官方注册网址debezium.mysql: type = connector-metrics、上下文= schema-history, server =<开云体育电动老虎机 database.server.name >
属性名称 | 类型 | 描述 |
---|---|---|
|
|
之一 |
|
|
恢复开始的时间(以epoch秒为单位)。 |
|
|
在恢复阶段读取的更改数。 |
|
|
在恢复和运行时期间应用的模式更改总数。 |
|
|
自上次更改从历史存储区恢复以来所经过的毫秒数。 |
|
|
自应用最后一次更改以来所经过的毫秒数。 |
|
|
从历史存储中恢复的最后一次更改的字符串表示形式。 |
|
|
最后应用的更改的字符串表示形式。 |
连接器属性
以下配置属性为要求除非有默认值可用。
财产 | 默认的 | 描述 |
---|---|---|
|
连接器的唯一名称。尝试使用相同的名称再次注册将失败。(所有Kafka Connect连接器都需要这个属性。) |
|
|
连接器的Java类的名称。始终使用值 |
|
|
|
应该为此连接器创建的最大任务数。Oracle连接器总是使用单个任务,因此不使用这个值,所以默认值总是可以接受的。 |
|
Oracle数据库服务器的IP地址或主机名。开云体育电动老虎机 |
|
|
Oracle数据库服务器的整数端口号。开云体育电动老虎机 |
|
|
连接Oracle数据库服务器时使用的用户名。开云体育电动老虎机 |
|
|
连接Oracle数据库时使用的密码。开云体育电动老虎机 |
|
|
要连接的数据库的名称。开云体育电动老虎机当使用CDB + PDB模型时,必须是CDB名称。 |
|
|
使用CDB + PDB模型时要连接的PDB的名称。 |
|
|
数据库中配置的XStream出站服务器的名称。开云体育电动老虎机 |
|
|
逻辑名称,用于标识并提供被监视的特定Oracle数据库服务器的名称空间。开云体育电动老虎机逻辑名在所有其他连接器中应该是唯一的,因为它被用作从该连接器发出的所有Kafka主题名的前缀。 |
|
|
Kafka主题的全称,连接器将在其中存储数据库模式历史。开云体育电动老虎机 |
|
|
一个主机/端口对列表,连接器将使用它建立到Kafka集群的初始连接。此连接将用于检索以前由连接器存储的数据库模式历史,并用于写入从源数据库读取的每个DDL语开云体育电动老虎机句。这应该指向Kafka Connect进程使用的相同的Kafka集群。 |
|
|
最初的 |
一种对所捕获表的结构和可选数据进行初始快照的模式。支持的值为最初的(将捕获表的结构和数据的快照;如果主题应该用捕获表中的数据的完整表示来填充,则很有用)和initial_schema_only(只对捕获的表的结构进行快照;有用的是,从现在开始发生的变化应该传播到主题)。快照完成后,连接器将继续从数据库的重做日志中读取更改事件。开云体育电动老虎机 |
|
空字符串 |
一个可选的逗号分隔的正则表达式列表,它匹配要监控的表的完全限定表标识符;任何不在白名单中的表都将被排除在监控之外。每个标识符都是这样的开云体育电动老虎机数据库名.的表.默认情况下,连接器将监视每个被监视数据库中的每个非系统表。开云体育电动老虎机不得与 |
|
空字符串 |
一个可选的逗号分隔的正则表达式列表,它与要排除在监视之外的表的完全限定表标识符匹配;任何不在黑名单中的表都将被监控。每个标识符都是这样的开云体育电动老虎机数据库名.的表.不得与 |
|
|
正整数值,指定阻塞队列的最大大小,从数据库日志中读取的更改事件在写入Kafka之前被放置在其中。开云体育电动老虎机例如,当写入Kafka较慢或Kafka不可用时,该队列可以为binlog阅读器提供反压力。出现在队列中的事件不包括在此连接器定期记录的偏移量中。属性中指定的最大批处理大小,默认值为8192 |
|
|
正整数值,指定在此连接器的每次迭代期间应处理的每批事件的最大大小。默认为2048年。 |
|
|
正整数值,指定连接器在每次迭代期间等待新更改事件出现的毫秒数。缺省值为1000毫秒,即1秒。 |
|
|
控制是否在删除事件之后生成墓碑事件。 |
|
空字符串 |
与完全限定的表和列匹配以映射主键的正则表达式的分号列表。 |
|
N/A |
一个以逗号分隔的可选正则表达式列表,它与列的完全限定名称相匹配,这些列的原始类型和长度应该作为参数添加到发出的更改消息中的相应字段模式中。模式参数 |
|
|
控制心跳消息的发送频率。 |
|
|
控制要向其发送心跳消息的主题的命名。 |
|
连接器启动后在快照之前应该等待的间隔(以毫秒为单位); |
|
|
|
指定在进行快照时应一次性从每个表读取的最大行数。连接器将以这个大小的多个批次读取表内容。默认为2000。 |
|
|
是否对字段名进行消毒以符合Avro命名要求。看到Avro命名欲知详情。 |