Chinaunix首页 | 论坛 | 博客
  • 博客访问: 338520
  • 博文数量: 282
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 3260
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-26 14:38
文章分类

全部博文(282)

文章存档

2011年(1)

2008年(281)

我的朋友
最近访客

分类: 服务器与存储

2008-07-28 20:02:26

      
 
最先进行的例子是测试一个物化视图站点能否通过EXP/IMP进行顺利迁移。
 
建立测试库的过程略,创建好3个待用数据库,在这个例子中,RAC1.US.ORACLE.COM作为复制主站点,TESTMV.US.ORACLE.COM作为物化视图站点,TESTMV作为要进行导入操作的物化视图站点。

为了避免误会,需要说明一下:由于刚刚做完RAC的测试,就进行这个测试,建立数据库的时候,忘了修改ORACLE_SID系统变量,因此数据库的名称叫RAC1。这个测试中,没有RAC的环境,RAC1只是一个单INSTANCE数据库。
 
首先需要说明的是,由于部署了高级复制环境,导入和导出必须采用全库级别。否则会导致复制环境无法完全导入:

下面是复制环境的建立和测试数据的准备,首先是创建测试帐号:
 
 

  SQL> CONN 已连接。
              SQL> CREATE USER YANGTK IDENTIFIED BY YANGTK DEFAULT TABLESPACE NDMAIN; 
 
用户已创建。
 
  SQL> GRANT CONNECT, RESOURCE TO YANGTK; 
 
授权成功。
 
  SQL> CONN 已连接。
              SQL> CREATE TABLE T (ID NUMBER, NAME VARCHAR2(30)); 
 
表已创建。
 

  SQL> ALTER TABLE T ADD CONSTRAINT PK_T PRIMARY KEY (ID); 
 
表已更改。
 

  SQL> INSERT INTO T SELECT ROWNUM, TABLE_NAME FROM ALL_TABLES; 
 
已创建43行。
 
 
  SQL> COMMIT; 
 
提交完成。
 
 
  SQL> CREATE INDEX IND_T_NAME ON T (NAME) TABLESPACE NDMAIN; 
 
索引已创建。

 

  SQL> CREATE TABLE T1 (ID NUMBER PRIMARY KEY, FID NUMBER, NAME VARCHAR2(30)); 
 
表已创建。

 
 
  SQL> INSERT INTO T1 SELECT ROWNUM, MOD(ROWNUM, 43) + 1,
            SYNONYM_NAME FROM ALL_SYNONYMS; 
 
已创建12239行。
 
 
  SQL> COMMIT; 
 
提交完成。

 

  SQL> ALTER TABLE T1 ADD CONSTRAINT FK_T1_FID
            FOREIGN KEY (FID) REFERENCES T(ID); 
 
表已更改。
 
 

  SQL> CREATE INDEX IND_T1_FID ON T1(FID); 
 
索引已创建。
 
下面建立主站点环境:

 
  SQL> CONN 已连接。
              SQL> CREATE USER REPADMIN IDENTIFIED BY REPADMIN DEFAULT TABLESPACE NDMAIN; 
 
用户已创建。
 
  SQL> BEGIN
              2 DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA(USERNAME => 'REPADMIN');
              3 END;
              4 / 
 
PL/SQL 过程已成功完成。

 
  SQL> GRANT COMMENT ANY TABLE TO REPADMIN; 
 
授权成功。
 

  SQL> GRANT LOCK ANY TABLE TO REPADMIN; 
 
授权成功。
 
  SQL> GRANT SELECT ANY DICTIONARY TO REPADMIN; 
 
授权成功。
 
 
  SQL> GRANT SELECT_CATALOG_ROLE TO REPADMIN; 
 
授权成功。

 
  SQL> GRANT CREATE SESSION TO REPADMIN; 
 
授权成功。
 
 
  SQL> GRANT SELECT ANY TABLE TO REPADMIN; 
 
授权成功。
 

  SQL> BEGIN
              2 DBMS_DEFER_SYS.REGISTER_PROPAGATOR(USERNAME => 'REPADMIN');
              3 END;
              4 / 
 
PL/SQL 过程已成功完成。
 
 
  SQL> BEGIN
              2 DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP(USERNAME => 'REPADMIN',
              3 PRIVILEGE_TYPE => 'RECEIVER', LIST_OF_GNAMES => NULL);
              4 END;
              5 / 
 
PL/SQL 过程已成功完成。
 
 

  SQL> BEGIN
              2 DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP(USERNAME => 'REPADMIN',
              3 PRIVILEGE_TYPE => 'PROXY_SNAPADMIN',
              4 LIST_OF_GNAMES => NULL);
              5 END;
              6 / 
 
PL/SQL 过程已成功完成。
 
  SQL> CONN 已连接。
              SQL> BEGIN
              2 DBMS_DEFER_SYS.SCHEDULE_PURGE(NEXT_DATE => SYSDATE,
            INTERVAL => 'SYSDATE + 1/24', DELAY_SECONDS
              => 0);
              3 END;
              4 / 
 
PL/SQL 过程已成功完成。

