Oracle 高级复制 (同步复制) 配置步骤详细说明

***业务需要,先做个高级复制的(同步复制)。详细的说明如下:*** [Oracle] oracle高级复制同步复制配置步骤 首先,数据库要具备高级复制功能(用system身份登录数据库,查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能;否则不支持) 一.数据库基本情况 数据库A 版本oracle 10.2.0.1 数据库名sid:eread 数据库B 版本oracle 10.1.0.3 数据库名sid:test 主体定义站点:A eread
主体站点:B test
注:主体定义站点指配置复制工作的站点 本例涉及的用户.
复制管理员:repadmin
应用用户:cqm
本例复制的对象:reptest 数据表
本例的先决条件:你需要设置好相应的参数,job_queue_processes需要大于0,global_name=true,并且建立相应的db link. alter system set global_names=true scope=both;
二.在两个数据库上分别创建应用用户CQM CREATE USER CQM IDENTIFIED BY CQM DEFAULT TABLESPACE CQM TEMPORARY TABLESPACE TEMP; GRANT DBA TO CQM; 三.在两个数据库上分别创建复制管事员用户REPADMIN --创建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;
四.更改两个数据库的全局名称 alter database rename global_name to A.TEST.COM.CN; alter database rename global_name to B.TEST.COM.CN;
A:eread.im.com.cn
B:test.im.com.cn 五.在两个数据库上建立数据库链接 create public database link test.im.com.cn connect to REPADMIN identified by REPADMIN using 'test'; create public database link eread.im.com.cn connect to REPADMIN identified by REPADMIN using 'eread'; 六.在两个数据库的应用用户CQM下创建表 在数据库EREAD上用户CQM下:注意,要进行复制的表必须有主键 CREATE TABLE TEST(ID NUMBER(10),TIMESTAMP DATE DEFAULT sysdate);
ALTER TABLE TEST ADD(CONSTRAINT TEST_PK PRIMARY KEY(ID)); 在数据库EREAD上用户CQM下: CREATE TABLE TEST(ID NUMBER(10),TIMESTAMP DATE DEFAULT sysdate);
ALTER TABLE TEST ADD(CONSTRAINT TEST_PK PRIMARY KEY(ID)); 七.在主体定义站点开始操作(数据库A:eread) 以REPADMIN登录数据库eread 创建复制组: execute dbms_repcat.create_master_repgroup('rep_hh');
execute dbms_repcat.create_master_repgroup('repg'); 在复制组里加入复制对象: execute dbms_repcat.create_master_repobject(sname=>'cqm',oname=>'test',type=>'table',use_existing_object=>true,gname=>'repg',copy_rows=>false); 对复制对象产生复制支持: execute dbms_repcat.generate_replication_support('cqm','test','table'); 添加主体复制节点: execute dbms_repcat.add_master_database(gname=>'repg',master=>'test.im.com.cn',use_existing_objects=>true,copy_rows=>false, propagation_mode => 'synchronous'); 在主体定义站点启动复制: execute dbms_repcat.resume_master_activity('repg',true); 八.至此配置完成
1)模拟小数据量测试:OK
2)模拟大数据量测试:OK
CREATE OR REPLACE procedure insert_into_test
as
i number;
m NUMBER;
n NUMBER;
BEGIN
n:=0;
FOR i IN 1..10000 LOOP
m:=i;
INSERT INTO test(id)VALUES (m);
n:=n+1;
IF n=1000 THEN
COMMIT;
n:=0;
END IF;
END LOOP;
COMMIT;
END;
/


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部