Oracle Imp時(shí)候 表空間暴漲一例
幫助一個(gè)同事導(dǎo)數(shù)據(jù)。
數(shù)據(jù)來源 Oracle10g R2 exp程序。
數(shù)據(jù)大小11g。
創(chuàng)建用戶,創(chuàng)建表空間,添加數(shù)據(jù)文件32G,然后使用imp開始導(dǎo)數(shù)據(jù)。
下面開始描述現(xiàn)象。
之前已經(jīng)知道該表位分區(qū)表,但是imp進(jìn)程開始幾個(gè)小時(shí)之內(nèi)都是沒有導(dǎo)入進(jìn)度的,只看到導(dǎo)入字體之后就沒有界面輸出了。但是數(shù)據(jù)文件在不停的上漲。
最后30G的數(shù)據(jù)文件全部寫滿,報(bào)錯(cuò)空間不足退出。
于是很詫異這個(gè)事情。納悶兒了數(shù)十分鐘,想著先把表結(jié)構(gòu)看看,且忽略索引,約束等看看有啥門道。
搞這個(gè)之前,在三思的群里面說了一句這個(gè)事情,結(jié)果問題得到求證,三思同學(xué)很是高調(diào)的說,他就用幾KB的dmp文件,就可以使用我1T的表空間。
吼吼,于是,使用imp indexfile的語法,把建表語句看看,原來見表語句中,如下語句非常多,
PCTFREE 10
PCTUSED 0 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 45646512313245 FREELISTS 1
FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
然后這個(gè)表本身還是個(gè)分區(qū)表,啊,我的天,怪不得建表的時(shí)候,導(dǎo)數(shù)據(jù)之前就要運(yùn)行良久,原來建表語句要申請(qǐng)那么多空間。
知道問題原因,搞定就Easy了,先把index文件內(nèi)容修改下,所有的initial都改成0,讓他使用默認(rèn)值,然后執(zhí)行建表語句,再使用ignore的方式調(diào)用imp。如下:
導(dǎo)入表定義
imp dq/dq@ora111 file=conficker.dmp full=y buffer=1024000 indexfile=index
導(dǎo)入數(shù)據(jù)
imp dq/dq@ora111 file=conficker.dmp full=y buffer=1024000 ignore=y FEEDBACK=500
順利完成操作。。。。。。
相關(guān)文章:
1. Oracle中PL/SQL單行函數(shù)和組函數(shù)詳解2. 全面解析Oracle developer的異常處理機(jī)制3. MyBatis-Plus多表聯(lián)合查詢并且分頁(yè)(3表聯(lián)合)4. MybatisPlus自定義Sql實(shí)現(xiàn)多表查詢的示例5. DB2獲取當(dāng)前用戶表、字段、索引等詳細(xì)信息6. MySQL高級(jí)特性——數(shù)據(jù)表分區(qū)的概念及機(jī)制詳解7. Oracle 處理json數(shù)據(jù)的方法8. mysql中如何查看表空間9. MySQL連表查詢分組去重的實(shí)現(xiàn)示例10. Mysql 如何實(shí)現(xiàn)多張無關(guān)聯(lián)表查詢數(shù)據(jù)并分頁(yè)
