利用oracle高级复制功能实现数据同步的问题

转载 2006年06月24日 13:16:00

/* 从DPS到EMIS,表dpsuser.gg_web_info_m */
/* 首先确保在EMIS数据库中已经建立了dpsuser和相应的表空间dpsdata */
/* 第一步,配置主体端 */
connect system/manager@dps
grant connect,dba,resource to dpsuser;

/* 创建复制管理员repadmin */
create user repadmin identified by repadmin;
alter user repadmin default tablespace users;
alter user repadmin temporary tablespace temp;
grant connect,resource to repadmin;

/* 授予repadmin用户权限可以管理当前站点中任何主体组 */
execute dbms_repcat_admin.grant_admin_any_schema('repadmin');

/* 授予repadmin用户权限可以为任何表创建snapshot logs */
grant comment any table to repadmin;
grant lock any table to repadmin;

/* 指定repadmin用户为propagator,并授予执行任何procedure的权限 */
execute dbms_defer_sys.register_propagator('repadmin');
grant execute any procedure to repadmin;

/* 分配proxy snapshot administration权限给repadmin,list_of_gnames为null,意味着可以管理所有对象组 */
begin
dbms_repcat_admin.register_user_repgroup(
username => 'repadmin',
privilege_type => 'proxy_snapadmin',
list_of_gnames => null);
end;
/

/* 分配'receiver'权限给repadmin */
begin
dbms_repcat_admin.register_user_repgroup(
username => 'repadmin',
privilege_type => 'receiver',
list_of_gnames => null);
end;
/
grant select any table to repadmin;

/* 以repadmin身份登录 */
connect repadmin/repadmin@DPS
/* 在DPS上建立主体组,主体组名为REP_DPS,并往主体组中加入一个表 */
/* 建立主体组 */
begin
dbms_repcat.create_master_repgroup(
gname => 'rep_dps',
qualifier => '',
group_comment => '');
end;
/
/* 向主体组中加入表gg_web_info_m */
begin
dbms_repcat.create_master_repobject(
gname => 'rep_dps',
type => 'table',
oname => 'gg_web_info_m',
sname => 'dpsuser',
copy_rows => true,
use_existing_object => true);
end;
/

/* 建立相应的快照日志 */
create snapshot log
on dpsuser.gg_web_info_m
tablespace system
with primary key
excluding new values;

/* 生成复制支持 */
begin
dbms_repcat.generate_replication_support(
sname => 'dpsuser',
oname => 'gg_web_info_m',
type => 'table',
min_communication => true,
generate_80_compatible => false);
end;
/

/* 第二步,配置快照端 */
connect system/manager@emis

/* 修改用户权限 */
grant connect,dba,resource to dpsuser;

/* 创建复制管理员repadmin */
create user repadmin identified by repadmin;
alter user repadmin default tablespace users;
alter user repadmin temporary tablespace temp;
grant connect,resource to repadmin;

/* 授予repadmin用户权限可以管理当前站点中任何主体组 */
execute dbms_repcat_admin.grant_admin_any_schema('repadmin');

/* 授予repadmin用户权限可以为任何表创建snapshot logs */
grant comment any table to repadmin;
grant lock any table to repadmin;

/* 指定repadmin用户为propagator,并授予执行任何procedure的权限 */
execute dbms_defer_sys.register_propagator('repadmin');
grant execute any procedure to repadmin;

/* 授予repadmin用户可以创建快照 */
grant create any snapshot to repadmin;
grant alter any snapshot to repadmin;

/*在EMIS服务器上添加到DPS的连接,可以通过修改tnsnames.ora实现 */

/* 在EMIS建立与DPS的数据库链接 */
create public database link dps connect to repadmin identified by repadmin using 'dps';

/* 在EMIS建立刷新组ref_dps */
begin
dbms_refresh.make(
name => 'dpsuser.ref_dps',
list => '',
next_date => sysdate,
interval => '/*1:Secs*/ sysdate + 1/(60*60*24)',
implicit_destroy => false,
lax => false,
job => 0,
rollback_seg => null,
push_deferred_rpc => true,
refresh_after_errors => true,
purge_option => null,
parallelism => null,
heap_size => null);
end;
/


/* 在EMIS建立快照组 同步为synchronous,异步为asynchronous*/
begin
dbms_repcat.create_snapshot_repgroup(
gname => 'rep_dps',
master => 'dps',
propagation_mode => 'asynchronous');
end;
/

/*建立快照,快照要在表所属的用户下建立,所以要先用dpsuser登陆 */
connect dpsuser/dps@emis

