oracle00011,oracle11g 导出表报EXP-00011:table不存在。
oracle11g,在用exp命令備份數(shù)據(jù)庫時,如果表中沒有數(shù)據(jù)報EXP-00011錯誤,對應的表不存在。這導致對應的空表無法備份。
原因:11g默認創(chuàng)建一個表時不分配segment,只有在插入數(shù)據(jù)時才會產(chǎn)生(當然也可以強制分配),以節(jié)省磁盤空間。
對于已經(jīng)存在的空表解決辦法:
就是想辦法讓空表有segment,第一種:可以通過插入數(shù)據(jù)的方式(不想要這些數(shù)據(jù)可以回滾),只要有insert動作就會分配segment;
第二種:就是強制分配:alter table tablename allocate extent;
如果采用第二種可以用以下方法:
1、用以下這句查找空表:select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0;
2、把查詢結(jié)果導出,執(zhí)行導出的語句(是執(zhí)行查詢結(jié)果,不是執(zhí)行你查詢的結(jié)果集,即執(zhí)行alter那個部分);
為了后面創(chuàng)建的表能直接分配segment:
用系統(tǒng)賬戶登錄數(shù)據(jù)庫,修改參數(shù)deferred_segment_creation(11g新增的)。該參數(shù)即指是否延遲創(chuàng)建segment,默認為true。如果想讓表創(chuàng)建時就分配segment,那么就應該修改該參數(shù)為false即alter system set deferred_segment_creation=false。如下所示:
總結(jié)
如果覺得編程之家網(wǎng)站內(nèi)容還不錯,歡迎將編程之家網(wǎng)站推薦給程序員好友。
本圖文內(nèi)容來源于網(wǎng)友網(wǎng)絡收集整理提供,作為學習參考使用,版權(quán)屬于原作者。
總結(jié)
以上是生活随笔為你收集整理的oracle00011,oracle11g 导出表报EXP-00011:table不存在。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 递归到空如何处理,php递归调用
- 下一篇: oracle 回滚空间查询,oracle