两台oracle 8.1.7企业版服务器,已配置成支持复制功能,现要将一台服务器作为Master Site,另一台作为Snapshot Site,其中在Master Site上的工作已经完成(1. 建立主站点;2. 创建主组),但在Snapshot Site上往快照组添加对象(add objects to snapshot group)时出错,运行的脚本如下:SQL> BEGIN
  2   DBMS_REPCAT.CREATE_SNAPSHOT_REPOBJECT(
  3    gname           => 'SCOTT_MG',
  4  sname           => 'scott',
  5  oname           => 'dept',
  6  type             => 'SNAPSHOT',
  7  ddl_text          => 'CREATE SNAPSHOT scott.dept REFRESH FAST WITH
  8  PRIMARY KEY FOR UPDATE AS SELECT * FROM
  9  [email protected]',
 10  min_communication => TRUE);
 11  END;
 12  /
BEGIN
*
ERROR at line 1:
ORA-23308: object SCOTT.DEPT does not exist or is invalid
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.DBMS_REPCAT_SNA_UTL", line 4378
ORA-06512: at "SYS.DBMS_REPCAT_SNA_UTL", line 5166
ORA-06512: at "SYS.DBMS_REPCAT_SNA", line 82
ORA-06512: at "SYS.DBMS_REPCAT", line 1076
ORA-06512: at line 2对上述脚本的说明:linxg.adam是到主站点的数据库链路,主站点linxg模式scott拥有emp、dept、bonus、salgrade四个表(就是oracle自身demo)。上述步骤我是按照oracle提供的文档“Oracle8i Replication Management API Reference
Release 2 (8.1.6)
Part Number A76958-01”来做的,该文档适用于Oracle Release 8 (8.1.7)。请大虾指点,我的QQ号:15872908,谢谢!

解决方案 »

  1.   

    你在主定义站点上执行
    SELECT * FROM [email protected]
    看看可以么?
      

  2.   

    还有你是在哪个用户下作的?
    一般是创建一个复制管理员用户(repadmin),然后由他来创建复制组(快照组)
    这个用户需要访问两个站点中scott用户的权限
      

  3.   

    主站点是复制管理员(repadmin),负责创建主组、添加主组对象
    快照站点是快照管理员(snapadmin),负责创建快照组、刷新组、添加快照组对象、刷新组对象,快照管理员能访问主站点中的scott的表。
      

  4.   

    情况不明朗,不好意思,帮不了你!我做复制,使用工具DBA_STUDIO
    我不知道,你是直接使用SQL创建,还是使用复制工具
    你如果没有使用DBA_STUDIO,建议你试验一下
      

  5.   

    看情况是没有找到对象,试试在Snapshot Site节点上运行语句:
    SELECT * FROM [email protected];
    是否能够查到数据!还有注意权限的问题。