oracle 高级复制同步表数据(三)

2014-11-24 09:18:53 · 作者: · 浏览: 6
_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);
########################################