网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.ORACLE DBA(数据库管理员)的职责.
.关于Oracle 9i 跳跃式索引扫描(I.
.Oracle10g SQL*PLUS 的一些特性.
.Oracle数据完整性嵌套事务调用的.
.如何避免Oracle数据库密码出现@符.
.Oracle 9i新特性研究系列之二 --.
.用orabm测试oracle服务器的TPS值.
.改变或关闭Oracle XDB的ftp和htt.
.JSR 198 最终草案提交 统一IDE插.
.漫谈oracle中的空值.
.用Oracle并行查询发挥多CPU的威力.
.Oracle数据库常见问题答疑.
.Qracle高级复制维护中要注意的方.
.ORACLE常用的SQL语法和数据对象.
.Oracle用“Cooking With Code”为.
.如何查看各个表空间的自由空间.
.一个容易忽视的Oracle数据安全问.
.为什么我在配置文件里面指定Erro.
.逻辑数据模型到物理数据模型的转.
.如何利用row_number函数处理重复.

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

发表日期:2008-2-9


/* 从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;
/

上一篇:OracleORA-00903错误具体原因分析 人气:749
下一篇:Oracle PL/SQL的第一次接触 人气:762
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