您好,登錄后才能下訂單哦!
在平時做Oracle的備份的時候一般都是做邏輯熱備份,而做邏輯熱備份一般都是使用exp/imp,在這里就簡單的說一說。
使用exp導出數據imp導入數據操作如下:
exp username/password owner=backup file=backup.dmp imp username/password file=backup.dmp ignore=y full=y
在這里解釋一下其中ignore=y表示忽略創建錯誤,繼續后面的操作,這個參數在full=y表示全部導入包括表約束這些內容,這個參數在導入時比較重要。
不過在這里需要注意的一點是在Oracle 11g版本開始后添加了一個新特性當表無數據時,不分配segment,以節省空間,而缺省下這個功能都是開啟的,可以通過以下方法查看:
sql> show parameter deferred_segment_creation;
所以在11g的版本后要使用exp導出時還需要做相應的檢查,當然因為這個特性使得在11g版本使用exp導出時遇到空表就不會導出,這個問題在也有很多的解決方案,當然個人比較認可的方法應該是在導出前關閉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導出即可
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。