An Oracle 12c production database includes tables with a BLOB column. Usually the growth rate is 2GB per week. This is the table create statement:
CREATE TABLE XXX.FILEENTRY
(
FILENAME VARCHAR2(300 CHAR),
FILESIZE NUMBER(20),
FILECONTENT BLOB
)
LOB (FILECONTENT) STORE AS SECUREFILE (
TABLESPACE DATA
ENABLE STORAGE IN ROW
CHUNK 8192
CACHE
LOGGING
STORAGE (
INITIAL 104K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
))
TABLESPACE DATA
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MAXSIZE UNLIMITED
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
MONITORING;
Since some days the LOB increases up to 100GB a day. The LOB which increases that fast is: SYS_LOB0000119621C00011$$:
Owner,Segment name,Segment size (GB)
xxx,FILEENTRY,1,8
xxx,SYS_LOB0000119621C00011$$, 1156,1
The application has a transfer table which only shows the usual input of about 2GB a week. What could be the reason for this growth if this is not coming from the users? Is there a way to check the content of SYS_LOB0000119621C00011$$?
Best Answer
Yes you can first look at dba_lobs view to check which table/column is associated with this segment.
Maybe one huge file has been inserted in your table. You can use DBMS_LOB.GETLENGTH(column_name) to find the size of each lob.