/* 建立gg_web_info_m的快照 */
create snapshot dpsuser.gg_web_info_m
build immediate
refresh force
next sysdate + 1/86400
for update
as
select * from dpsuser.gg_web_info_m@dps;

/* 将快照加入刷新组 */
begin
dbms_refresh.add(
name => 'dpsuser.ref_dps',
list => 'dpsuser.gg_web_info_m',
lax => true);
end;
/

/* 将快照加入快照组 */
begin
dbms_repcat.create_snapshot_repobject(
gname => 'rep_dps',
sname => 'dpsuser',
oname => 'gg_web_info_m',
type => 'snapshot',
min_communication => false);
end;
/

/* 第三步,在DPS端激活主体组 */
connect system/manager@dps
begin
dbms_repcat.resume_master_activity(
gname => 'rep_dps');
end;
/

 

 

利用SQLServer2005复制功能实现与Oracle数据库同步

在项目中经常会遇到一个项目操作几个数据库的情况,若是同种类型的数据库也还好说,可以直接链接两个数据库,也可以用数据库的同步功能。若我们的项目使用SQLServer2005进行开发,而且项目中要用到Or...
  • studyzy
  • studyzy
  • 2007年02月05日 11:07
  • 4438

利用oracle高级复制功能实现数据同步

/* 从DPS到EMIS,表dpsuser.gg_web_info_m *//* 首先确保在EMIS数据库中已经建立了dpsuser和相应的表空间dpsdata *//* 第一步,配置主体端 */co...
  • super_ssy
  • super_ssy
  • 2008年04月16日 10:58
  • 279

oracle 高级复制同步数据

oracle 高级复制同步数据       oracle我不是很熟,但现被安排要做个2台数据库表同步复制,不懂,只能从开始研究,制作。如果你和我一样,看了我的制作过程,一定给你很大的帮助。废话不...
  • zljjava
  • zljjava
  • 2014年09月29日 20:38
  • 978

利用oracle高级复制功能实现数据同步的问题

/**//* 从DPS到EMIS,表dpsuser.gg_web_info_m *//**//* 首先确保在EMIS数据库中已经建立了dpsuser和相应的表空间dpsdata *//**//* 第一...
  • hailang99
  • hailang99
  • 2007年10月09日 10:18
  • 630

ORACLE的高级复制实现内外网数据同步复制

本文简要介绍了ORACLE的高级复制功能,并通过一个实际项目,讨论了在内外网的两级DB中如何采用高级复制达到内外网的数据统一,最后给出配置脚本供大家参考。 1、基本概念 ORACLE ...
  • lively1982
  • lively1982
  • 2013年12月31日 12:11
  • 1327

oracle 11g中高级复制配置

一、前提条件 1、首先需要修改数据库db_domain参数,使其db_domain参数相同。 修改方法:先根据数据库默认启动参数spfile生成可以修改的pfile参数文件,然后停止数据库,修改p...
  • xiegh2014
  • xiegh2014
  • 2015年05月03日 19:49
  • 751

ORACLE高级复制最佳实践

一、试验环境: vmoel5u4机:IP:192.168.92.100            OS:Linux version 2.6.18-164.el5       DB:Oracle 10g ...
  • waterxcfg304
  • waterxcfg304
  • 2013年06月21日 13:44
  • 2084

【ORACLE 高可用】 高级复制的两个配置实例 - 使用高级复制和物化视图

2.演示针对某个表使用高级复制进行数据同步。 3.演示使用物化视图的方式进行数据同步。 2.演示针对某个表使用高级复制进行数据同步。 2.1 配置GLOBAL_NAME     2.1...
  • miyatang
  • miyatang
  • 2013年09月16日 13:16
  • 1075

利用复制实现数据同步

利用复制实现数据同步 上个星期老大要我做两个服务器之间的数据同步,看了网上一些资料,配置的过程中遇到了许多古怪的问题.最终还是把问题解决了.以下是我使用的两种同步方式的配置过程和遇到的问题以及解决方法...
  • book_coolboy_cl
  • book_coolboy_cl
  • 2006年08月11日 12:33
  • 645

巧用dblink结合oracle快照实现两台服务器的数据同步

此文档是本人根据网上搜集的资料,反复进行双机测试通过后的一些总结。ORACLE版本:ORACLE 9IORACLE 9I实际上以物化视图代替了ORACLE 8.5的快照,但快照在ORACLE 9I中同...
  • jojoy_828
  • jojoy_828
  • 2008年04月10日 17:10
  • 2180
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用oracle高级复制功能实现数据同步的问题
举报原因:
原因补充:

(最多只允许输入30个字)