首页 > Linux操作系统 > Linux操作系统 > STREAMS-单向复制(6)
Oracle11gr2 streams replication in a two database
(流复制-单向复制-单表复制)
10.启动与停止捕获,应用进程。
begin
dbms_capture_adm.stop_capture(
capture_name => 'STRMADMIN_CAPTURE');
end;
/
begin
dbms_capture_adm.start_capture(
capture_name => 'STRMADMIN_CAPTURE');
end;
/
begin
dbms_apply_adm.stop_apply(
apply_name => 'STRMADMIN_APPLY');
end;
/
begin
dbms_apply_adm.start_apply(
apply_name => 'STRMADMIN_APPLY');
end;
/
11.增加一个或多个表,进行同步。比如hr.jobs
首先停止捕获,应用进程
执行以下过程:
源库执行
BEGIN
DBMS_STREAMS_ADM.ADD_TABLE_RULES(
table_name => 'HR.JOBS',
streams_type => 'CAPTURE',
streams_name => 'STRMADMIN_CAPTURE',
queue_name => 'STRMADMIN.CAPTURE_QUEUE',
include_dml => true,
include_ddl => true,
source_database => 'DBMASTER.COM');
END;
/
BEGIN
DBMS_STREAMS_ADM.ADD_TABLE_PROPAGATION_RULES(
table_name => 'HR.JOBS',
streams_name => 'STRMADMIN_PROPAGATION',
source_queue_name => 'STRMADMIN.CAPTURE_QUEUE',
destination_queue_name => 'STRMADMIN.APPLY_QUEUE@DBSNAP.COM',
include_dml => true,
include_ddl => true,
source_database => 'DBMASTER.COM');
END;
/
目标库执行:
BEGIN
DBMS_STREAMS_ADM.ADD_TABLE_RULES(
table_name => 'HR.JOBS',
streams_type => 'APPLY',
streams_name => 'STRMADMIN_APPLY',
queue_name => 'STRMADMIN.APPLY_QUEUE',
include_dml => true,
include_ddl => true,
source_database => 'DBMASTER.COM');
END;
/
初始化数据:
exp hr/hr@dbmaster TABLES=jobs FILE=c:\dmp\jobs.dmp OBJECT_CONSISTENT=Y STATISTICS=NONE
imp hr/hr@dbsnap CONSTRAINTS=Y FILE=C:\dmp\jobs.dmp IGNORE=Y COMMIT=Y STREAMS_INSTANTIATION=Y FULL=Y
启动应用,捕获进程
begin
dbms_apply_adm.start_apply(
apply_name => 'STRMADMIN_APPLY');
end;
/
begin
dbms_capture_adm.start_capture(
capture_name => 'STRMADMIN_CAPTURE');
end;
/
新增表的同步,其实就把这些过程再运行一遍,只不过同步的表不同而已。其实开始就可以批量进行表的同步。也就是一张表一张表的配置,执行streams过程。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21266384/viewspace-767364/ ,如需转载,请注明出处,否则将追究法律责任。