oss导出数据为空时怎么处理_数据库导出时有空表导不出的解决方法
oracle11g
,
在用
exp
命令備份數據庫時,
如果表中沒有數據報
EXP-00011
錯誤,
對應的表不存在。
這導致對應的空表無法備份。
原因:
11g
默認創建一個表時不分配
segment
,
只有在插入數據時才會產生
(當然也可以強制分配)
,
以節省磁盤空間。
對于已經存在的空表解決辦法:
就是想辦法讓空表有
segment
,第一種:可以通過插入數據的方式(不想要這些數據可以回滾)
,只
要有
insert
動作就會分配
segment
;
第二種:就是強制分配:
alter?table?tablename
allocate?extent;
如果采用第二種可以用以下方法:
1
、用以下這句查找空表:
select?'alter?table?'||table_name||'?allocate?extent;'?from
user_tables?where?num_rows=0;
2
、把查詢結果導出,執行導出的語句
;
為了后面創建的表能直接分配
segment
:
用系統賬戶登錄數據庫,修改參數
deferred_segment_creation
(
11g
新增的)
。該參數即指是否
延遲創建
segment
,默認為
true
。如果想讓表創建時就分配
segment
,那么就應該修改該參數為
false
即
alter?system?set?deferred_segment_creation=false
。如下所示:
總結
以上是生活随笔為你收集整理的oss导出数据为空时怎么处理_数据库导出时有空表导不出的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jset编写测试vue代码_详解使用je
- 下一篇: python中文注释缩进_Python入