傳輸表空間--使用Rman方式

使用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備份(數據庫,歸檔日誌)這裏我全部備份一遍.

age_thumb[1]

image3_thumb

3,真正的操作來了,這是rman傳輸表空間的精髓所在,話說oracle爲用戶考慮的真多,執行這條語句後oracle會自動的創建一個臨時數據庫,使用備份還原數據庫,然後再將我們需要的表空間修改爲只讀,通過datapump工具導出表空間元數據,最後會刪除臨時數據庫,只留下我們需要的元數據,表空間文件和腳本文件

tablespace destination 爲導出的表空間元數據及數據文件存放路徑

auxiliary destination 爲臨時數據庫數據路徑

rman的日誌信息很好,從中能瞭解到具體做了哪些事情,非常詳細!

image

4,運行成功後,將所需數據(F:\OracleAPP\td)複製到目標數據庫中,複製到目標服務器的F:\OracleAPP\td下面

age_thumb[9]

ge_thumb[12]

5,剩下的工作就全部在目標服務器上面了,這裏有2種方式將數據導入,運行生成的腳本和使用IMPDP

---方法1,使用生成的腳本導入----

準備工作:

①確保目標數據庫中有test用戶(名稱必須一致),如果沒有這個用戶,在運行腳本過程中會報錯;

grant connect,resource to test identified by test;

②修改腳本文件中的路徑信息

ge_thumb[14]

③進入system,運行該腳本

--以下是在沒有創建test用戶的情況下,運行腳本報的錯誤信息

mage15_thumb

創建用戶後就成功了,之前上網查了下說什麼的都有,其實就是不存在所需用戶

SQL> grant connect,resource to test identified by test;

Grant succeeded.

mage27_thumb

④測試是否導入成功,可以看到成功導入.

mage30_thumb

---方法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

mage18_thumb

④驗證是否導入成功

mage21_thumb

mage24_thumb

總結:儘管說明文檔裏提到rman傳輸表空間的複雜過程,但是實際操作卻非常的簡單,oracle考慮到的很前面,連腳本都自動生成了,繼續努力~.

歡迎光臨我的博客:http://www.fanmeng.net.cn/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章