list123342 发表于 2018-9-22 09:48:07

oracle 高级复制同步表数据

至此,这个复制过程实施完毕。可以进行相关的数据操作进行测试  开始测试:
  用wcms登陆机器A数据库
  插入表test中数据
  SQL> insert into test values(4,'aaaaaaaa');
  察看结果
  SQL> select * from test;

  >  ---------- --------------------
  4 aaaaaaaa
  用wcms登陆机器B数据库
  察看表test中数据,因为我以上只对表test作了数据同步工作
  SQL> select * from test;

  >  ---------- --------------------
  4 aaaaaaaa
  如果没有看到同步的数据,那就多等会,再看。
  由于以上只同步一张表,在现有组中再次插入同步的表,
  以wcms 登陆数据库,在机器A中创建表
  SQL> create table aa(id number,name varchar2(20),constraint aa_id_pk primary key(id));
  接着插入数据
  SQL> insert into aa values(1,'abc');
  以repadmin登陆数据库
  接下来添加新表然后执行同步操作
  SQL> execute dbms_repcat.suspend_master_activity('rep_anymusic');
  取消抑制。停止主体组
  SQL> execute dbms_repcat.create_master_repobject(sname=>'wcms',oname=>'aa',type=>'TABLE',use_existing_object=>true,gname=>'REP_anymusic',copy_rows=>true);
  为组增加新表。
  SQL>execute dbms_repcat.generate_replication_support('wcms','aa','TABLE')
  增加支持。
  SQL>execute dbms_repcat.resume_master_activity('REP_anymusic',true);
  启动进程
  用wcms帐户登陆机器B,
  SQL> select * from aa;

  >  ---------- --------------------
  1 abc
  登陆机器A
  创建复制数据库的时间表,作用是将俩个数据库添加到主体组的表同步,包括,添加,删除,创建 新表及表中数据。以上作用说明我是个人认为。如果你清楚以下push任务具体作用,请告诉我。。http://blog.51cto.com/editor/icons/etc_14.gif
  添加PUSH任务
  SQL> begin
  2 dbms_defer_sys.schedule_push(
  3 destination=>'SALSE.ANYMUSIC.COM',
  4 interval=>'sysdate + 10/1440', 一天每10分钟运行一次
  5 next_date=>sysdate, 下一次运行时间为当前时间
  6 delay_seconds=>50, 延迟秒数50
  7 parallelism=>1);
  8 end;
  9 /
  如果出现以下类似错误,那就注意仔细看看语法是否正确,我出现这个错误是,第3行,第4行 没有加单引号出的错。哈哈
  ERROR at line 3:
  ORA-06550: line 3, column 16:

  PLS-00201:>  ORA-06550: line 2, column 1:
  PL/SQL: Statement ignored

页: [1]
查看完整版本: oracle 高级复制同步表数据