Displacement of the LOB segments.

Is there a a way to move LOB segment, keeping the segment of the table? The statement:

ALTER table < tab > move lob (< lob >) store as (tablespace < TBS >)

moves not only the LOB segment, but also table segments, so consumes a lot of resources, needs to rebuild indexes etc.

Thank you.

If you move the lob segment, then the data of the line must change because the lob is in a different place. There is no way around that. The row stores a pointer to LOB. Oracle has decided to implement this in a way that makes all change of rowid (you can't influence that).

So, as I said - it's life.

Tags: Database

Similar Questions

  • Calculate the free space of the lob segment / reclaim space?

    Friends...

    DB: 11 GR 2

    OS: Linux

    I am trying shrink lob segment and recover the free space between the business segments.

    This area in Oracle DB is new to me so try to learn and to shrink the segment.

    I went through various metalink doco (386341.1) but not be able to get answers for below...

    Issues related to the:

    1. how much free space is available in the lob segment?

    2 can I assume 'no LOB DATA' as the free space currently and even will be recovered once the segment will be shrunk?

    3. no disadvantage of using "ALTER TABLE... SHRINK SPACE.

    4. is it true if storage segment is 100 GB as many redo will be generated when trying to alter table... shrink the space?

    I'm following the steps below.

    1 find Segment name-> sys_lob123

    2. find the size of storage - > 100 GB

    3. find the size of the LOB data-> 70

    4. find the size of the data not LOB-> 30

    2. the storage size

    Select 'storage' from dba_extents bytes

    where nom_segment = 'sys_lob123. '

    100 GB

    3. the size of the LOB

    Select dbms_lob.getlength (col_lob) in the table_lob;

    70 GB

    4. the size of the LOB data not

    100-70 = 30 GB (i.e. #3 - #2)

    Thanks in advance and enjoy your time looking into this...

    Use DBMS_REDEFINITION to reorganize the LOB segment, it is the best way to retrieve a LOB segment space. Also use the clause "MEANS of COMPRESS" and SECURE LEADER, creating the temp table. There is no reason that you can use the BASIC FILE. It's online process, which means that your app can stay up to... However, make sure that monitor you the database when executing redef, as it can cause conflicts and slow down your application, in which case you must kill the reorg...

    If this process is not feasible or overwhelms you, "ALTER TABLE MOVE" is another option.

    With 'Displacement of Alter table', you need to rebuild all indexes after you move the LOB segment. Don't forget this is an offline process and your application needs a time out while you do this.

    Here is the query to list the 10 LOBs albums in your database-

    fixed line 160

    Col a20 PROPRIETARY format

    Col TABLE_NAME format a30

    Col COLUMN_NAME format a30

    Col nom_segment format a30

    size col 999 999 999 format

    SELECT *.

    FROM (SELECT b.owner,

    b.table_name,

    b.column_name,

    a.segment_name,

    SUM (a.bytes) / (1024 * 1024) "size".

    FROM dba_segments a, b dba_lobs

    WHERE a.segment_name LIKE '% SYS_LOB '.

    AND a.segment_name = b.segment_name

    AND a.owner NOT IN ('SYS', 'SYSTEM', 'GENERAL', "OUTLN")

    B.owner GROUP,

    b.table_name,

    b.column_name,

    a.segment_name

    ORDER BY DESC 5)

    WHERE ROWNUM<>

  • How to move the lob segment in a partitioned table

    My Oracle 11.2, I have a partitioned table that I want to switch to a different tablespace

    After invoking the script, there are still inside for the insensitive lob segment 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 a partitioned table?

    or, is there a package for data move in storage?

    concerning

    ALTER TABLE current_table MOVE PARTITION nom_partition
    TABLESPACE destination_table_space
    LOB (column_name) STORE AS (TABLESPACE current_tablespace);

  • move the lob segment fails with invalid identifier

    Why this fails:

    SQL > desc APPLSYS. WF_INBOUND_TABLE
    Name Null? Type
    ----------------------------------------- -------- ----------------------------
    Q_NAME VARCHAR2 (30)
    MSGID NOT NULL RAW (16)
    CORRID'ART VARCHAR2 (128)
    PRIORITY NUMBER
    NUMBER OF THE STATE
    TIMESTAMP DELAY (6)
    NUMBER OF EXPIRY
    TIME_MANAGER_INFO TIMESTAMP (6)
    NUMBER OF LOCAL_ORDER_NO
    NUMBER OF CHAIN_NO
    NUMBER OF THE CSCN
    DSCN NUMBER
    ENQ_TIME TIMESTAMP (6)
    NUMBER OF ENQ_UID
    ENQ_TID VARCHAR2 (30)
    DEQ_TIME TIMESTAMP (6)
    NUMBER OF DEQ_UID
    DEQ_TID VARCHAR2 (30)
    NUMBER OF RETRY_COUNT
    EXCEPTION_QSCHEMA VARCHAR2 (30)
    EXCEPTION_QUEUE VARCHAR2 (30)
    NUMBER OF STEP_NO
    NUMBER OF RECIPIENT_KEY
    DEQUEUE_MSGID RAW (16)
    USER_DATA SYSTEM. WF_PAYLOAD_T
    SENDER_NAME VARCHAR2 (30)
    SENDER_ADDRESS VARCHAR2 (1024)
    NUMBER OF SENDER_PROTOCOL
    ANYDATA USER_PROP


    SQL > alter table APPLSYS. WF_INBOUND_TABLE move TABLESPACE APPS_TS_TX_DATA;

    Modified table.

    SQL > ALTER TABLE APPLSYS. WF_INBOUND_TABLE MOVE LOB (USER_PROP) STORE DID (TABLESPACE APPS_TS_TX_DATA);
    *
    ERROR on line 1:
    ORA-00904: "USER_PROP": invalid identifier

    user600570 wrote:
    Well, no matter what the type is be, how to move to this segment?

    The segment does not move when the corresponding table is moved to new tablespace?
    At least that's 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 to the table, I guess that's not possible. Oracle only allows LOB to be stored in a separate tablespace as the corresponding table provided that they are defined as the LOBs explicitly during the creation of the table, unlike the LOB created by oracle internally because of the column datatype being ANYDATA as in this case.

  • Movement of the LOB Segment

    I am trying to write a PL/SQL procedure that will move all my lob segments in a tablespace again (this is for when a dev environment is created... lots of storage & compaction of the things endure us in the production takes place then!)

    I know that the SQL is:
    alter table X move lob (name-of-lob) store as tablespace NEWTBS;
    But I want to build these declarations programmatically by querying views user_ or all_. I don't know where to start. If I look in WHERE USER_SEGMENTS, I see segments with names like SYS_LOB0000048001C00017$ $... but I don't know what the table in order to begin to construct the statement "alter table...". ». (In other words, I think I reason that the command ' alter table SYS_LOB0000048001C00017$ $ move lob... ") ("wouldn't be correct).

    Similarly, the SQL will require me to know the name of the lob, I think, and that should be the name of the column in the table. But what view will allow me to extract this information, so I can complete my little building SQL?

    Can someone point me in the right direction please?

    Oh, and also: in WHERE USER_SEGMENTS, I see that I have «LOBSEGMENT "and types of segment"LOBINDEX"... assuming that the above SQL moves lob segments, how can I move the index business?»

    I think that you are looking for the table USER_LOBS (or ALL_LOBS or DBA_LOBS). Who has the TABLE_NAME, COLUMN_NAME and nom_segment. So I expect that you are looking for something like (not tested)

    FOR x IN (SELECT * FROM user_lobs)
    LOOP
      EXECUTE IMMEDIATE
          'ALTER TABLE ' ||
            x.table_name ||
            ' MOVE LOB (' ||
            x.segment_name ||
            ') STORE AS TABLESPACE newtbs';
    END LOOP;
    

    Justin

    Published by: Justin Cave on October 7, 2009 12:03 AM

    Fixed formatting

  • Truncate table removes the corresponding LOB segment of the table or not?

    Hi all

    I have little table with BUSINESS segments, if I pull the table truncated on the table it will purge the LOB segment as well?

    About how long will take to truncate 100 GB LOB segments.

    Thank you

    903787 wrote:
    Hello

    1 Truncate will delete the LOB segment or not?

    It will not erase the LOB segments, but it must release the majority of the allocated space.

    >

    2. If you want to recover the space, we need to run the command, below is correct?

    ALTER TABLE CHANGE LOB (LOB_COLUMN) (SHRINK SPACE);

    Should not be necessary to 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>
    
  • Help understand about values retrieved by Tom Kyte script for my LOB segment

    I have the LOB segment. When I use Tom Kyte show_space script

    ()https://asktom.oracle.com/pls/apex/f?p=100:11:0:P11_QUESTION_ID:14339684180676) have this output:

    Unformatted blocks...             107

    FS1 Blocks (0-25)...               0

    FS2 Blocks (25-50)...               0

    FS3 Blocks (50-75)...               0

    FS4 Blocks (75-100)...               0

    Complete blocks...         859 438

    Total blocks...       1 746 304

    Total number of bytes...  14,305,722,368

    Total MB...          13 643

    Unused blocks...               0

    Unused bytes...               0

    Used in last Ext FileId...               5

    Used in last Ext BlockId...       1 261 056

    Used in last block...             128

    I have only full blocks = 859 438, but Total of blocks = 1 746 304 why so?

    Looks like you chunk's size 16 k - Oracle seems to watch only the headers of piece in this code; so you expect the segment number raw blocks to be twice the space 'blocks', as this report if you are using a size of 8 KB block and a fragment of 16 k size.

    Concerning

    Jonathan Lewis

  • Move the LOB to a new tablespace

    I want the users tablespace LOB to some other tablespace. But when I tried I got the error set-aside. I moved all the objects corresponding to the particular schema, but not the LOB. Can you please explain why Cant I move the LOB. And if you can explain that I want to know the importance of the lob indexex. Thank you in advance.

    SQL > select TABLE_NAME, INDEX_NAME, TABLESPACE_NAME from dba_lobs where owner = 'PC_DOM ';

    TABLESPACE_NAME INDEX_NAME TABLE_NAME
    ------------------------------ ------------------------------ ------------------------------
    PCSF_DOMAIN SYS_IL0000077924C00002$ $ USERS
    PCSF_CPU_USAGE_SUMMARY SYS_IL0000077933C00006$ $ USERS
    PCSF_REPO_USAGE_SUMMARY SYS_IL0000077936C00005$ $ USERS
    PCSF_USER SYS_IL0000077940C00002$ $ USERS
    PCSF_GROUP SYS_IL0000077944C00002$ $ USERS
    PCSF_ROLE SYS_IL0000077948C00002$ $ USERS
    PCSF_DOMAIN_USER_PRIVILEGE SYS_IL0000077952C00002$ $ USERS
    PCSF_DOMAIN_GROUP_PRIVILEGE SYS_IL0000077956C00002$ $ USERS

    8 selected lines.

    SQL > alter table PCSF_DOMAIN move lob (SYS_IL0000077924C00002$) store as (tablespace TS_PC_DOM);
    ALTER table PCSF_DOMAIN move lob (SYS_IL0000077924C00002$) store as (tablespace TS_PC_DOM)
    *
    ERROR on line 1:
    ORA-00942: table or view does not exist

    Do not use segment name of LOB but about the name of the column in the table and qualify the name of the table with the owner of the table if you are not logged in as owner of the table:

    Try:

    alter table PC_DOM.PCSF_DOMAIN move lob () store as ( tablespace TS_PC_DOM );
    

    Each LOB column is materialized with 2 segments:
    -a LOB segment containing LOB data
    -a LOB index that is a structure designed to facilitate access to the LOB data in the LOB segment.

    Edited by: P. Forstmann on 22 July. 2011 20:48

    Edited by: P. Forstmann on 22 July. 2011 20:52

  • Oracle LOB segment

    My database is oracle11g.

    I have the table with a CLOB column. Should I keep the LOB segment in the same tablespace or different tablespace?

    What are the advantages and disadvantages if we keep the LOB segment in tablespace even?
    What are the advantages and disadvantages if we keep the LOB segment in tablespace different?


    I would strongly appreciate it if one can provide comments?

    Concerning

    SB: You may want to reconsider this answer? I'd do it. Ok does not solve you your answer so I'll.

    The answer whether if LOB segments must be stored in a different tablespace reports to a number of issues, among them the size of the LOB, he enters the same block perfectly the LOB data not, and if you wondering other than the LOB columns often and only need to access the LOB on rare occasions.

    If the LOB is stored out of line, then Oracle does not grant it if it is not needed.

    If the LOB is stored in the same tablespace is not relevant. Especially if your data is striped and mirrored as is almost all of the data of these days.

  • ORA-01691: impossible to extend the confusions of lob segment

    Hi all

    11.2.0.1 64-bit

    on DELL R610

    It seemed oracle missed

    I am inserting a large table with LOB pictures with 300,000 lines. I expect not to occupy the 40G drive. So I created 3 data files on the USERS tablespace where my diagram

    by default. From Oracle or the server or according to which of them is the culprit has the limit of 32G per data file even if they are the two 64-bit. This, I do not understand why? I thought

    Only 32-bit OS and Oracle 32bin has limited the maximum size of 32G on each data file? But I found out that now that he has failed on two platform.

    So what I've done is create another 2 data files in the USERS tablespace. Then I insert again, but still, I got ORA-1691. I can see that

    /oradata/USERS1.dbf a 32G size feel we reach the limit, but I don't understand why he did not move for the next 2 dbfs? who were intact

    /oradata/users2.dbf has 2G (original intact)

    /oradata/users3.dbf has 2G (original intact)

    Is oracle not smart enough to see that there are other available data files?

    Please help me shed some light on this confusion

    Thank you very much

    zxy

    Look for error messages in the alert.log

    Is your LOB segment in tablespace even?

    The data files are set to AUTOEXTEND ON?

    Hemant K Collette

  • Could it be? ... Stray LOB segments!

    Oracle 11.2 on Linux.

    When I run the following query I get shows 4 lines of output:
    select  owner, segment_name, partition_name, segment_type, segment_subtype, tablespace_name
      from  dba_segments  
     where  segment_name like '%40231008C%' ;
    
    
    OWNER  SEGMENT_NAME                 PARTITION_NAME  SEGMENT_TYPE  SEGMENT_SUBTYPE  TABLESPACE_NAME
    -----  ---------------------------  --------------  ------------  ---------------  ---------------
    RP     SYS_LOB0040231008C00005$$                    LOBSEGMENT    MSSM             RP             
    RP     SYS_IL0040231008C00005$$                     LOBINDEX      MSSM             RP             
    RP     SYS_LOB0040231008C00006$$                    LOBSEGMENT    MSSM             RP             
    RP     SYS_IL0040231008C00006$$                     LOBINDEX      MSSM             RP             
    Now, try to find what is associated with these LOB, run these 2 queries. No row is returned.
    select  *
      from  dba_lobs
     where  ( segment_name like '%40231008C%' OR
              index_name   like '%40231008C%'  ) ;
    
    
    select  *
      from  dba_indexes
     where  index_name like '%40231008C%' ;
    Is it possible that the original table has been abandoned, and these were left as the index and stray LOB segments?
    Or is there another place I could watch to learn where they belong?

    Thank you
    I.ChiMoon

    Note Oracle Support

    Drop Table does not remove the Blob LobIndex Segment [ID 394442.1]

    If the deleted table is always in the trash then you will always see segments of business for her. Purge of the trash will remove them.

    Kind regards
    Bob

  • ORA-02327: cannot create indexes on the LOB data type expression

    DB 10.2.0.4
    DB 5.2

    I am not able to move lobindex and lobsegment. While try occurs below error

    SQL > ALTER INDEX dev. "" SYS_IL0000718396C00002$ $"REBUILD THE TABLESPACE DATA_TEMP;
    ALTER INDEX dev. "" SYS_IL0000718396C00002$ $"REBUILD TABLESPACE DATA_TEMP
    *
    ERROR on line 1:
    ORA-02327: cannot create indexes on the LOB data type expression

    Thank you

    Published by: user13382934 on October 16, 2012 14:05

    correct syntax is
    ALTER TABLE.

    MOVE the LOB ()
    STORE AS (tablespace );

    Where is a name of the / columns LOB, not the name of the segment. Moving type LOB data will move its indexes as well.

  • java.sql.SQLException: ORA-01691: impossible to extend lob segment

    Hello

    I get the following code:
    java.sql.SQLException: ORA-01691: unable to extend lob segment 
    MI.SYS_LOB0000082688C00020$$ by 128 in tablespace SYSTEM
    I googled and found this thread helpful ORA-01691: impossible to extend lob segment
    alter database datafile '<DATA_FILE_NAME>' autoextend on maxsize unlimited;
    and you can also do the same with the temp tablespace.
    It's my data files. Am I right? If yes then I change all 4 of the following? Also, where can I find the temp tablespace
    select name from v$datafile
    /usr/lib/oracle/xe/oradata/XE/system.dbf
    /usr/lib/oracle/xe/oradata/XE/undo.dbf
    /usr/lib/oracle/xe/oradata/XE/sysaux.dbf
    /usr/lib/oracle/xe/oradata/XE/users.dbf
    Thank you in anticipation

    Published by: Christy h. on December 24, 2011 11:30

    Why the schema object specific MEDICALINTERNATIONAL in the SYSTEM tablespace?; that's reserved for Oracle?

    ALTER database datafile ' / usr/lib/oracle/xe/oradata/XE/system.dbf' autoextend on maxsize unlimited;

  • ALTER table move lob segment of a partition

    How I could move a LOB from a table segment partitioned (11.1 DB)?

    I have after the table script:
    CREATE TABLE COMMON.TEST_AAA2_ARH
    (
      ID           INTEGER,
      TEKST        VARCHAR2(200 CHAR),
      UPDATESTAMP  DATE,
      OBJEKAT      CLOB
    )
    LOB (OBJEKAT) STORE AS (
      TABLESPACE COMMON_ARCHIVE
      ENABLE       STORAGE IN ROW
      CHUNK       8192
      RETENTION
      NOCACHE
      LOGGING)
    TABLESPACE COMMON_ARCHIVE
    LOGGING
    PARTITION BY RANGE (UPDATESTAMP)
    (  
      PARTITION P_201012 VALUES LESS THAN (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS 
        TABLESPACE COMMON_DATA
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),  
      PARTITION P_201101 VALUES LESS THAN (TO_DATE(' 2011-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS 
        TABLESPACE COMMON_DATA
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),  
      PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
        LOGGING
        NOCOMPRESS 
        TABLESPACE COMMON_ARCHIVE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE COMMON_ARCHIVE
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING)
    )
    NOCOMPRESS 
    NOCACHE
    NOPARALLEL
    MONITORING;
    and I would switch USERS tablespace lob segment to the other...

    TNX

    ALTER table move partition lob () store as (tablespace )

    SQL> CREATE TABLE WISSEM.TEST_AAA2_ARH
    (
      ID           INTEGER,
      TEKST        VARCHAR2(200 CHAR),
      UPDATESTAMP  DATE,
      OBJEKAT      CLOB
    )
    LOB (OBJEKAT) STORE AS (
      TABLESPACE EXAMPLE
      ENABLE       STORAGE IN ROW
      CHUNK       8192
      RETENTION
      NOCACHE
      LOGGING)
    TABLESPACE EXAMPLE
    LOGGING
    PARTITION BY RANGE (UPDATESTAMP)
    (
      PARTITION P_201012 VALUES LESS THAN (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS
        TABLESPACE EXAMPLE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),
      PARTITION P_201101 VALUES LESS THAN (TO_DATE(' 2011-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS
        TABLESPACE EXAMPLE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),
      PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
        LOGGING
        NOCOMPRESS
        TABLESPACE EXAMPLE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE EXAMPLE
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING)
    )
    NOCOMPRESS
    NOCACHE
    NOPARALLEL
    MONITORING;
      2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56
    Table created.
    
    SQL> ALTER TABLE WISSEM.TEST_AAA2_ARH MOVE LOB (OBJEKAT) STORE AS (TABLESPACE USERS);
    ALTER TABLE WISSEM.TEST_AAA2_ARH MOVE LOB (OBJEKAT) STORE AS (TABLESPACE USERS)
                       *
    ERROR at line 1:
    ORA-14511: cannot perform operation on a partitioned object
    
    SQL> ALTER TABLE WISSEM.TEST_AAA2_ARH MOVE PARTITION P_201101 LOB (OBJEKAT) STORE AS (TABLESPACE USERS);
    
    Table altered.
    
    SQL> 
    

    Published by: orawiss on May 5, 2011 14:03

  • Error code 70879003: cannot lock the memory segment.

    Hi guys,.

    I am trying to build a program runs on a windows CE of touch screen system and tested the majority of individual components to see that they work on the system and they have all been successful, however when I build and try to run the entire program, I am presented with a popup box saying:

    App failed. Error code 70897003. Cannot lock the memory segment.

    The program then stops completely. I tried to search the web and the forums, but this specific error code is not mentioned anywhere, and the information that I have known impossible to segment errors memory locking has not been very useful and how to solve this problem.

    Any suggestion or help would be very appreciated.

    OK, so I solved the problem myself, it turns out that's not at all a problem of backend, in my front panel I accidentally overlapped 2 resulting in a being placed inside the other tab controls. Move them so they are not stacked and the problem is solved.

    So moral of the story if someone gets this error in the future, check your tab controls are not overlapping / stacked.

Maybe you are looking for