[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

Oracle 10g数据库R2中stream多源复制方法

作者: 林梦,  出处:赛迪网, 责任编辑: 王晓晨, 
2008-08-06 08:30
  在Oracle 10g R2中,Oracle简化了stream的配置的全过程,在9i R2及10g R1中,需要针对stream的捕获、传播、应用进程进行配置。

  在Oracle 10g R2中,Oracle简化了stream的配置的全过程,在9i R2及10g R1中,需要针对stream的捕获、传播、应用进程进行配置的步骤:

  已经被dbms_streams_adm新提供的过程(pre_instantiation_setup/post_instantiation_setup)给封装起来啦,

  配置stream只需要调用两个存储过程就可以搞定啦,真是太激动人心啦,下面简单地介绍一下dbms_streams_adm的新过程的用法。

  1.在stream进行配置前,需要做些准备工作

  a 源库与目标库初始化参数的设置 

alter system set aq_tm_processes=4 scope=spfile;
alter system set job_queue_processes=5 scope=spfile;
alter system set global_names=true scope=spfile;
alter system set streams_pool_size=51m scope=spfile;

  说明streams_pool_size在生产环境中最好>200m

  b 源库与目标库tnsnames.ora配置

  确保正确,可用tnsping通

  c 源库与目标库复制管理员的创建  

create user strmadmin identified by strmadminpw
default tablespace &tbs_name quota unlimited on &tbs_name;
grant connect, resource, dba to strmadmin;

  d 源库与目标库创建互连的数据链

connect strmadmin/strmadminpw@test96;
create database link test99.net connect to strmadmin
identified by strmadminpw using 'test99';
connect strmadmin/strmadminpw@test99;
create database link test96.net connect to strmadmin
identified by strmadminpw using 'test96';

  说明:必须确保双方的数据库链是可以连通.

  用pre_instantiation_setup/post_instantiation_setup过程时

  db link必须用db_name.domain的格式

  e 源库与目标库必须处于归档模式  

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

  2.执行pre_instantiation_setup过程

  在调用dbms_streams_adm的pre_instantiation_setup/post_instantiation_setup过程时, 它们必须成对出现,pre_instantiation_setup过程中,maintain_mode参数可取GLOBAL与 TRANSPORTABLE TABLESPACES,如果取GLOBAL时,表示全库复制,否则可以定义需要复制的表空间; perform_actions参数为TRUE,进行配置产生的源脚本将记录在dba_recoverable_*字典表, 如果pre_instantiation_setup执行时遇到错误,可以通过执行dbms_steams_adm的

  recover_operation过程 在更正错误后继续执行复制配置; source_database/destination_database是我们已经创建好的dblink,必须确保正确啊, 否则pre_instantiation_setup过程将会失败,报ORA-23621错误,解决办法在后面会介绍; bi_directional参数设置为true时,表示是多源复制,即目标与源库双向同步, 否则即只从源库向目标库同步数据; exclude_schemas参数指需要排除在全库同步的表空间,多个表空间的话用逗号分开,

  *表示排除配置stream时库中已经存在的表空间;

  start_processes参数指配置完成后启动捕获及应用进程。

SQL>connect strmadmin/strmadminpw@test96;
  declare
  empty_tbs dbms_streams_tablespace_adm.tablespace_set;
  begin
  dbms_streams_adm.pre_instantiation_setup(
  maintain_mode => 'GLOBAL',
  tablespace_names => empty_tbs,
  source_database => 'test96.net',
  destination_database => 'test99.net',
  perform_actions => true,
  bi_directional => true,
  include_ddl => true,
  start_processes => true,
  exclude_schemas => 'WMSYS,STRMADMIN,DBSNMP,TSMSYS,',
  exclude_flags => dbms_streams_adm.exclude_flags_unsupported +
  dbms_streams_adm.exclude_flags_dml + dbms_streams_adm.exclude_flags_ddl);
  end;
  /

  如果参与复制的源库与目标库的db link等配置的正确,该过程将成功结束,

  并且在strmadmin模式创建一系统用于复制的队列与字典表,如果db link配置出错,

  执行pre_instantiation_setup过程时,将会报如下错误:

ORA-23621: Operation corresponding
共2页。 1 2 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