ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle10.2.0.1.0高级复制-双向同步

oracle10.2.0.1.0高级复制-双向同步

原创 Linux操作系统 作者:sqleee 时间:2008-04-11 09:24:12 0 删除 编辑

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博客 ” ,链接:http://blog.itpub.net/12158104/viewspace-234437/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-03-21

  • 博文量
    31
  • 访问量
    113792