ITPub博客

首页 > Linux操作系统 > Linux操作系统 > stream配置之双向schema级别复制(二)

stream配置之双向schema级别复制(二)

原创 Linux操作系统 作者:atlantisholic 时间:2011-06-13 22:43:13 0 删除 编辑

一.       在源库和目标库分别建立对应的用户和表空间

使用表级别复制时,需要事先在源库和目标库建立相应的表空间和相应的用户,否则stream配置将无法初始化。

1.在源库和目标库创建用于复制的表空间

CREATE  TABLESPACE  infogrid  DATAFILE  'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORAC01\INFOGRID.DBF'  SIZE  25REUSE  AUTOEXTEND  ON  MAXSIZE  UNLIMITED;

2.在源库和目标库创建用于复制的用户

create  user  infogrid  identified  by  infogrid  default  tablespace  infogrid;

3. 在源库创建用于测试复制用的表

test1test2test3test4…

在表中插入测试数据。

 

二.       在源库和目标库初始化用于stream复制的环境

1. 设置初始化参数

--COMPATIBLE 大于等于 10.2.0,目标库的值必须大于等于源库的值

--GLOBAL_NAMES 两边设置为:true,db_link的名字必须和链接库的global_name相同

--JOB_QUEUE_PROCESSES 大于等于 2,以支持消息传播队列

--AQ_TM_PROCESSES 大于等于 2,在有队列的streams数据库上需要配置队列进程

--STREAMS_POOL_SIZE 设置足够大小

--LOG_ARCHIVE_CONFIG 在使用downstream的时候需要配置DB_UNIQUE_NAME

--LOG_ARCHIVE_DEST_n 在使用 downstream时,至少需要针对downstream目标设置一个路径

--LOG_ARCHIVE_DEST_STATE_n 使用downstream时,需要将对应的归档路径设置为可用

--OPEN_LINKS 使用stream时,必须将这个值大于等于4

--PARALLEL_MAX_SERVERS 设置一个适合的值

--PROCESSES 保证进程够用

--SESSIONS 回话数保证够用

--SGA_MAX_SIZE 设置足够大小

--SGA_TARGET 设置足够大小

--SHARED_POOL_SIZE 设置足够大小

--TIMED_STATISTICS 设置为:true

--UNDO_RETENTION 设置为最小3600,确保不出现"snapshot too old"

 

2. 为确保 stream复制的准确性,增加辅助日志信息

Alter database add supplemental log data(primary key,unique)columns;

 

3. 分别在源库和目标库创建database link,用于源库和目标库的信息交互;

CREATE  DATABASE  LINK  orac02.com  CONNECT  TO  strmadmin  IDENTIFIED  BY  infogrid  USING  'orac02';

CREATE  DATABASE  LINK  orac01.com  CONNECT  TO  strmadmin  IDENTIFIED  BY  infogrid  USING  'orac01';

 

三.       在源库执行初始化streams复制的脚本(本地捕获)

BEGIN
  DBMS_STREAMS_ADM.MAINTAIN_SCHEMAS(
    schema_names                 =>
'infogrid',
    source_directory_object      => NULL,
    destination_directory_object => NULL,
    source_database              =>
'orac01.com',
    destination_database         => 'orac02.com',
    perform_actions              => true,
   
--script_name                  => 'configure_rep.sql',
   
--script_directory_object      => 'SCRIPT_DIRECTORY',
    bi_directional               => true,

--当为true时为双向,false则为单向
    include_ddl                  => true,
    instantiation                => DBMS_STREAMS_ADM.INSTANTIATION_SCHEMA_NETWORK);
END;
/

 

四.       测试streams复制的有效性

1.   查看 streams相关进程的运行情况

select * from dba_capture;
select * from dba_propagation;
select * from dba_apply;

2.   测试streams配置是否在起作用

在源库的测试表中插入一些数据,并在目标库中查询,看是否也被同步到对应的目标库的数据库表中。

五.       删除streams的配置

1.  停止并删除streams相关进程。

begin
dbms_capture_adm.stop_capture(capture_name =>
'capture_name');
dbms_capture_adm.drop_capture(capture_name =>
'capture_name');
dbms_propagation_adm.stop_propagation(propagation_name =>
'propagation_name');
dbms_propagation_adm.drop_propagation(propagation_name =>
'propagation_name');
dbms_apply_adm.stop_apply(apply_name =>
'apply_name');
dbms_apply_adm.drop_apply(apply_name =>
'apply_name');
end;

 

2.  移除streams的整个配置

begin
dbms_streams_adm.remove_streams_configuration;
end;

 

3.  删除streams配置脚本相关数据

--查找相关失败的数据

select * from dba_recoverable_script_errors
--
清楚或回滚这些数据

begin
dbms_streams_adm.recover_operation(script_id =>
'FCC27F88BDDD4EA59645D08B43C34DC6',operation_mode => 'PURGE');
end;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23071790/viewspace-697834/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-08-30

  • 博文量
    130
  • 访问量
    632723