使用Datapump方式傳輸表空間事先得將表空間置於只讀,在很多情況下對於生產庫而言是不允許的,通過RMAN就能實現不影響生產庫的情況下實現表空間的遷移.
源數據庫:win2008_R2 oracle11gR2
目標數據庫:win2003_32位 oracle11gR2
1,準備待測試表空間tbs1,tbs2,創建測試表test1,test2及用戶test
SQL> grant connect,resource to test identified by test;
Grant succeeded.
SQL> create tablespace tbs1 datafile 'E:\newtbs\tbs1.dbf' size 100m;
Tablespace created.
SQL> create tablespace tbs2 datafile 'E:\newtbs\tbs2.dbf' size 100m;
Tablespace created.
SQL> conn test/test
Connected.
SQL> create table test1 (id int ,name varchar2(100)) tablespace tbs1;
Table created.
SQL> create table test2 (id int ,name varchar2(100)) tablespace tbs2;
Table created.
SQL> insert into test1 values(1,'this is no.1');
1 row created.
SQL> insert into test2 values(2,'this is no.2');
1 row created.
SQL> commit;
Commit complete.
2,由於本次測試表空間都是自包含的,所以不用做自包含檢查.在rman操作之前先確保有有效的rman備份(數據庫,歸檔日誌)這裏我全部備份一遍.
3,真正的操作來了,這是rman傳輸表空間的精髓所在,話說oracle爲用戶考慮的真多,執行這條語句後oracle會自動的創建一個臨時數據庫,使用備份還原數據庫,然後再將我們需要的表空間修改爲只讀,通過datapump工具導出表空間元數據,最後會刪除臨時數據庫,只留下我們需要的元數據,表空間文件和腳本文件
tablespace destination 爲導出的表空間元數據及數據文件存放路徑
auxiliary destination 爲臨時數據庫數據路徑
rman的日誌信息很好,從中能瞭解到具體做了哪些事情,非常詳細!
4,運行成功後,將所需數據(F:\OracleAPP\td)複製到目標數據庫中,複製到目標服務器的F:\OracleAPP\td下面
5,剩下的工作就全部在目標服務器上面了,這裏有2種方式將數據導入,運行生成的腳本和使用IMPDP
---方法1,使用生成的腳本導入----
準備工作:
①確保目標數據庫中有test用戶(名稱必須一致),如果沒有這個用戶,在運行腳本過程中會報錯;
grant connect,resource to test identified by test;
②修改腳本文件中的路徑信息
③進入system,運行該腳本
--以下是在沒有創建test用戶的情況下,運行腳本報的錯誤信息
創建用戶後就成功了,之前上網查了下說什麼的都有,其實就是不存在所需用戶
SQL> grant connect,resource to test identified by test;
Grant succeeded.
④測試是否導入成功,可以看到成功導入.
---方法2,通過IMPDP導入----
①創建一個目錄
SQL> CREATE DIRECTORY DIR_TD AS 'F:\OracleAPP\td';
Directory created.
②創建一個測試用戶test2,這個就是IMPDP的好處,可以通過REMAP_SCHEMA指定用戶
SQL> grant connect,resource to test2 identified by test2;
Grant succeeded.
③IMPDP導入(其實腳本最前面的註釋部分也有IMPDP導入的代碼)
impdp "'system/abc123 as sysdba'" directory=DIR_TD dumpfile= 'dmpfile.dmp' transport_datafiles= F:\OracleAPP\td\TBS1.DBF
,F:\OracleAPP\td\TBS2.DBF remap_schema=test:test2
④驗證是否導入成功
總結:儘管說明文檔裏提到rman傳輸表空間的複雜過程,但是實際操作卻非常的簡單,oracle考慮到的很前面,連腳本都自動生成了,繼續努力~.
歡迎光臨我的博客:http://www.fanmeng.net.cn/