oracle cdc全部配置
Oracle CDC(Change Data Capture)是一种用于捕获数据库变化的技术,可以将数据库中的变化事件记录下来,以便后续进行数据同步、数据仓库、实时数据分析等操作。以下是Oracle CDC的全部配置步骤:
-
创建一个源数据库用户,并为该用户授予适当的权限。
-
确保源数据库的日志模式为归档日志模式。
-
创建一个CDC表空间,用于存储CDC相关的数据。
-
创建CDC管理员用户,并为该用户授予适当的权限。
-
创建CDC管理员用户的工作目录,并为该目录授予适当的权限。
-
在源数据库中创建CDC组件。
-
使用CDC管理员用户登录到源数据库。
-
创建一个CDC组件:
BEGIN DBMS_CDC_PUBLISH.CREATE_CHANGE_SET(change_set_name => 'CDC_CHANGE_SET'); END; / -
创建一个CDC表:
BEGIN DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE( change_table_name => 'CDC_CHANGE_TABLE', change_set_name => 'CDC_CHANGE_SET', source_schema => 'SOURCE_SCHEMA', source_table => 'SOURCE_TABLE', column_type_list => 'COLUMN1 NUMBER, COLUMN2 VARCHAR2(100)', capture_values => 'Y', rs_id => 'Y', row_id => 'Y', user_id => 'Y', timestamp => 'Y' ); END; / -
启用CDC表:
BEGIN DBMS_CDC_PUBLISH.ALTER_CHANGE_TABLE( change_table_name => 'CDC_CHANGE_TABLE', change_set_name => 'CDC_CHANGE_SET', capture_values => 'Y', rs_id => 'Y', row_id => 'Y', user_id => 'Y', timestamp => 'Y', operation => 'A', enable_capture => DBMS_CDC_PUBLISH.CAPTURE_ALWAYS ); END; / -
配置CDC表的捕获过滤器(可选):
BEGIN DBMS_CDC_PUBLISH.ALTER_CHANGE_TABLE( change_table_name => 'CDC_CHANGE_TABLE', change_set_name => 'CDC_CHANGE_SET', capture_values => 'Y', rs_id => 'Y', row_id => 'Y', user_id => 'Y', timestamp => 'Y', operation => 'A', enable_capture => DBMS_CDC_PUBLISH.CAPTURE_ALWAYS, filter_condition => 'COLUMN1 > 100' ); END; /
-
-
启用CDC组件:
BEGIN DBMS_CDC_PUBLISH.ALTER_CHANGE_SET( change_set_name => 'CDC_CHANGE_SET', start_scn => NULL, end_scn => NULL, window_size => DBMS_CDC_PUBLISH.WINDOW_SIZE_DEFAULT, capture_message => TRUE ); END; / -
配置CDC管理员用户的捕获过滤器(可选):
BEGIN DBMS_CDC_SUBSCRIBE.SET_SUBSCRIBER_FILTER( subscriber_name => 'CDC_SUBSCRIBER', subscriber_view => 'CDC_SUBSCRIBER_VIEW', filter_condition => 'COLUMN1 > 100' ); END; / -
在目标数据库中创建CDC订阅者。
-
使用CDC管理员用户登录到目标数据库。
-
创建一个CDC订阅者:
BEGIN DBMS_CDC_SUBSCRIBE.CREATE_SUBSCRIBER( subscriber_name => 'CDC_SUBSCRIBER', subscriber_directory => 'CDC_SUBSCRIBER_DIR', source_database => 'SOURCE_DATABASE', source_schema => 'SOURCE_SCHEMA', source_table => 'SOURCE_TABLE', column_type_list => 'COLUMN1 NUMBER, COLUMN2 VARCHAR2(100)' ); END; / -
启用CDC订阅者:
BEGIN DBMS_CDC_SUBSCRIBE.ALTER_SUBSCRIBER( subscriber_name => 'CDC_SUBSCRIBER', subscriber_directory => 'CDC_SUBSCRIBER_DIR', source_database => 'SOURCE_DATABASE', source_schema => 'SOURCE_SCHEMA', source_table => 'SOURCE_TABLE', column_type_list => 'COLUMN1 NUMBER, COLUMN2 VARCHAR2(100)', operation => 'A', enable_subscription => TRUE ); END; /
-
-
启动CDC捕获进程。
-
使用CDC管理员用户登录到源数据库。
-
启动CDC捕获进程:
BEGIN DBMS_CDC_PUBLISH.START_CHANGE_CAPTURE( change_set_name => 'CDC_CHANGE_SET', capture_name => 'CDC_CAPTURE', window_size => DBMS_CDC_PUBLISH.WINDOW_SIZE_DEFAULT, capture_timeout => NULL, num_captures => NULL ); END; /
-
-
启动CDC应用进程。
-
使用CDC管理员用户登录到目标数据库。
-
启动CDC应用进程:
BEGIN DBMS_CDC_SUBSCRIBE.START_SUBSCRIPTION( subscriber_name => 'CDC_SUBSCRIBER', capture_name => 'CDC_CAPTURE', window_size => DBMS_CDC_SUBSCRIBE.WINDOW_SIZE_DEFAULT, subscription_timeout => NULL, num_subscriptions => NULL ); END; /
-
完成以上步骤后,Oracle CDC将会捕获源数据库中的变化,并将其同步到目标数据库中。您可以根据实际需求进行进一步的配置和调整
原文地址: http://www.cveoy.top/t/topic/h1zv 著作权归作者所有。请勿转载和采集!