溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Oracle下的exp/imp

發(fā)布時間:2020-08-15 18:59:31 來源:網(wǎng)絡(luò) 閱讀:478 作者:往事_Jim_遺 欄目:關(guān)系型數(shù)據(jù)庫

   在平時做Oracle的備份的時候一般都是做邏輯熱備份,而做邏輯熱備份一般都是使用exp/imp,在這里就簡單的說一說。

   使用exp導(dǎo)出數(shù)據(jù)imp導(dǎo)入數(shù)據(jù)操作如下:

exp username/password owner=backup file=backup.dmp
imp username/password file=backup.dmp ignore=y full=y

在這里解釋一下其中ignore=y表示忽略創(chuàng)建錯誤,繼續(xù)后面的操作,這個參數(shù)在full=y表示全部導(dǎo)入包括表約束這些內(nèi)容,這個參數(shù)在導(dǎo)入時比較重要。

   不過在這里需要注意的一點(diǎn)是在Oracle 11g版本開始后添加了一個新特性當(dāng)表無數(shù)據(jù)時,不分配segment,以節(jié)省空間,而缺省下這個功能都是開啟的,可以通過以下方法查看:

sql> show parameter deferred_segment_creation;

所以在11g的版本后要使用exp導(dǎo)出時還需要做相應(yīng)的檢查,當(dāng)然因為這個特性使得在11g版本使用exp導(dǎo)出時遇到空表就不會導(dǎo)出,這個問題在也有很多的解決方案,當(dāng)然個人比較認(rèn)可的方法應(yīng)該是在導(dǎo)出前關(guān)閉deferred_segment_creation的功能然后檢查所有的空表,然后再給找到的所有空表分配空間,操作如下:

sql> alter system set  deferred_segment_creation=false;
sql> select table_name from user_tables where NUM_ROWS=0;
sql> select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

此時再用exp導(dǎo)出即可

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI