• Oracle 10g高级复制实例(多主体复制)(转载)


    Oracle 10g高级复制实例(多主体复制)

    前言:

    配置了三次,两次都是单向。最后一次终于是双向的了。也算一点有点成功的喜悦。喜悦?喜悦确实谈不上。这么简单的东西弄了这么久觉得惭愧。网络上的资料一大堆。不过他们写的好象都有些随意。有的时候一点点错误可以使你只有重来。我现在重新写一次。只提供给初学者。配置的高手的就不要开腔了。因为实在不好意思拿出来见人。

    信息:

    主体定义数据库:testdb.geong.com(弄清楚别弄错了。)

    主体数据库:backdb.geong.com

    操作系统:  xp

    数据库版本: ORACLE 10G -10.2.0.1.0

    注:主体定义数据库指配置复制工作的数据库。

    高级复制过程:(以下没有特别说明都要在两台数据库上操作)。

    1处理数据库参数:(两台数据库都要配置)

    1.1设置global_name为true。(global_name 由两部分组成。 +<db_domain>.)

    SQL> show parameter global_name

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- --------                     

    global_names                         boolean     TRUE   

     

    如果为false 请更改

    alter system set global_name=true scope=spfile; (写在spfile文件中。需要重起才能起作用)

    1.2 重新命名global_name

     alter database rename global_name to .<domain_name>.

    如:

    alter database global_name to testdb.geong.com;

    更该完毕。

    重起两台数据库。

    参数修改完毕。

    2开始用户配置:(两台数据库都要相同的配置)

    2.1 先配置复制数据测试用户。

    用system用户操作:

    create user test identified by test default tablespace users;

    grant connect,resource to test;

     

     

     

     

    2.2切换到test用户

     

    conn  test/test

    create table test(id number,name varchar2(20),constraint test_id_pk primary key(id));(主键一定是要的)

     

    2.3 插入一些测试数据

    insert into test values(1,’tanfufa1’);

    insert into test values(1,’tanfufa1’);

    insert into test values(1,’tanfufa1’);

    commit;

     

    2.4用system用户创建public link;

    在testdb上创建

    create public database link “backdb.geong.com” using ‘backdb’;

    测试连通性:

    select * from global_name@ backdb.geong.com

    GLOBAL_NAME

    ---------

    BACKDB.GEONG.COM

     

    如果不通请检查tnsname.一定要通.不然后面就不用做了.

    在backdb上创建

    create public database link “backdb.geong.com” using ‘backdb’;

    测试连通性:

    select * from global_name@ testdb.geong.com

    GLOBAL_NAME

    ---------

    TESTDB.GEONG.COM

    如果不通请检查tnsname.一定要通.不然后面就不用做了.

    3.配置复制管理用户. (两台数据库都要相同的配置)

    3.1

    conn system/tanfufa

    SQL>create user repadmin identified by repadmin default tablespace users temporary tablespace temp;

     

    User created.

     

    SQL>execute dbms_defer_sys.register_propagator('repadmin');

     

    PL/SQL procedure successfully completed.

     

    SQL>grant execute any procedure to repadmin;

     

    Grant succeeded.

     

    SQL>execute dbms_repcat_admin.grant_admin_any_repgroup('repadmin');

     

    PL/SQL procedure successfully completed.

     

    SQL>execute dbms_repcat_admin.grant_admin_any_schema(username => 'repadmin');

     

    PL/SQL procedure successfully completed.

     

    SQL>grant comment any table to repadmin;

     

    Grant succeeded.

     

    SQL>grant lock any table to repadmin;

     

    Grant succeeded.

     

    SQL>grant select any dictionary to repadmin;

     

    Grant succeeded.

     

    4.  用repadmin用户创建database link. (两台数据库都要相同的配置)

    在testdb上创建:

    create database link “backdb.geong.com” connect to repadmin identified by repadmin.

    测试连通性:

    select * from global_name@ backdb.geong.com

    GLOBAL_NAME

    ---------

    BACKDB.GEONG.COM

     

    如果不通请检查tnsname.一定要通.不然后面就不用做了.

     

    在backdb上创建:

    create database link “backdb.geong.com” connect to repadmin identified by repadmin.

    测试连通性:

    select * from global_name@ testdb.geong.com

    GLOBAL_NAME

    ---------

    TESTDB.GEONG.COM

     

    如果不通请检查tnsname.一定要通.不然后面就不用做了.

     

    5.准备工作全部做完了.现在去喝咖啡.

     

    6. .复制实施进程:(特别注意以下在testdb数据库上操作)

    6.1  conn repadmin/repadmin

     

    SQL> execute dbms_repcat.create_master_repgroup('REP_MYTEST');

     

    PL/SQL procedure successfully completed.

     

    察看复制主体组相关信息:

    SQL> select gname,master,status from dba_repgroup where gname='REP_MYTEST';

    GNAME                         MASTER                        STATUS

    --------------------------- ----------------------------  ------------------------

    REP_MYTEST                  Y                             QUIESCED

    为主体组添加复制对象:

    SQL> execute dbms_repcat.create_master_repobject (sname=>'test',oname=>'test', type=>'TABLE', use_existing_object=>true,gname=>'REP_MYTEST',copy_rows=>true);

    PL/SQL procedure successfully completed.

     

    察看复制主体组中复制对象的相关信息:

    SQL>select sname,oname,status,gname from dba_repobject where gname='REP_MYTEST';

     

    SNAME                          ONAME                            STATUS     GNAME

    ----------------------------- ------------------------------ ------------- ------------------------------

    SCOTT                         DEPT                           VALID         REP_MYTEST

     

    为复制对象生成复制支持:

    SQL> execute dbms_repcat.generate_replication_support('test','test','TABLE');

     

    PL/SQL procedure successfully completed.

     

    再次察看复制主体组和对应的复制对象的相关信息:

    SQL> select gname,master,status from dba_repgroup where gname='REP_MYTEST';

     

    GNAME                         MASTER                        STATUS

    --------------------------- ----------------------------  ------------------------

    REP_MYTEST                  Y                             QUIESCED

     

    SQL> select sname,oname,status,gname from dba_repobject where gname='REP_MYTEST';

     

    SNAME                          ONAME                            STATUS     GNAME

    ----------------------------- ------------------------------ ------------- ------------------------------

    SCOTT                            DEPT                        VALID         REP_MYTEST

    SCOTT                            DEPT$RP                     VALID         REP_MYTEST

    SCOTT                            DEPT$RP                     VALID         REP_MYTEST

    为复制主体组添加数据库主站点:

    SQL>execute dbms_repcat.add_master_database(gname=>'REP_MYTEST',

    master=>'backdb.geong.com',use_existing_objects=>true,copy_rows=>true,  propagation_mode => 'synchronous');

    PL/SQL procedure successfully completed.

     

    察看复制站点信息:

    SQL> select gname,dblink,masterdef,master from dba_repsites where gname='REP_MYTEST';

     

    GNAME        DBLINK                            MASTERDEF     MASTER

    ------------ --------------------------------  ------------------ --------------

    REP_MYTEST         testdb.geong.com  Y                     Y

    REP_MYTEST         backdb.geong.com  N                    Y

    启动复制进程:

    SQL> execute dbms_repcat.resume_master_activity('REP_MYTEST',true);

     

    PL/SQL procedure successfully completed.

     

    再次察看复制主体组相关信息:

    SQL> select gname,master,status from dba_repgroup where gname='REP_MYTEST';

     

    GNAME                         MASTER                        STATUS

    --------------------------- ----------------------------  ------------------------

    REP_MYTEST                       Y                                   NORMAL

     

    注意:复制主体组的状态由QUIESCED变为NORMAL

     

    至此,这个复制过程实施完毕。可以进行相关的数据操作进行测试。

     

    7.测试:

    1.在testdb上删除修改插入数据,查看backdb变化.

     

    2.在backdb上删除修改插入数据,查看testdb变化.

     

    8.如果你需要添加表到组里面来请按照入下操作.

    配置好后。如果需要添加表。

    执行下命令:

    8.1.exec dbms_repcat.suspend_master_activity('rep_mytest');

     取消抑制。

     

    8.2.SQL> execute dbms_repcat.create_master_repobject(sname=>'reptest',oname=>'test1'

    ,type=>'TABLE',use_existing_object=>true,gname=>'REP_MYTEST',copy_rows=>true);

    为组增加新表。

     

    8.3.execute dbms_repcat.generate_replication_support('reptest','test1','TABLE')

    增加支持。

    8.4. execute dbms_repcat.resume_master_activity('REP_MYTEST',true);

    启动进程

    好了。你可以去测试你新加的表了.

     
    http://blog.chinaunix.net/uid-7540710-id-135066.html
  • 相关阅读:
    CSS动画小结
    CSS效果常见问题
    CSS效果小结
    CSS(非布局样式)
    CSS(选择器)
    SkipList
    实现一个简易版RPC
    实现一个简易版的SpringMvc框架
    关于缓存击穿
    java多线程系列 目录
  • 原文地址:https://www.cnblogs.com/cyblogs/p/5485260.html
Copyright © 2020-2023  润新知