oracle10.2.0.1.0高级复制实现双向同步步骤:
我做复制的两个站点的sid分别是:sqlee、test
oracle版本:oracle10.2.0.1.0
系统:windows xp
tnsnames:server3、sqlee与前面的sid相互对应
拥有复制对象的用户均是:sqlee
复制对象:test_rep表
复制管理用户:repadmin
1、查看系统参数设置、更改全局数据库名、是否支持高级复制
SQL> select value from v$option where parameter='Advanced replication';
VALUE
-------------------------------------------------------------------------------
TRUE -------------------要支持高级复制,这儿必为true
SQL> show parameter job_queue_processes----------------------------该参数要求>0
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 10
SQL> show parameter global_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
global_names boolean TRUE
假如参数global_names为false,alter system set global_names=true scope=both;
更改两需要同步站点的全局数据库名:
alter database rename global_name to sqlee.cd.com;
alter database rename global_name to test.cd.com;
2、创建复制对象
connnect sqlee/sqlee@sqlee ----为sqlee库创建复制对象
-- Create table
create table TEST_REP
(
ID NUMBER not null,
NAME VARCHAR2(10)
)
tablespace SQLEE;
-- Create/Recreate primary, unique and foreign key constraints
alter table TEST_REP
add constraint PK_ID primary key (ID)
using index
tablespace SQLEE;
connect sqlee/sqlee@server3 ----为test库创建复制对象
-- Create table
create table TEST_REP
(
ID NUMBER not null,
NAME VARCHAR2(10)
)
tablespace users;
-- Create/Recreate primary, unique and foreign key constraints
alter table TEST_REP
add constraint PK_ID primary key (ID)
using index
tablespace users;
3、创建复制管理用户repadmin、授予相应的权限、注册传播者、创建dblink。
--配置主站点test
conn sys/sys@server3 as sysdba;
drop user repadmin cascade;
create user repadmin identified by repadmin default tablespace users temporary tablespace temp;
exec dbms_repcat_admin.grant_admin_any_schema('REPADMIN')
exec dbms_defer_sys.register_propagator('REPADMIN')
grant select any dictionary to repadmin;
grant lock any table to repadmin;
grant comment any table to repadmin;
grant execute any procedure to repadmin;
create public database link sqlee.cd.com using 'sqlee';
conn repadmin/repadmin@server3;
create database link sqlee.cd.com connect to repadmin identified by repadmin;
--配置主站点sqlee
conn sys/sys@sqlee as sysdba;
drop user repadmin cascade;
create user repadmin identified by repadmin default tablespace sqlee temporary tablespace temp;
exec dbms_repcat_admin.grant_admin_any_schema('REPADMIN')
exec dbms_defer_sys.register_propagator('REPADMIN')
grant select any dictionary to repadmin;
grant lock any table to repadmin;
grant comment any table to repadmin;
grant execute any procedure to repadmin;
create public database link test.cd.com using 'server3';
conn repadmin/repadmin@sqlee;
create database link test.cd.com connect to repadmin identified by repadmin;
4、创建复制组、添加主体站点、添加复制对象、添加复制支持、激活复制
connect repadmin/repadmin@server3
exec dbms_repcat.create_master_repgroup('repgroup');
execute dbms_repcat.add_master_database(gname=>'repgroup',master=>'sqlee.cd.com',use_existing_objects=>true,copy_rows=>false, propagation_mode => 'synchronous');
execute dbms_repcat.create_master_repobject(sname=>'sqlee',oname=>'test_rep',type=>'table',use_existing_object=>true,gname=>'repgroup',copy_rows=>false);
execute dbms_repcat.generate_replication_support('sqlee','test_rep','table');
execute dbms_repcat.resume_master_activity('repgroup',true);
到此,整个高级复制配置结束。
上面是比较粗糙的复制配置,只能实现数据的同步,没有考虑到oracle的性能,要是哪位仁兄能将复制过程中oracle性能方面的设置补充一下,小弟将不胜感激。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12158104/viewspace-234437/ ,如需转载,请注明出处,否则将追究法律责任。