1. 程式人生 > >oracle資料庫拷貝遷移(oracle11exp表不全問題解決)

oracle資料庫拷貝遷移(oracle11exp表不全問題解決)

Oracle有兩類備份方式:物理備份和邏輯備份,物理備份在此不做詳細介紹,本文只介紹邏輯備份EXP/IMP過程。

1)       EXP匯出

在源產品環境命令列sql*plus命令列中或者在DOS(命令列)中,輸入以下命令:

exp 使用者名稱/使用者密碼buffer=64000      

file=路徑(要先建好路徑)\***.dmp

log=路徑(要先建好路徑)\***.log

owner=需要匯出表的所有者使用者名稱列表

示例如下:

1. exp exportal_was/exportal_was buffer=64000

2.  file=/u01/app/oradata/portal/users01.dmp  

3.  log=/u01/app/oradata/portal/users01.log

4. owner=exportal_was  

執行完畢後即可在對應的路徑找到對應的資料庫備份dmp檔案。

注:Oracle 11g預設對空表不分配segment,故使用exp匯出Oracle11g資料庫時,空表不會匯出,如果源產品環境資料庫是oracle11版本,執行上述匯出命令之前需要先進行如下處理,在sql*plus中用以下這句查詢空表:

select 'altertable ' || table_name || ' allocate extent(size 64k);'

fromuser_tables

wheretable_name not in

(selectsegment_name from user_segments where segment_type = 'TABLE');

把查詢結果匯出,執行匯出的語句,執行完後即可執行上面exp匯出語句。

2)       IMP匯入

將exp命令匯出的dmp檔案拷貝至目標產品資料庫環境中,在目標產品資料庫環境命令列sql*plus命令列中或者在DOS(命令列)中,輸入以下命令:

imp 使用者名稱/使用者密碼

file=路徑/(匯出的檔案).dmp

fromuser=源資料庫中所有人使用者名稱列表 touser=匯入的使用者名稱列表

示例如下:

1.    imp exportal/exportal

   

2.    file=/u01/app/oradata/portal/users01.dmp  

3.    fromuser=exportal_was touser=exportal