Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->数据库应用 ->Oracle ->正文

Oracle 数据库的集中复制方法浅议

来源:csdn开发高手  作者:Webmaster 时间:2007-04-17 点击: [收藏] [投稿]

begin 
dbms_defer_sys.register_purpagator(username=>’repadmin’); 
end;

3.调度清除作业,该作业会定时清除延迟事务队列并用传播方将延迟事务推入其他主体站点或者实体化视图站点。先更换用户:

disconnect; 
connect repadmin/repadmin@SH; 
begin 
dbms_defer_sys.schedule_purge( 
next_date=>sysdate,interval=>’sysdate + 1’,delay_seconds=>0); 
end;

next_date:下一次执行日期,sysdate表示立即。

interval:间隔时段,sysdate + 1表示间隔一天,sysdate+ 1/24表示间隔一小时

delay_seconds:当延迟队列没有延迟事件时停止被次清除操作的延迟时间。

4.为实体化视图站点建立复制代理。创建复制代理用户并授予视图接受方权限。复制代理是复制接收方连接主体站点的用户

disconnect; 
connect system/passwd@SH; 
create user proxy_bjoracle identified by proxy_bjoracle; 
begin 
dbms_repcat_admin.register_user_repgroup( 
user_name=>’proxy_bjoracle, 
privilege_type => ’proxy_snapadmin’,list_of_gnames => NULL); 
end; 
/
grant select_catalog_role to proxy_bjoracle;

5. 创建主体组。

disconnect; 
connect repadmin/repadmin@SH; 
begin 
dbms_repcat.create_master_repgroup(gname=>’sh_rep’); 
end; 
/

6. 向主体组中添加复制对象

a) 添加表:












begin 
dbms_repcat.create_master_repobject( 
gname=>’sh_rep’, 
type=>’TABLE’, 
oname=>’ CREDIT_CARD’ 
sname=>’SHORACL’ 
use_existing_object=>TRUE, 
copy_rows=>TRUE); 
end;

b) 添加索引

begin 
dbms_repcat.create_master_repobject( 
gname=>’sh_rep’, 
type=>’INDEX’, 
oname=>’ INDEX_CREDIT_CARD’ 
sname=>’SHORACL’ 
use_existing_object=>TRUE, 
copy_rows=>FALSE); 
end; 
/

7. 如果添加的表没有主键需要设置可以代替主键的列或者列的集合

begin 
dbms_repcat.set_columns( 
sname => ’SHORACL’, 
oname => ’ CREDIT_CARD ’, 
column_list => ’ CREDIT_CARD_ID’); 
end; 
/

8. 在主体组中的数据对象可以被复制之前,必须为他们生成复制支持。该方法为复制创建必要的触发器、包或者存储过程:

begin 
dbms_repcat.generate_replication_support( 
sname=>’SHORACL’, 
oname=>’ CREDIT_CARD’, 
type=>’TABLE’, 
min_communication=>TRUE); 
end; 
/

9. 为快速刷新创建实体化视图日志:



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:基础简介:深入了解Oracle的数据字典   下一篇:在Oracle中使用PL/SQL操作COM对象

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号