现有两个远程数据库,已测试连接成功.但在添加"主体站点"时,提示"特性与数据库版本不兼容"我两个数据库的版本都是920,都支持高级复制.如果知道这是为什么,请指教.多谢先.也可以qq联系:41447821

解决方案 »

  1.   

    http://www.ccw.com.cn/htm/app/salon/01_4_19_3.asp 
    我按上面那篇文章执行到第七步时就出现了我说的那个问题.
    今天又在两台机上重新建了数据库,可还是到第七步时出现同样的问题
      

  2.   

    顺便再说一下,我的错误代码是ora-23375
      

  3.   

    -- 高级复制(多主复制)测试脚本
    -- 执行此脚本需要确定几个事情
    -- 1、主站点 SID : src1 global_name : src1.kingdom
    --    复制站点 SID : aim1 global_name : aim1.kingdom
    --
    -- 2、确定 global_names 和 job_queue_processes 参数是否适用
    --    global_names=true
    --    job_queue_processes > 0
    --
    -- 3、主站点和复制站点的域名要相同conn system/st@src1-- 创建公共数据库连接
    create public database link aim1.kingdom using 'aim1';-- 创建复制管理员、propagator
    create user repadmin identified by repadmin default tablespace users temporary
    tablespace temp;
    execute dbms_defer_sys.register_propagator('repadmin');
    grant execute any procedure to repadmin;
    execute dbms_repcat_admin.grant_admin_any_repgroup('repadmin');
    execute dbms_repcat_admin.grant_admin_any_schema(username=>'"REPADMIN"');
    grant comment any table to repadmin;
    grant lock any table to repadmin;
    grant select any dictionary to repadmin;-- 创建测试用户
    create user scott identified by tiger default tablespace users temporary
    tablespace temp;
    grant connect to scott;
    grant resource to scott;-- 创建测试表
    conn scott/tiger@src1
    CREATE TABLE dept (deptno NUMBER(2,0) NOT NULL, dname VARCHAR2(14), loc VARCHAR2(13));
    ALTER TABLE dept ADD PRIMARY KEY (deptno);conn system/st@aim1-- 创建公共数据库连接
    create public database link src1.kingdom using 'src1';-- 创建复制管理员、propagator
    create user repadmin identified by repadmin default tablespace users temporary
    tablespace temp;
    execute dbms_defer_sys.register_propagator('repadmin');
    grant execute any procedure to repadmin;
    execute dbms_repcat_admin.grant_admin_any_repgroup('repadmin');
    execute dbms_repcat_admin.grant_admin_any_schema(username=>'"REPADMIN"');
    grant comment any table to repadmin;
    grant lock any table to repadmin;
    grant select any dictionary to repadmin;-- 创建测试用户
    create user scott identified by tiger default tablespace users temporary
    tablespace temp;
    grant connect to scott;
    grant resource to scott;-- 创建测试表
    conn scott/tiger@aim1
    CREATE TABLE dept (deptno NUMBER(2,0) NOT NULL, dname VARCHAR2(14), loc VARCHAR2(13));
    ALTER TABLE dept ADD PRIMARY KEY (deptno);conn repadmin/repadmin@src1
    create database link aim1.kingdom connect to repadmin identified by repadmin;-- 建立复制组
    BEGIN
       DBMS_REPCAT.CREATE_MASTER_REPGROUP(
         gname => '"REP_MASTER"',
         qualifier => '',
         group_comment => '');
    END;
    /
    -- 将复制对象增加到复制组中
    BEGIN
       DBMS_REPCAT.CREATE_MASTER_REPOBJECT(
         gname => '"REP_MASTER"',
         type => 'TABLE',
         oname => '"DEPT"',
         sname => '"SCOTT"',
         copy_rows => TRUE,
         use_existing_object => TRUE);
    END;
    /
    -- 生成复制支持
    BEGIN
       DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT(
         sname => '"SCOTT"',
         oname => '"DEPT"', 
         type => 'TABLE',
         min_communication => TRUE,
         generate_80_compatible => FALSE);
    END;
    /
    begin
      dbms_repcat.add_master_database(
        gname=>'"REP_MASTER"',
        master=>'aim1.kingdom',
        use_existing_objects=>true,
        copy_rows=>false,
        propagation_mode=>'asynchronous');
    end;
    /
    BEGIN
    DBMS_REPCAT.RESUME_MASTER_ACTIVITY(
    gname => '"REP_MASTER"');
    END;
    /begin
    dbms_defer_sys.schedule_push (
    destination => 'aim1.kingdom',
    interval => 'sysdate + 1/1440',
    next_date => sysdate,
    parallelism => 1,
    delay_seconds => 50);
    end;
    /begin
    dbms_defer_sys.schedule_purge (
    next_date => sysdate,
    interval => 'sysdate + 1/1440',
    delay_seconds => 0,
    rollback_segment => '');
    end;
    /conn repadmin/repadmin@aim1
    create database link src1.kingdom connect to repadmin identified by repadmin;begin
    dbms_defer_sys.schedule_push (
    destination => 'src1.kingdom',
    interval => 'sysdate + 1/1440',
    next_date => sysdate,
    parallelism => 1,
    delay_seconds => 50);
    end;
    /begin
    dbms_defer_sys.schedule_purge (
    next_date => sysdate,
    interval => 'sysdate + 1/1440',
    delay_seconds => 0,
    rollback_segment => '');
    end;
    /
      

  4.   

    我已经按你说的一步步做下来.在所有步骤结束后,我在src1上用SCOTT登陆在dept表中插入一条记录.commit后,src1上提示 "  ORA-23326:没有抑制对象组"PUBLIC"."REP_MASTER"  "
    在aim1上执行同样操作,却没有错误.aim1的数据库可以更新.但src1的数据库没有更新.
      

  5.   

    我刚才在src1的控制台中把原有的主体组删掉后又重建了一个.现在已经没有ora-23326的错误了,但在src1中更新表的话,在aim1中看不到更新的结果.在aim1中更新的话,在src1中也看不到更新结果.也就是说复制操作似乎没有被执行.奇怪......
      

  6.   

    我试了一下,是有点错误。执行脚本后你需要在src1的主体组rep_master中启动复制操作(如果复杂状态静默),然后把管理请求中的错误删掉。
      

  7.   

    我再试试吧,多谢gzh_seagull的耐心指教
      

  8.   

    虽然目前还不能复制,但已经没有原先的错误了.所以先把帖子结了吧.再次感谢gzh_seagull.