【ORACLE基础二】oracle中跨服务器同步表数据(五)

2014-11-24 16:16:11 · 作者: · 浏览: 2
.schedule_push(
3 destination=>'master.anymusic.com',
4 interval=>'sysdate + 10/1440',
5 next_date=>sysdate,
6 delay_seconds=>50, 延迟秒数50
7 parallelism=>1);
8 end;
9 /
SQL> begin
2 dbms_defer_sys.schedule_purge (
3 next_date => sysdate,
4 interval => 'sysdate + 10/1440',
5 delay_seconds => 0);
### 6 rollback_segment =>0);
7 end;
8 /
SQL> select job,what from user_jobs;
JOB WHAT
--------------------------------------------------------------------------------
21 dbms_repcat.do_deferred_repcat_admin('"REP_ANYMUSIC"', FALSE);
41 declare rc binary_integer; begin rc := sys.dbms_defer_sys.push(destination=>'MASTER.ANYMUSIC.COM'); end;
42 declare rc binary_integer; begin rc := sys.dbms_defer_sys.purge( delay_seconds=>0, rollback_segment=>'0'); end;
OK!!!!至此完成同步复制操作,以下是一些实用命令,呵呵呵。。如果以上有哪里不对,请给于指明。。。。。。。
#######################################
用select * from dba_repgroup;检查站点状态 状态为NORMAL时表示该站点正常。
相关视图
" DBA_REPSITES ----复制站点情况
" DBA_REPGROUP -----复制组情况
" DBA_REPOBJECT ----复制对象情况
" DBA_REPCATLOG ---同步情况日志
######################################
如果想删除其中的一个同步表,如下执行;
SQL> execute dbms_repcat.suspend_master_activity('rep_anymusic'); 停止主体组
SQL> EXECUTE Dbms_Repcat.Drop_Master_Repobject('wcms','test','table'); 删除同步表
SQL> EXECUTE Dbms_Repcat.Remove_Master_Databases('rep_anymusic', 'master.anymusic.com');删除主站点上面的组
SQL> execute dbms_repcat.resume_master_activity('REP_anymusic',true); 启动复制组
######################################
删除私有数据链路
用repadmin 登陆数据库
EXECUTE Dbms_Repcat.Drop_Master_Repgroup('主体组名');删除主体组
DROP DATABASE LINK master.anymusic.com; 删除db link名
删除jobs
select job,what from user_jobs; 查询job numbers
EXECUTE Dbms_Job.Remove(2); 括号内填写刚查询到的job numbers
######################################
删除REPADMIN用户,注意:必须先删除站点下隶属于该repadmin用户的jobs和组mygrp 才能删除用户
用sys登陆
EXECUTE Dbms_Defer_Sys.Unregister_Propagator(username=>'REPADMIN');
EXECUTE Dbms_Repcat_Admin.Revoke_Admin_Any_Schema(username=>'REPADMIN');
DROP USER repadmin CASCADE;
######################################
--删除公用的数据链路
用sys登陆
DROP PUBLIC DATABASE LINK master.anymusic.com;
######################################
备注:每次运行完repcat 包以后都应该执行一次commit,因为某些rep 的存储过程是不会
自动commit 的,同时这也是一个troubleshooting,一般的rep 脚本都会较快的返回结果,
如果一条命令之后长时间没有结果返回,那么很可能是上面的命令没有commit,取消掉当
前的命令,然后作一次commit,再重新执行,一般都能够解决问题。
#######################################
强制删除复制组
Sql>Truncate table system.def$_aqcall;
Sql>Exec dbms_repcat.drop_master_repgroup(gname=>'mygrp',all_sites=>true);
########################################