11G中有個(gè)新特性,當(dāng)表無(wú)數(shù)據(jù)時(shí),不分配segment,以節(jié)省空間
解決方法:
1、insert一行,再rollback就產(chǎn)生segment了。
該方法是在在空表中插入數(shù)據(jù),再刪除,則產(chǎn)生segment。導(dǎo)出時(shí)則可導(dǎo)出空表。
2、設(shè)置deferred_segment_creation 參數(shù)
?
show parameter deferred_segment_creation
NAME????????????????????????????????
?
TYPE???????
?
VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation??????????? ? boolean???? ? TRUE
SQL> alter system set deferred_segment_creation=false;
系統(tǒng)已更改。
?
SQL> show parameter deferred_segment_creation
NAME????????????????????????????????
?
TYPE???????
?
VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation??????????? ? boolean???? ? FALSE
? |
該參數(shù)值默認(rèn)是TRUE,當(dāng)改為FALSE時(shí),無(wú)論是空表還是非空表,都分配segment。
?
需注意的是:該值設(shè)置后對(duì)以前導(dǎo)入的空表不產(chǎn)生作用,仍不能導(dǎo)出,只能對(duì)后面新增的表產(chǎn)生作用。如需導(dǎo)出之前的空表,只能用第一種方法。
?
搞了我好久,最后查到這個(gè)方法。
?
先查詢一下當(dāng)前用戶下的所有空表
?
select table_name from user_tables where NUM_ROWS=0;
?
用以下這句查找空表
?
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
?
把查詢結(jié)果導(dǎo)出,執(zhí)行導(dǎo)出的語(yǔ)句
?
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;' ----------------------------------------------------------- alter table AQ$_AQ$_MEM_MC_H allocate extent; alter table AQ$_AQ$_MEM_MC_G allocate extent; alter table AQ$_AQ$_MEM_MC_I allocate extent; alter table AQ$_AQ_PROP_TABLE_T allocate extent; alter table AQ$_AQ_PROP_TABLE_H allocate extent; alter table AQ$_AQ_PROP_TABLE_G allocate extent; alter table AQ$_AQ_PROP_TABLE_I allocate extent; alter table AQ$_KUPC$DATAPUMP_QUETAB_T allocate extent; alter table AQ$_KUPC$DATAPUMP_QUETAB_H allocate extent; alter table AQ$_KUPC$DATAPUMP_QUETAB_G allocate extent; alter table AQ$_KUPC$DATAPUMP_QUETAB_I allocate extent;
?
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;' ----------------------------------------------------------- alter table AQ$_SYS$SERVICE_METRICS_TAB_T allocate extent; alter table AQ$_SYS$SERVICE_METRICS_TAB_H allocate extent; alter table AQ$_SYS$SERVICE_METRICS_TAB_G allocate extent; alter table AQ$_SYS$SERVICE_METRICS_TAB_I allocate extent;
?
然后再執(zhí)行
?
exp 用戶名/密碼@數(shù)據(jù)庫(kù)名 file=/home/oracle/exp.dmp log=/home/oracle/exp_smsrun.log
轉(zhuǎn)自: http://blog.sina.com.cn/s/blog_48e13c9e0101aec7.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
