Move LOB segment
Oracle 11.0.1.7:
How can I move the lob segment: I am trying this
CREATE TABLE PART_TMP(
PAYLOAD_ID Number(19,0) NOT NULL,
created_date timestamp(6),
pay blob
LOB ("PAY") STORE AS (DISABLE STORAGE IN ROW TABLESPACE EFE_LOB)
PARTITION BY RANGE (payload_id)
interval (2)
SUBPARTITION BY HASH (payload_id)
SUBPARTITIONS 64(PARTITION PART_TMP_p00 VALUES LESS THAN (1));
alter table part_tmp move subpartition SYS_SUBP28243 update indexes; --This works
--But this doesn't work. Is this the right way of moving LOB segment? Looks like Lobs segment doesn't move with above command.
alter table part_tmp move LOB(pay) subpartition SYS_SUBP28243 update indexesI need to move SUBPARTTION and associated LOB SUBPARTITION. Could someone please help?
There is a table which has a LOB and there are lot of deletes and updates happening daily .
I need to shrink the space. When I use:
alter table lob_test modify lob (data) (shrink space);
It throws an error cannot use shrink clause on this table. Table as no function based indexes and segment space management for this tablespace is auto.
Can any one tell what is the best approach to reclaim the space.
Can any one tell can I use the alter table move online or needs downtime.
Thanks
Similar Messages
-
How to move lob segment in partitioned table
On my Oracle 11.2, I have a partitioned table wich I would like to move to another tablespace
After invoking script, there's still unmoved lob segment withing table
CREATE TABLE BONGO.AAA_3
ID NUMBER,
DATUM DATE,
OBJEKAT BLOB
TABLESPACE BONGODATA_HUGE
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
LOGGING
PARTITION BY RANGE (DATUM)
PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
LOGGING
NOCOMPRESS
TABLESPACE BONGODATA_HUGE
LOB (OBJEKAT) STORE AS
( TABLESPACE BONGODATA
ENABLE STORAGE IN ROW
CHUNK 8192
RETENTION
NOCACHE
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;how to move this lob segment in partitioned table?
or, is there some package for data move within tablespaces?
regardstnx...
now, I have another problem..
I have a nested table within partitioned table, and I'm trying to move it to another tablespace.
I tried to move child table (of nested type colum), but I didn't succedeed... -
Move lob segment fails with invalid identifier
Why does this fail:
SQL> desc APPLSYS.WF_INBOUND_TABLE
Name Null? Type
Q_NAME VARCHAR2(30)
MSGID NOT NULL RAW(16)
CORRID VARCHAR2(128)
PRIORITY NUMBER
STATE NUMBER
DELAY TIMESTAMP(6)
EXPIRATION NUMBER
TIME_MANAGER_INFO TIMESTAMP(6)
LOCAL_ORDER_NO NUMBER
CHAIN_NO NUMBER
CSCN NUMBER
DSCN NUMBER
ENQ_TIME TIMESTAMP(6)
ENQ_UID NUMBER
ENQ_TID VARCHAR2(30)
DEQ_TIME TIMESTAMP(6)
DEQ_UID NUMBER
DEQ_TID VARCHAR2(30)
RETRY_COUNT NUMBER
EXCEPTION_QSCHEMA VARCHAR2(30)
EXCEPTION_QUEUE VARCHAR2(30)
STEP_NO NUMBER
RECIPIENT_KEY NUMBER
DEQUEUE_MSGID RAW(16)
USER_DATA SYSTEM.WF_PAYLOAD_T
SENDER_NAME VARCHAR2(30)
SENDER_ADDRESS VARCHAR2(1024)
SENDER_PROTOCOL NUMBER
USER_PROP ANYDATA
SQL> alter table APPLSYS.WF_INBOUND_TABLE move TABLESPACE APPS_TS_TX_DATA;
Table altered.
SQL> ALTER TABLE APPLSYS.WF_INBOUND_TABLE MOVE LOB(USER_PROP) STORE AS (TABLESPACE APPS_TS_TX_DATA);
ERROR at line 1:
ORA-00904: "USER_PROP": invalid identifieruser600570 wrote:
Well, whatever the type happens to be, how to I move this segment?Doesn't the segment move when the corresponding table is moved to new tablespace?
At least that is what I see.
SQL> select * from v$version ;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
SQL> create table t nologging as select * from applsys.wf_inbound_table where 1 = 2 ;
Table created.
SQL> select dbms_metadata.get_ddl('TABLE','T') from dual ;
DBMS_METADATA.GET_DDL('TABLE','T')
CREATE TABLE "APPS"."T"
( "Q_NAME" VARCHAR2(30),
"MSGID" RAW(16),
"CORRID" VARCHAR2(128),
"PRIORITY" NUMBER,
"STATE" NUMBER,
"DELAY" TIMESTAMP (6),
"EXPIRATION" NUMBER,
"TIME_MANAGER_INFO" TIMESTAMP (6),
"LOCAL_ORDER_NO" NUMBER,
"CHAIN_NO" NUMBER,
"CSCN" NUMBER,
"DSCN" NUMBER,
"ENQ_TIME" TIMESTAMP (6),
"ENQ_UID" NUMBER,
"ENQ_TID" VARCHAR2(30),
"DEQ_TIME" TIMESTAMP (6),
"DEQ_UID" NUMBER,
"DEQ_TID" VARCHAR2(30),
"RETRY_COUNT" NUMBER,
"EXCEPTION_QSCHEMA" VARCHAR2(30),
"EXCEPTION_QUEUE" VARCHAR2(30),
"STEP_NO" NUMBER,
"RECIPIENT_KEY" NUMBER,
"DEQUEUE_MSGID" RAW(16),
"USER_DATA" "SYSTEM"."WF_PAYLOAD_T" ,
"SENDER_NAME" VARCHAR2(30),
"SENDER_ADDRESS" VARCHAR2(1024),
"SENDER_PROTOCOL" NUMBER,
"USER_PROP" "SYS"."ANYDATA"
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING
STORAGE(INITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXEXTENTS 505
PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "APPLSYSD"
OPAQUE TYPE "USER_PROP" STORE AS LOB (
ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
CACHE
STORAGE(INITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXEXTENTS 505
PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))
SQL> select owner, table_name, column_name, segment_name, tablespace_name from dba_lobs
2 where table_name = 'T' ;
OWNER TABLE_NAME
COLUMN_NAME
SEGMENT_NAME TABLESPACE_NAME
APPS T
USER_PROP
SYS_LOB0000365381C00035$$ APPLSYSD
SQL> alter table t move tablespace APPLSYSX ;
Table altered.
SQL> select dbms_metadata.get_ddl('TABLE','T') from dual ;
DBMS_METADATA.GET_DDL('TABLE','T')
CREATE TABLE "APPS"."T"
( "Q_NAME" VARCHAR2(30),
"MSGID" RAW(16),
"CORRID" VARCHAR2(128),
"PRIORITY" NUMBER,
"STATE" NUMBER,
"DELAY" TIMESTAMP (6),
"EXPIRATION" NUMBER,
"TIME_MANAGER_INFO" TIMESTAMP (6),
"LOCAL_ORDER_NO" NUMBER,
"CHAIN_NO" NUMBER,
"CSCN" NUMBER,
"DSCN" NUMBER,
"ENQ_TIME" TIMESTAMP (6),
"ENQ_UID" NUMBER,
"ENQ_TID" VARCHAR2(30),
"DEQ_TIME" TIMESTAMP (6),
"DEQ_UID" NUMBER,
"DEQ_TID" VARCHAR2(30),
"RETRY_COUNT" NUMBER,
"EXCEPTION_QSCHEMA" VARCHAR2(30),
"EXCEPTION_QUEUE" VARCHAR2(30),
"STEP_NO" NUMBER,
"RECIPIENT_KEY" NUMBER,
"DEQUEUE_MSGID" RAW(16),
"USER_DATA" "SYSTEM"."WF_PAYLOAD_T" ,
"SENDER_NAME" VARCHAR2(30),
"SENDER_ADDRESS" VARCHAR2(1024),
"SENDER_PROTOCOL" NUMBER,
"USER_PROP" "SYS"."ANYDATA"
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING
STORAGE(INITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXEXTENTS 505
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "APPLSYSX"
OPAQUE TYPE "USER_PROP" STORE AS LOB (
ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
CACHE
STORAGE(INITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXEXTENTS 505
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))
SQL> select owner, table_name, column_name, segment_name, tablespace_name from dba_lobs
2 where table_name = 'T' ;
OWNER TABLE_NAME
COLUMN_NAME
SEGMENT_NAME TABLESPACE_NAME
APPS T
USER_PROP
SYS_LOB0000365381C00035$$ APPLSYSX
SQL> drop table t purge ;
Table dropped.If you want to be able to move the segment to a different tablespace than the table, I guess that is not possible. Oracle only allows LOBs to be stored in separate tablespace than the corresponding table provided they are defined as LOBs explcitly during table creation, unlike the LOB created by oracle internally as a result of column datatype being ANYDATA as in this case. -
Dropping a Spatial LOB segment
Hi guys,
I´m trying to reduce the size of my datafile. but oracle spatial creates a LOB segment in this tablespace and I´m having trouble to move or drop it. Anybody here have any suggestion regarding this ?
the LOB segment is called SYS_IL0000078552C00003$$
Thanks in advance,
FelipeHi Felipe,
What do you exactly want to do? Reorganizing your tablespace or ...?
regards, Andreas
btw: The SYS_IL0000078552C00003$$ you can't rename! The name is different in any database. -
Hi all,
I'm working with 11gR2 version in RAC environment with 2 nodes. I'm creating the schemes on my new database with empty tablespaces and 100Mb of initial free space. I'm having an error on the creation of this table:
CREATE TABLE "IODBODB1"."DOCUMENTOS"
( "ID_DOC" NUMBER NOT NULL ENABLE,
"ID_APP" NUMBER(5,0) NOT NULL ENABLE,
"ID_CLS" NUMBER(6,0) NOT NULL ENABLE,
"CREATE_FEC" DATE NOT NULL ENABLE,
"LAST_MODIFIED_FEC" DATE NOT NULL ENABLE,
"DOC_NAME" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"DOC_SIZE" NUMBER NOT NULL ENABLE,
"DOC_DATA" BLOB NOT NULL ENABLE,
"CLASE_FORMATO_FORMATO" VARCHAR2(150 BYTE),
"REGULAR_NAME" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"USUARIO" VARCHAR2(25 BYTE),
"USUARIO_LEVEL" VARCHAR2(5 BYTE)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "ODBODB_TBD_DADES"
LOB ("DOC_DATA") STORE AS BASICFILE (ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 10 NOCACHE LOGGING STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))
PARTITION BY LIST ("ID_APP")
SUBPARTITION BY RANGE ("ID_DOC")
PARTITION "PTL_DOCUMENTOS_FICTICIO" VALUES (0) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "ODBODB_TBD_DADES"
LOB ("DOC_DATA") STORE AS BASICFILE (ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 10 NOCACHE LOGGING STORAGE(BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))
(SUBPARTITION "PTR_DOCUMENTOS_FICTICIO" VALUES LESS THAN (MAXVALUE) LOB ("DOC_DATA") STORE AS (TABLESPACE "ODBODB_TBL_LOBS" ) TABLESPACE "ODBODB_TBD_DADES" NOCOMPRESS ) );
PARTITION "PTL_DOCUMENTOS_ALFIMG" VALUES (2) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "ODBODB_TBD_DADES"
LOB ("DOC_DATA") STORE AS BASICFILE (ENABLE STORAGE IN ROW CHUNK 32K PCTVERSION 10 NOCACHE LOGGING STORAGE(BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))
(SUBPARTITION "STR_DOCUMENTOS_ALFIMG" VALUES LESS THAN (MAXVALUE) LOB ("DOC_DATA") STORE AS (TABLESPACE "BEALFIMG_TBL_ODB" ) TABLESPACE "BEALFIMG_TBD_ODB" NOCOMPRESS )
The error is:
ORA-03252: initial extent size not enough for LOB segment
I can't understand how Oracle can't allocate enough extents to create the LOB segment, and I don't know to which LOB segment it refers because the sqlplus don't mark it with the error.
Any ideas about this issue?
Thanks in advance!
dbajugPlease, forget this post, I feel dumb... The LOB segment need to have same size of the rest of partition...
-
Truncate table will delete the corresponding LOB segment of table or not ?
Hi All,
I have few table with LOB segments, if i fire the truncate table on those table will it purge the LOB segment as well ?
Approximately how much time will take to truncate 100gb LOB segments.
Thanks903787 wrote:
Hi ,
1.Truncate will delete the LOB segment or not ?It won't delete the LOB segments but it should release most of the allocated space.
>
2.To reclaim space we need to run the below command, is it correct ?
ALTER TABLE <table_name> MODIFY LOB (LOB_COLUMN) (SHRINK SPACE);
Should not be needed in 11.2:
SQL> select * from v$version;
BANNER
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for 32-bit Windows: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
SQL> select count(*) from user_segments;
COUNT(*)
0
SQL>
SQL> create table t(x clob);
Table created.
SQL> select segment_name, segment_type, bytes
2 from user_segments;
SEGMENT_NAME SEGMENT_TYPE BYTES
T TABLE 65536
SYS_IL0000030908C00001$$ LOBINDEX 65536
SYS_LOB0000030908C00001$$ LOBSEGMENT 65536
SQL>
SQL> insert into t select lpad(segment_name,8192) from dba_segments;
6312 rows created.
SQL> commit;
Commit complete.
SQL>
SQL> select segment_name, segment_type, bytes
2 from user_segments;
SEGMENT_NAME SEGMENT_TYPE BYTES
T TABLE 393216
SYS_IL0000030908C00001$$ LOBINDEX 65536
SYS_LOB0000030908C00001$$ LOBSEGMENT 53477376
SQL>
SQL> truncate table t;
Table truncated.
SQL>
SQL> select segment_name, segment_type, bytes
2 from user_segments;
SEGMENT_NAME SEGMENT_TYPE BYTES
T TABLE 65536
SYS_IL0000030908C00001$$ LOBINDEX 65536
SYS_LOB0000030908C00001$$ LOBSEGMENT 65536
SQL>
SQL> alter table t modify lob(x) (shrink space);
Table altered.
SQL>
SQL> select segment_name, segment_type, bytes
2 from user_segments;
SEGMENT_NAME SEGMENT_TYPE BYTES
T TABLE 65536
SYS_IL0000030908C00001$$ LOBINDEX 65536
SYS_LOB0000030908C00001$$ LOBSEGMENT 65536
SQL> -
Can I make a LOB segment tablespace 'READ ONLY' so no backup?
Greetings
Environment: Oracle 11.2.0.3 on Solaris 10.5
LOB newbie here.
I am currently supporting a database, but not the application, that is loading fairly large XML files into CLOB columns. Today I have 121 LOBSEGMENTs taking up about 1GB of space and in the same tablespace as the owner table.
I understand that the CLOB data will not be changing that often.
My issue is now my RMAN backup is much larger and is filling the mount point where the backup files are stored.
I'd like to move the LOBSEGMENT objects to a different tablespace, back it up once and mark the tablespace as READ ONLY so it doesn't get backed up every time.
I am currently doing a full database backup every day and archivelog backups every 4 hours.
Can I use something like: ALTER TABLE 'X' MOVE LOB 'Y' STORE AS TABLESPACE 'Z' ?
Is it then possible to alter the 'Z' tablespace to READ ONLY and not affect the user's ability to update the other parts of the table?
Other alternatives are most welcome!!
Thanks very much!!
-garyThanks for the quick response.
I don't want you to give up, I'd just like some advice from your experience.
Even though I am working in a test environment I was hesitant to execute the above commands so as not to cause the application to fail as the user is loading the XML data.
I want the tablespace storing the LOBSEGMENTs to be READ ONLY but I wasn't sure if I could specify just the LOBSEGMENT part of a row to be READ ONLY without causing update problems for the other columns in the table.
I realize the new LOBSEGMENT tablespace will be READ ONLY and the original tablespace with the rest of the data will remain READ WRITE.
Also, I'm assuming if the CLOB data ever needs to change I should be able to alter the tablespace back to READ WRITE, have the user make the changes, be sure the new data is backed up and alter the tablespace back to READ ONLY.
Is this how you would handle the situation?
Thanks very much!
-gary -
User_lobs and user_segments view shows different tablespace for lob segment
Hi,
I am trying to move lob in different tablespace for partitioned table.
I used
alter table <table_name> move partition <partition_name> lob(lob_column) store as (tablespace <tablespace_name>);
alter index <index_name> rebuild partition <partition_name> tablespace <tablespace_name>
ALTER TABLE <table_name> MODIFY DEFAULT ATTRIBUTES TABLESPACE <tablespace_name>
ALTER INDEX <index_name> modify default ATTRIBUTES TABLESPACE <tablespace_name>
Database - 10.2.0.5
OS- HP Itanium 11.31
I can see in user_lob_partitions, user_segments and user_part_tables shows me new tablespace information
whereas user_lobs and user_part_indexes shows me different information regarding tablespace.
I checked some documents in metalink but didnt help me.
I think that I am missing something or doing some step wrong.
Please help.
SQL> select partition_name, lob_partition_name, tablespace_name from user_lob_partitions where table_name in ('TRB1_PUB_LOG','TRB1_SUB_ERRS','TRB1_PUB_LOG') ;
PARTITION_NAME LOB_PARTITION_NAME TABLESPACE_NAME
S2000 SYS_LOB_P8585 USAGE_REORG_TBS
S2001 SYS_LOB_P8587 USAGE_REORG_TBS
S2003 SYS_LOB_P8589 USAGE_REORG_TBS
S2004 SYS_LOB_P8591 USAGE_REORG_TBS
S2005 SYS_LOB_P8593 USAGE_REORG_TBS
S2006 SYS_LOB_P8595 USAGE_REORG_TBS
S2007 SYS_LOB_P8597 USAGE_REORG_TBS
S2008 SYS_LOB_P8599 USAGE_REORG_TBS
S2010 SYS_LOB_P8601 USAGE_REORG_TBS
S2011 SYS_LOB_P8603 USAGE_REORG_TBS
S2012 SYS_LOB_P8605 USAGE_REORG_TBS
S2013 SYS_LOB_P8607 USAGE_REORG_TBS
S2014 SYS_LOB_P8609 USAGE_REORG_TBS
S2015 SYS_LOB_P8611 USAGE_REORG_TBS
S2888 SYS_LOB_P8613 USAGE_REORG_TBS
S2999 SYS_LOB_P8615 USAGE_REORG_TBS
S3000 SYS_LOB_P8617 USAGE_REORG_TBS
S3001 SYS_LOB_P8619 USAGE_REORG_TBS
S3004 SYS_LOB_P8621 USAGE_REORG_TBS
S3005 SYS_LOB_P8623 USAGE_REORG_TBS
S3006 SYS_LOB_P8625 USAGE_REORG_TBS
S3007 SYS_LOB_P8627 USAGE_REORG_TBS
S3008 SYS_LOB_P8629 USAGE_REORG_TBS
S3009 SYS_LOB_P8631 USAGE_REORG_TBS
S3010 SYS_LOB_P8633 USAGE_REORG_TBS
S3011 SYS_LOB_P8635 USAGE_REORG_TBS
S3012 SYS_LOB_P8637 USAGE_REORG_TBS
S3013 SYS_LOB_P8639 USAGE_REORG_TBS
S3014 SYS_LOB_P8641 USAGE_REORG_TBS
S3015 SYS_LOB_P8643 USAGE_REORG_TBS
S3050 SYS_LOB_P8645 USAGE_REORG_TBS
SMAXVALUE SYS_LOB_P8647 USAGE_REORG_TBS
32 rows selected.
SQL> select TABLE_NAME,COLUMN_NAME,SEGMENT_NAME,TABLESPACE_NAME,INDEX_NAME,PARTITIONED from user_lobs where TABLE_NAME in ('TRB1_PUB_LOG','TRB1_SUB_ERRS','TRB1_SUB_LOG') ;
TABLE_NAME COLUMN_NAME SEGMENT_NAME TABLESPACE_NAME INDEX_NAME PAR
TRB1_SUB_ERRS GENERAL_DATA_C SYS_LOB0006703055C00017$$ TRBDBUS1LNN1 SYS_IL0006703055C00017$$ YES
TRB1_SUB_LOG GENERAL_DATA_C SYS_LOB0006703157C00017$$ TRBDBUS1LNN1 SYS_IL0006703157C00017$$ YES
TRB1_PUB_LOG GENERAL_DATA_C SYS_LOB0006702987C00014$$ TRBDBUS1LNN1 SYS_IL0006702987C00014$$ YES
SQL> SQL> select unique segment_name ,tablespace_name from user_Segments where segment_name in (select SEGMENT_NAME from user_lobs where TABLE_NAME in('TRB1_PUB_LOG','TRB1_SUB_ERRS','TRB1_SUB_LOG') );
SEGMENT_NAME TABLESPACE_NAME
SYS_LOB0006702987C00014$$ USAGE_REORG_TBS
SYS_LOB0006703055C00017$$ USAGE_REORG_TBS
SYS_LOB0006703157C00017$$ USAGE_REORG_TBS
SQL> select unique segment_name ,tablespace_name from user_Segments where segment_name in (select INDEX_NAME from user_lobs where TABLE_NAME in('TRB1_PUB_LOG','TRB1_SUB_ERRS','TRB1_SUB_LOG') );
SEGMENT_NAME TABLESPACE_NAME
SYS_IL0006702987C00014$$ USAGE_REORG_TBS
SYS_IL0006703055C00017$$ USAGE_REORG_TBS
SYS_IL0006703157C00017$$ USAGE_REORG_TBS
SQL> select unique index_name,def_tablespace_name from user_part_indexes where table_name in ('TRB1_PUB_LOG','TRB1_SUB_ERRS','TRB1_SUB_LOG');
INDEX_NAME DEF_TABLESPACE_NAME
SYS_IL0006702987C00014$$ TRBDBUS1LNN1
SYS_IL0006703055C00017$$ TRBDBUS1LNN1
SYS_IL0006703157C00017$$ TRBDBUS1LNN1
TRB1_PUB_LOG_PK USAGE_REORG_IX_TBS
TRB1_SUB_ERRS_1IX USAGE_REORG_IX_TBS
TRB1_SUB_ERRS_1UQ USAGE_REORG_IX_TBS
TRB1_SUB_ERRS_2IX USAGE_REORG_IX_TBS
TRB1_SUB_LOG_1IX USAGE_REORG_IX_TBS
TRB1_SUB_LOG_PK USAGE_REORG_IX_TBS
SQL> select unique def_tablespace_name from user_part_tables where table_name in ('TRB1_PUB_LOG','TRB1_SUB_ERRS','TRB1_SUB_LOG');
DEF_TABLESPACE_NAME
USAGE_REORG_TBS
Please let me know if some more details required.>whereas user_lobs and user_part_indexes shows me different information regarding tablespace.
do you see different results after starting a new session after the ALTER statements were issued? -
SOA 11g - XML_DOCUMENT lob segment unable to purge
Hi All,
I have SOA 11.1.1.6.0 on Linux x86-64 platform(Oracle Database 11.2.0.3)
I'm using the Purge script/Procedure as advised in Note “Oracle Fusion Middleware (FMW) SOA 11g Infrastructure Database: Installation, Maintenance and Administration Guide [ID 1384379.1]”
But this is not purging XML_DOCUMENT LOB segment which has grown too big. This is causing space issues.
Can somebody advise if they have faced the same issue?
Thanks,
PrashanthGot it.. was successfull too.
How To Free Space From LOB Segments in the SOA Schema [ID 1380989.1] -
Best way to move LOB between database
I am using Oracle 10.2.0.4. Please share your experience what is the best to move LOBs between databases. Lob size is 40 gb. I have tried using data pump, and parallel insert with nologging but it is taking almost 1 hour to transfer 1 gb.
Thanks for any suggestion.N Gasparotto wrote:
For data pump I am using impdp over network_link .Would be much more efficient to copy the file accross the network and then run impdp locally. Did you also tried also parallel impdp ?
Nicolas.Thank I will be trying your suggestion to move the copy. Currently do to space issue I cannot try it but I have already requested for the designated mount point.
I tried using parallel hint. Our sever had 8 cpu so I tried parallel 16. Although current parallelism was 16 ,
worker parallelism was 1. They were only 2 workers and other worker was always waiting. In other words, the two workers did not execute simultaneously. So, I guess data pump did not run parallely.
Should not more than one worker be executing simultaneously for it to run parallel? I did not understand what worker parallelism meant? -
Hi
How is the size of the LOBSEGMENT caluclated? We carried out an insert of around 50 odd columns into a table that contained a CLOB value, but we observed that LOBSEGMENT value was a very huge figure, around 400mb, though the entire data contained in the table would not exceed 50 mb. The LOBSEGMENT has an intial extent of 65536 bytes. If it goes on increasing, what will be its max limit?
Initially, when the clobs were being created, we ran out of table space and therefore the rows did not get created. But the LOBSEGMENT was observed to be around 200 mb in size though there were zero rows in the table.
Also, we did the clob manipulation using DBMS_LOB package and observed that midway during the generation of clob data, the session got killed somehow. And this happened four to five times during the clob creation.
Please help :-)
Thanks,
VinojYou can use DBA_LOBS to link tables and LOB columns:
select table_name, column_name, segment_name
from dba_lobs
where segment_name = <...>The 10 biggest LOB segments with table and column info should be retrieved with:
select * from (
select
l.owner,
l.table_name,
l.column_name,
l.segment_name,
round(s.bytes/1024/1024) as mb
from dba_lobs l , dba_segments s
where l.owner = s.owner
and l.segment_name = s.segment_name
order by s.bytes desc
) where rownum < 11;If you are using SAP you should contact SAP support to make sure any script is also supported by SAP.
Edited by: P. Forstmann on 31 oct. 2011 17:29
Edited by: P. Forstmann on 31 oct. 2011 17:30 -
Should we use LOGGING or NOLOGGING for table, lob segment, and indexes?
We have some DML performance issue on cf contention over the tables that also include LOB segments. In this case, should we define LOGGING on tables, lob segments, and/or INDEXES?
Based on the metalink note < Performance Degradation as a Result of 'enq: CF - contention' [ID 1072417.1]> It looks we need to turn on logging for at least table and lob segment. What about the indexes?
Thanks!>
These tables that have nologging are likely from the application team. Yes, we need to turn on the logging from nologging for tables and lob segments. What about the indexes?
>
Indexes only get modified when the underlying table is modified. When you need recovery you don't want to do things that can interfere with Oracle's ability to perform its normal recovery. For indexes there will never be loss of data that can't be recovered by rebuilding the index.
But use of NOLOGGING means that NO RECOVERY is possible. For production objects you should ALWAYS use LOGGING. And even for those use cases where use of NOLOGGING is appropriate for a table (loading a large amount of data into a staging table) the indexes are typically dropped (or at least disabled) before the load and then rebuilt afterward. When they are rebuilt NOLOGGING is used during the rebuild. Normal index operations will be logged anyway so for these 'offline' staging tables the setting for the indexes doesn't really matter. Still, as a rule of thumb you only use NOLOGGING during the specific load (for a table) or rebuild (for an index) and then you would ALTER the setting to LOGGING again.
This is from Tom Kyte in his AskTom blog from over 10 years ago and it still applies today.
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:5280714813869
>
NO NO NO -- it does not make sense to leave objects in NOLOGGING mode in a production
instance!!!! it should be used CAREFULLY, and only in close coordination with the guys
responsible for doing backups -- every non-logged operation performed makes media
recovery for that segment IMPOSSIBLE until you back it up.
>
Use of NOLOGGING is a special-case operation. It is mainly used in Datawarehouse (OLAP systems) data processing during truncate-and-load operations on staging tables. Those are background or even offline operations and the tables are NOT accessible by end users; they are work tables used to prepare the data that will be merged to the production tables.
1. TRUNCATE a table
2. load the table with data
3. process the data in the table
In those operations the table load is seldom backed up and rarely needs recovery. So use of NOLOGGING enhances the performance of the data load and the data can be recovered, if necessary, from the source it was loaded from to begin with.
Use of NOLOGGING is rarely, if ever, used for OLTP systems since that data needs to be recovered. -
LOB segment size is 2 times bigger than the real data
here's an interesting test:
1. I created a tablespace called "smallblock" with 2K blocksize
2. I created a table with a CLOB type field and specified the smallblock tablespace as a storage for the LOB segment:
SCOTT@andrkydb> create table t1 (i int, b clob) lob (b) store as
t1_lob (chunk 2K disable storage in row tablespace smallblock);
3. I insert data into the table, using a bit less than 2K of data for the clob type column:
SCOTT@andrkydb> begin
2 for i in 1..1000 loop
3 insert into t1 values (mod(i,5), rpad('*',2000,'*'));
4 end loop;
5 end;
6 /
4. Now I can see that I have an average of 2000 bytes for each lob item:
SCOTT@andrkydb> select avg(dbms_lob.getlength(b)) from t1;
AVG(DBMS_LOB.GETLENGTH(B))
2000
and that all together they take up:
SCOTT@andrkydb> select sum(dbms_lob.getlength(b)) from t1;
SUM(DBMS_LOB.GETLENGTH(B))
2000000
But when I take a look at how much is the LOB segment actually taking, I get a result, which is being a total mystery to me:
SCOTT@andrkydb> select bytes from dba_segments where segment_name = 'T1_LOB';
BYTES
5242880
What am I missing? Why is LOB segment is being ~2 times bigger than it is required by the data?
I am on 10.2.0.3 EE, Solaris 5.10 sparc 64bit.
Message was edited by:
Andrei Kübarthanks for the link, it is good to know such thing is possible. Although I don't really see how can it help me..
But you know, you were right regarding the smaller data amounts. I have tested with 1800 bytes of data and in this case it does fit just right.
But this means that there is 248 bytes wasted (from my, as developer, point of view) per block! But if there is such an overhead, then I must be able to estimate it when designing the data structures. And I don't see anywhere in the docs a single word about such thing.
Moreover, if you use NCLOB type, then only 990 bytes fits into a single 2K chunk. So the overhead might become really huge when you go over to gigabyte amounts...
I have a LOB segment for a nclob type field in a production database, which is 5GB large and it contains only 2,2GB of real data. There is no "deleted" rows in it, I know because I have rebuilt it. So this looks like a total waste of disk space... I must say, I'm quite disappointed with this.
- Andrei -
Title animation repeats when I move the segment
Hiya,
I'm very new to FInal Cut Pro X.
I have made a title with the lens flare animation. I set two keyframe markers to make the text enlarge before disappearing. It worked perfectly. Until...
I moved the segment and the animation went haywire. The animation now starts two or three times before the segment has finished playing.
I can't move the segments at all without this happening. My only option seems to be to decide exactly where I want the segment before I work on it. Which can't be correct.
Can anybody help, please?
Thank you.Hi Tom!
Thanks for replying.
Here are two screenshots showing the keyframes I set for one of the titles. I'm using the Lens Flare titles.
When I move the completed title along the timeline it adds extra keyframes in seemingly random positions, which I then have to delete manually. Otherwise they make the individual titles repeatedly flare and change size. Working with six titles is almost impossible because they all behave similarly when I shift them along.
I feel that it might be to do with the fact that the keyframes are stuck to the timeline and not the title segments, but I just don't know
Thanks for your support,
Bart -
Largest tables... LOB Segment
HI,
ina CRM system, we would liket to start a data archiving project... but the 10 largets tables are lob segment.... so how can approch the project in this case?
Regards.Hi,
Note 1438410 explicity indicates:
No documentation is available. We take no responsibility for the
correctness of the scripts and we will not provide any support for
these.
what you have to do is to read the script and figure out how to use it.
However, I have executed the script you mention on the sqlplus prompt and it does not request any sql_id.
Probably you refer to other script.
Nevertheless, the sql_id is an unique identifier for statements (that may or may be in the V$CURSOR) there are statements that retrieve information from the cache or from the history or ...
Usually you identify first an statement you want to analyze, and then you analyze it. Sometimes using the scripts on the mentioned note.
Other times some of those scrips can provide you with the information of "what" sql_ids look at, etc.
Maybe you are looking for
-
Not getting application in Java Web Start
Hello Sir, I wanted to run an application using Java Web Start. So, I created a jnlp file and i have mentioned the necessary jar files and the main class file. when I clicked on the jnlp file, the application is running in the Server using Java Web S
-
Save multiple waveform graphs and data in one Excel File
Hi there, I managed to save data from waveform graph into excel file and saving the plot into excel but individually. I'm aiming to save both the data and the plot in an excel file. May I know how do I do it? I've tried using the Write to Measurement
-
Ironet 1600 is arranged for multiple SSid ?
Hi, I want to buy nr. 2 aironet 1600 for my house (one at first floor, the other on the second floor). I want to turn off the wifi of the router and turn on only the signal of the cisco 1600. It's possible ? I have to set differents channels ? I want
-
Hello ! How I can fade the Browser Symbol borders ? With the old ITS i write a JavaScript in login..html <script language="JavaScript"> function openZK2() { F1= window.open('https://www.xx.de/scripts/wgate/webgui/!', 'ZK2', 'location=no,
-
Value not getting resetted for Node inside Node
Hi All I have created the node structure as below A (Value Node) |_ID (value attribute) |_B (Value Node) |__Val (Value Attribute for Node B) Now the code is as follows for(i = 0 ; i < n ; i++ ){ Ele Aele = createElement Aele.setID("1") nodeA.