由於產品系統需要進行一次跨平台的遷移,因此,只能通過EXP/IMP來實現。所幸的是需要遷移的數據庫數據量不大,而且停機時間相對充裕。但是需要遷移的數據庫已經部署了高級復制環境,打算進行一系列的測試,測試包含高級復制環境數據庫在通過EXP/IMP工具遷移到新的環境中,復制環境是否生效。
最先進行的例子是測試一個物化視圖站點能否通過EXP/IMP進行順利遷移。
建立測試庫的過程略,創建好3個待用數據庫,在這個例子中,RAC1.US.ORACLE.COM作為復制主站點,TESTMV.US.ORACLE.COM作為物化視圖站點,TESTMV作為要進行導入操作的物化視圖站點。
為了避免誤會,需要說明一下:由於剛剛做完RAC的測試,就進行這個測試,建立數據庫的時候,忘了修改ORACLE_SID系統變量,因此數據庫的名稱叫RAC1。這個測試中,沒有RAC的環境,RAC1只是一個單INSTANCE數據庫。
首先需要說明的是,由於部署了高級復制環境,導入和導出必須采用全庫級別。否則會導致復制環境無法完全導入:
下面是復制環境的建立和測試數據的准備,首先是創建測試帳號:
SQL> CONN SYSTEM/TEST@RAC1已連接。 SQL> CREATE USER YANGTK IDENTIFIED BY YANGTK DEFAULT TABLESPACE NDMAIN;
用戶已創建。
SQL> GRANT CONNECT, RESOURCE TO YANGTK;
授權成功。
SQL> CONN YANGTK/YANGTK@RAC1已連接。 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);
索引已創建。