当前位置:  数据库>Oracle 数据库开发工具 Oracle SQL Developer iis7站长之家

在Oracle 11g Streams单向传输的基础上配置Streams双向传输测试

    来源: 互联网  发布时间:2017-04-08

    本文导语: 描述:原来在两个数据库服务器直接配置了Streams的单向传输,原来的源数据库为两台集群64位HP-UNIX的Oracle11gR2数据库,原来的目标数据库为1台64位Linux的Oracle11gR2的数据库,现在上面的基础上,把1台64位Linux的Oracle11gR2的当作源数...

描述:
原来在两个数据库服务器直接配置了Streams的单向传输,
原来的源数据库为两台集群64位HP-UNIX的Oracle11gR2数据库,
原来的目标数据库为1台64位Linux的Oracle11gR2的数据库,
现在上面的基础上,把1台64位Linux的Oracle11gR2的当作源数据库,把两台集群64位HP-UNIX的Oracle11gR2数据库当作目标数据库,
安装Streams的单向传输步骤进行配置,这样就变成了两个数据库服务器之间的Steams的双向传输。




10.2.2.1:为源数据库     10.1.1.1及10.1.1.2 集群数据库为目标数据库

1、源数据库归档模式
源:
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     420
Next log sequence to archive   422
Current log sequence           422








2、在源数据库启用追加日志
启用辅助日志
SQL> alter database add supplemental log data;


Database altered.

3、需要传输testUser 用户的数据,在源数据库创建source队列

> sqlplus  strmadmin/strmadmin

SQL> BEGIN DBMS_STREAMS_ADM.SET_UP_QUEUE(
  2  queue_table=>'SOURCE_QUEUE_TABLE',
  3  queue_name=>'SOURCE_QUEUE',
  4  queue_user=>'strmadmin');
  5  END;
  6  /




PL/SQL procedure successfully completed.

或者:

SQL> EXEC DBMS_STREAMS_ADM.SET_UP_QUEUE();

PL/SQL procedure successfully completed.
该命令会创建一个队列缺省名:streams_queue,队列表缺省是:STREAMS_QUEUE_TABLE

队列存储的object类型是anaydata

移除队列:
exec dbms_streams_adm.remove_queue(
queue_name => 'streams_queue',
cascade => true,
drop_unused_queue_table => true);



可以用查询dba_queues,dba_queue_tables来检查:

SQL>  select owner,queue_table,name from dba_queues where wner='STRMADMIN';

OWNER               QUEUE_TABLE              NAME

----------------- ------------------------- ------------------

STRMADMIN          SOURCES_QUEUE_TABLE        SOURCES_QUEUE

STRMADMIN          SOURCES_QUEUE_TABLE        AQ$_SOURCES_QUEUE_TABLE_E

 

SQL>select owner,queue_table,object_type from dba_queue_tables where wner='STRMADMIN';

OWNER            QUEUE_TABLE           OBJECT_TYPE

-------------- --------------------- ------------------

STRMADMIN       SOURCES_QUEUE_TABLE     SYS.ANYDATA

4、在目标数据库创建接收队列
$ sqlplus strmadmin/strmadmin

 

SQL> BEGIN DBMS_STREAMS_ADM.SET_UP_QUEUE(
  2  queue_table=>'TARGET_QUEUE_TABLE',
  3  queue_name=>'TARGET_QUEUE',
  4  queue_user=>'strmadmin');
  5  END;
  6  /




PL/SQL procedure successfully completed.


5、在源数据库创建capture进程
CBDBS01-> sqlplusstrmadmin/strmadmin@CBOMS

SQL> BEGIN DBMS_STREAMS_ADM.ADD_SCHEMA_RULES(
  2  schema_name=>'testUser',
  3  streams_type=>'capture',
  4  streams_name=>'capture_stream',
  5  queue_name=>'strmadmin.SOURCE_QUEUE',
  6  include_dml=>true,
  7  include_ddl=>true,
  8  SOURCE_DATABASE=>'bhoms',
  9  include_tagged_lcr=>false,
 10  inclusion_rule=>true);
 11  END;
 12  /










PL/SQL procedure successfully completed.

可以通过dba_capture查看:

SQL> select CAPTURE_NAME,QUEUE_NAME,START_SCN,STATUS,CAPTURE_TYPE from dba_capture;

SQL> select * from  ALL_CAPTURE_PREPARED_SCHEMAS;

6、在源数据库继续创建传播进程
CBDBS01-> sqlplus strmadmin/strmadmin

SQL> BEGIN DBMS_STREAMS_ADM.ADD_SCHEMA_PROPAGATION_RULES(
  2  schema_name=>'testUser',
  3  streams_name=>'source_to_target',
  4  source_queue_name=>'strmadmin.SOURCE_QUEUE',
  5  destination_queue_name=>'strmadmin.TARGET_QUEUE@CBOMS',
  6  include_dml=>true,
  7  include_ddl=>true,
  8  source_database=>'bhoms',
  9  inclusion_rule=>true,
 10  queue_to_queue=>true);
 11  END;
 12  /










PL/SQL procedure successfully completed.

重新启动propagation process
 查看propagation process名称
 select * from all_propagation;

可以通过dba_propagations查看propagation是否启动

SQL> select PROPAGATION_NAME,SOURCE_QUEUE_NAME,DESTINATION_QUEUE_NAME,DESTINATION_DBLINK,STATUS from dba_propagation
如果status不是“ENABLED”,而是“DISABLED”

可以启动
SQL>exec dbms_propagation_adm.start_propagation('source_to_target');   (关闭为exec dbms_propagation_adm.stop_propagation('source_to_target');)


7、在目标数据库创建apply进程
$ sqlplus strmadmin/strmadmin

SQL> BEGIN
  2  DBMS_STREAMS_ADM.ADD_SCHEMA_RULES(
  3  schema_name=>'testUser',
  4  streams_type=>'apply',
  5  streams_name=>'target_apply_stream',
  6  queue_name=>'strmadmin.TARGET_QUEUE',
  7  include_dml=>true,
  8  include_ddl=>true,
  9  include_tagged_lcr=>false,
 10  source_database=>'bhoms',
 11  inclusion_rule=>true);
 12  END;
 13  /











PL/SQL procedure successfully completed.

可以通过:

dba_apply

v$streams_apply_reader

v$streams_apply_coordinator

v$streams_apply_server


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle简单stream一个用户单向复制配置
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3