您好,登錄后才能下訂單哦!
在平時做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)出即可
免責(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)容。