oracle資料庫拷貝遷移(oracle11exp表不全問題解決)
Oracle有兩類備份方式:物理備份和邏輯備份,物理備份在此不做詳細介紹,本文只介紹邏輯備份EXP/IMP過程。
1) EXP匯出
在源產品環境命令列sql*plus命令列中或者在DOS(命令列)中,輸入以下命令:
exp 使用者名稱/使用者密碼buffer=64000file=路徑(要先建好路徑)\***.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 |