建立主体组和主体对象:
 
 
 
  SQL> CONNECT 已连接。
              SQL> BEGIN
              2 DBMS_REPCAT.CREATE_MASTER_REPGROUP(GNAME => 'REP_GROUP');
              3 END;
              4 / 
 
PL/SQL 过程已成功完成。

 

  SQL> BEGIN
              2 DBMS_REPCAT.CREATE_MASTER_REPOBJECT
            (GNAME => 'REP_GROUP', TYPE => 'TABLE',
              3 ONAME => 'T', SNAME => 'YANGTK', USE_EXISTING_OBJECT =>
            TRUE, COPY_ROWS => FALSE);
              4 END;
              5 / 
 
PL/SQL 过程已成功完成。
 
  SQL> BEGIN
              2 DBMS_REPCAT.CREATE_MASTER_REPOBJECT
            (GNAME => 'REP_GROUP', TYPE => 'TABLE',
              3 ONAME => 'T1', SNAME => 'YANGTK', USE_EXISTING_OBJECT =>
            TRUE, COPY_ROWS => FALSE);
              4 END;
              5 / 
 
PL/SQL 过程已成功完成。
 
 
  SQL> BEGIN
              2 DBMS_REPCAT.CREATE_MASTER_REPOBJECT(GNAME =>
            'REP_GROUP', TYPE => 'INDEX',
              3 ONAME => 'IND_T1_FID', SNAME => 'YANGTK',
            USE_EXISTING_OBJECT => FALSE, COPY_ROWS => FALSE);
              4 END;
              5 / 
 
PL/SQL 过程已成功完成。

 
  SQL> BEGIN
              2 DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT(SNAME => 'YANGTK',
              3 ONAME => 'T', TYPE => 'TABLE', MIN_COMMUNICATION => TRUE);
              4 END;
              5 / 
 
PL/SQL 过程已成功完成。
 
SQL> BEGIN
              2 DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT(SNAME => 'YANGTK',
              3 ONAME => 'T1', TYPE => 'TABLE', MIN_COMMUNICATION => TRUE);
              4 END;
              5 / 
 
PL/SQL 过程已成功完成。

 
  SQL> BEGIN
              2 DBMS_REPCAT.RESUME_MASTER_ACTIVITY(GNAME => 'REP_GROUP');
              3 END;
              4 / 
 
PL/SQL 过程已成功完成。
 
 
  SQL> COMMIT; 
 
提交完成。
 
下面配置物化视图站点:

 
  SQL> CONNECT 已连接。
              SQL> CREATE USER MVADMIN IDENTIFIED BY MVADMIN DEFAULT TABLESPACE NDMAIN; 
 
用户已创建。

 

  SQL> BEGIN
              2 DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA(USERNAME => 'MVADMIN');
              3 END;
              4 / 
 
PL/SQL 过程已成功完成。

 
 
  SQL> GRANT COMMENT ANY TABLE TO MVADMIN; 
 
授权成功。
 
 
  SQL> GRANT LOCK ANY TABLE TO MVADMIN; 
 
授权成功。
 
 
  SQL> BEGIN
              2 DBMS_DEFER_SYS.REGISTER_PROPAGATOR(USERNAME => 'MVADMIN');
              3 END;
              4 / 
 
PL/SQL 过程已成功完成。
 
  SQL> GRANT SELECT ANY DICTIONARY TO MVADMIN; 
 
授权成功。

 

  SQL> CREATE PUBLIC DATABASE LINK RAC1.US.ORACLE.COM USING 'RAC1'; 
 
数据库链接已创建。
 
 
  SQL> CONNECT 已连接。
              SQL> CREATE DATABASE LINK RAC1.US.ORACLE.COM
            CONNECT TO REPADMIN IDENTIFIED BY REPADMIN; 
 
数据库链接已创建。

建立物化视图,完成复制环境的配置:
 
 
  SQL> CONNECT 已连接。
              SQL> CREATE MATERIALIZED VIEW LOG ON T; 
 
实体化视图日志已创建。
 
  SQL> CREATE MATERIALIZED VIEW LOG ON T1; 
 
实体化视图日志已创建。
 

  SQL> CONNECT 已连接。
              SQL> CREATE USER YANGTK IDENTIFIED BY YANGTK DEFAULT TABLESPACE NDMAIN; 
 
用户已创建。
 
  SQL> GRANT CREATE SESSION, CREATE TABLE, CREATE PROCEDURE, CREATE SEQUENCE,
              2 CREATE TRIGGER, CREATE VIEW, CREATE SYNONYM, ALTER SESSION,
              3 CREATE MATERIALIZED VIEW, ALTER ANY MATERIALIZED VIEW,
              4 CREATE DATABASE LINK TO YANGTK; 
 
授权成功。
 
 

  SQL> GRANT CONNECT, RESOURCE TO YANGTK; 
 
授权成功。
 
  SQL> CONNECT 已连接。
              SQL> CREATE DATABASE LINK RAC1.US.ORACLE.COM
            CONNECT TO REPADMIN IDENTIFIED BY REPADMIN; 
 
 
此信息来自<立珊网络计算机专业网>,立珊网络计算机专业网站. 原文链接:
阅读(934) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~