Oracle的CDC组件有哪些
时间: 2024-05-28 09:11:18 浏览: 15
Oracle的CDC组件有以下几种:
1. Oracle Streams: Oracle Streams是Oracle数据库自带的一种数据复制和事件发布/订阅系统,可以通过Streams进行实时的数据同步和数据集成。
2. Oracle GoldenGate: Oracle GoldenGate是一个高性能、实时的数据复制和数据同步工具,可以将数据从一个Oracle数据库复制到另一个Oracle数据库,也可以将数据从Oracle数据库复制到其他数据库系统。
3. Oracle Data Integrator (ODI): ODI是一种高级ETL工具,可以将数据从一个源系统提取、转换和加载到另一个目标系统中,并支持实时数据同步和增量数据加载。
4. Oracle Change Data Capture (CDC): Oracle CDC是一种基于日志的数据捕获和变更跟踪工具,可以捕获源数据库中的变更操作并将其传输到目标系统中。
5. Oracle Database Vault: Oracle Database Vault是一种用于数据安全和访问控制的组件,可以控制数据库中的访问权限和数据访问路径,并支持实时日志记录和审计。
相关问题
oracle cdc 如何开启
Oracle CDC (Change Data Capture) 是一种可以在 Oracle 数据库中捕获数据更改的功能。若要开启 Oracle CDC,请按照以下步骤操作:
1. 确认 Oracle 数据库版本:要使用 Oracle CDC 功能,需要使用 Oracle 11g R2 或更高版本。
2. 确认数据库是否装有 Oracle CDC 组件:在 Oracle 数据库中,CDC 组件作为 Oracle 数据库的一个特性,默认情况下是被禁用的。若要检查 CDC 组件是否已经装载到 Oracle 数据库中,请在 SQL*Plus 工具中以 SYSDBA 身份连接到数据库中,并执行下面的命令:
```SQL
select comp_name, status from dba_registry where comp_id='CDC';
```
如果 CDC 组件已经安装,则会返回以下结果:
```
COMP_NAME | STATUS
---------------------------------------------------
Oracle CDC | VALID
```
3. 启用 CDC 组件:若要启用 CDC 组件,请以 SYSDBA 身份连接到数据库中,并执行以下命令:
```SQL
ALTER SYSTEM SET enable_goldengate_replication=true;
```
4. 创建 CDC 捕获进程:要启用 CDC 捕获进程,请执行以下命令:
```SQL
BEGIN
DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE(
owner => 'SCOTT',
table_name => 'EMP',
change_table_name => 'EMP_CT',
column_type_list => 'ENAME VARCHAR2(30), JOB VARCHAR2(30), SAL NUMBER(7,2)',
capture_values => 'both',
rs_id => true,
row_id => true,
user_id => true,
timestamp => true
);
END;
```
其中,owner 是表的所有者,table_name 是要捕获变化的表,change_table_name 是创建的变化表的名称,column_type_list 是要捕获的列以及它们的数据类型,capture_values 是指定要捕获的值,rs_id、row_id、user_id 和 timestamp 是指定捕获的元数据。
通过以上步骤,就可以启用 Oracle CDC 功能并创建 CDC 捕获进程了。
Oracle CDC简介及异步在线日志CDC部署示例
Oracle CDC(Change Data Capture)是一种用于捕获数据库变更的技术,它可以将数据库中的变更事件捕获并转换成易于消费的数据流。通过CDC,可以将数据库中的变更事件用于实时数据分析、数据集成、数据同步等场景。
异步在线日志CDC是一种基于Oracle数据库在线日志的CDC方式,它可以实现高性能的数据捕获和传递。异步在线日志CDC的部署可以分为以下步骤:
1. 创建CDC用户和日志表
在Oracle数据库中,需要创建一个CDC用户和一个日志表,用于存储捕获到的变更事件。可以使用以下SQL语句创建CDC用户和日志表:
```
CREATE USER cdc_user IDENTIFIED BY password;
GRANT CONNECT, RESOURCE, DBA TO cdc_user;
CREATE TABLE cdc_log (
scn NUMBER(38),
timestamp TIMESTAMP(6),
table_name VARCHAR2(30),
operation_type VARCHAR2(1),
primary_keys VARCHAR2(4000),
columns_changed VARCHAR2(4000)
);
```
2. 创建CDC组件
需要在Oracle数据库中创建CDC组件,用于启用CDC功能。可以使用以下SQL语句创建CDC组件:
```
BEGIN
DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE (
change_table_name => 'cdc_change_table',
source_schema_name => 'source_schema',
source_table_name => 'source_table',
column_type_list => 'column1 NUMBER, column2 VARCHAR2(50)',
capture_values => 'both',
rs_id => TRUE,
row_id => TRUE,
user_id => TRUE,
timestamp => TRUE
);
DBMS_CDC_SUBSCRIBE.CREATE_SUBSCRIPTION (
subscription_name => 'cdc_subscription',
source_schema => 'source_schema',
source_table => 'source_table',
column_list => 'column1, column2',
subscriber => 'cdc_user',
subscription_type => 'asynchronous',
sync_on_commit => FALSE
);
END;
```
3. 配置CDC捕获过程
需要在Oracle数据库中配置CDC捕获过程,用于将变更事件写入到日志表中。可以使用以下SQL语句配置CDC捕获过程:
```
BEGIN
DBMS_CDC_PUBLISH.ALTER_CHANGE_TABLE (
change_table_name => 'cdc_change_table',
capture_values => 'both',
rs_id => TRUE,
row_id => TRUE,
user_id => TRUE,
timestamp => TRUE
);
DBMS_CDC_SUBSCRIBE.ALTER_SUBSCRIPTION (
subscription_name => 'cdc_subscription',
column_list => 'column1, column2'
);
DBMS_CAPTURE_ASYNCH_CAPTURE.SET_PARAMETER (
parameter_name => 'ASYNC_COMMIT_TIMEOUT',
parameter_value => '30'
);
DBMS_CAPTURE_ASYNCH_CAPTURE.SET_PARAMETER (
parameter_name => 'ASYNC_COMMIT_BATCH_SIZE',
parameter_value => '1000'
);
DBMS_CAPTURE_ASYNCH_CAPTURE.START_CAPTURE (
capture_name => 'cdc_capture',
capture_user => 'cdc_user',
capture_process => 'ASYNC_CAPTURE',
capture_window_size => '3600',
queue_name => 'cdc_queue',
capture_enqueue_time => 'true',
enqueue_name => 'cdc_enqueue',
include_tagged_lcr => 'all'
);
END;
```
4. 消费CDC日志
最后,需要编写消费CDC日志的程序,将捕获到的变更事件用于实时数据分析、数据集成、数据同步等场景。可以使用Oracle GoldenGate、Kafka等工具来消费CDC日志。
需要注意的是,在使用异步在线日志CDC时,需要确保捕获过程和消费程序的性能足够高,以避免数据延迟和丢失等情况的发生。同时,还需要进行详细的测试和监控,以确保CDC系统的稳定性和可靠性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)