oracle idl_ub1$,system表空间急剧增大原因分析
system表空間增大是正常的,但急劇增大是不合理的。
1有可能是用戶對(duì)象錯(cuò)誤的放在系統(tǒng)表空間中
2也可能是system表空間的UNDO過大
3還有可能和高級(jí)復(fù)制的空間使用有關(guān)
可通過如下語句查看一下是不是有應(yīng)用的段放到了SYSTEM中:
select OWNER,SEGMENT_NAME,SEGMENT_TYPE,BYTESfrom DBA_SEGMENTSwhere TABLESPACE_NAME='SYSTEM' andOWNER not in ('SYS','SYSTEM')
通過如下查詢語句查看找出系統(tǒng)表空間中占用空間最多的Top9對(duì)象
SELECT *
FROM (SELECT BYTES, segment_name, segment_type, owner
FROM dba_segments
WHERE tablespace_name = 'SYSTEM'
ORDER BY BYTES DESC)
WHERE ROWNUM < 10
高級(jí)復(fù)制會(huì)使用 sys.IDL_UB1$
摘自,Database Administrator’s Guide 第70頁
If you use Advanced Replication and intend to set up a large number of replicated
objects, then you are required to monitor the following data dictionary tables with
the SQL SELECT command:
n ARGUMENT$
n IDL_CHAR$
n IDL_UB1$
n IDL_UB2$
n IDL_SB4$
n I_ARGUMENT1
n I_SOURCE1I$
n SOURCE$
n TRIGGER
If necessary, increase storage parameters to accommodate storage requirements of
large numbers of replicated objects.
系統(tǒng)對(duì)象IDL_UB1$表的含義及作用
在ITPUB上有朋友遇到SYSTEM表空間快速擴(kuò)展的問題
系統(tǒng)表空間異常擴(kuò)展的情況遇到過很多:
有的和用戶表空間或?qū)ο蠓峙洳划?dāng)有關(guān)
有的和高級(jí)復(fù)制的空間使用有關(guān)....
經(jīng)過如下代碼查詢,可以找出系統(tǒng)表空間中占用空間最多的Top9對(duì)象:col segment_name for a25
col owner for a10
SELECT *
FROM (SELECT BYTES, segment_name, segment_type, owner
FROM dba_segments
WHERE tablespace_name = 'SYSTEM'
ORDER BY BYTES DESC)
WHERE ROWNUM < 10
/
這個(gè)朋友的Top9對(duì)象為:1 3082174464 IDL_UB1$TABLESYS
2 63979520 SOURCE$TABLESYS
3 12075008 IDL_UB2$TABLESYS
4 7749632 DEPENDENCY$TABLESYS
5 7356416 I_DEPENDENCY2INDEXSYS
6 6438912 I_DEPENDENCY1INDEXSYS
7 5521408 I_IDL_UB11 INDEXSYS
8 4341760 IDL_SB4$TABLESYS
9 3555328 I_ACCESS1 INDEXSYS
我們注意到占用空間最大的對(duì)象是IDL_UB1$系統(tǒng)表,空間占用近3G,那么這個(gè)表是做什么用的呢?
從sql.bsq中我們可以找到這個(gè)表的創(chuàng)建語句:create table idl_ub1$ /* idl table for ub1 pieces */
( obj# number not null, /* object number */
part number not null,
/* part: 0 = diana, 1 = portable pcode, 2 = machine-dependent pcode */
version number, /* version number */
piece# number not null, /* piece number */
length number not null, /* piece length */
piece long raw not null) /* ub1 piece */
storage (initial 10k next 100k maxextents unlimited pctincrease 0)
/
idl_ub1$表是用來存儲(chǔ)PL/SQL的代碼單元的,包括DIANA等,IDL在這里代表Interface Definition Language.
這個(gè)對(duì)象的含義可以從Ixora找到一點(diǎn)提示:It is an intermediate language in which the structure of database tables and the logic of PL/SQL program units can be consistently represented as attributed trees. Oracle uses the DIANA IDL, which comes from compilers for the Ada programming language. DIANA stands for Descriptive Intermediate Attributed Notation for Ada. Anyway, this is one of four tables in the data dictionary used to store the DIANA for PL/SQL program units, and the database objects that they reference.
在高級(jí)復(fù)制中會(huì)用到這個(gè)表,所以可能導(dǎo)致這個(gè)表快速增長(zhǎng),在Oracle10g之前,高級(jí)復(fù)制需要考慮的事情的確很多。
請(qǐng)參考:
總結(jié)
以上是生活随笔為你收集整理的oracle idl_ub1$,system表空间急剧增大原因分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle找到表的位置,查看Oracl
- 下一篇: dnetc.exe是什么进程 dnetc