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
Published by: orawiss on May 5, 2011 14:03
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>
Tags: Database
Similar Questions
-
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
How to move this lob segment in a partitioned 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;
or, is there a package for data move in storage?
concerningALTER TABLE current_table MOVE PARTITION nom_partition
TABLESPACE destination_table_space
LOB (column_name) STORE AS (TABLESPACE current_tablespace); -
ALTER table move online in an encrypted tablespace
Hello
Our DBA want to put all our data in encrypted storage.
Once they create encrypted tablespaces, we will have to do «alter table move online...» "orders for encrypted storage space around the tables.
Has anyone here done already? Keeps the table moved really 'on-line' (available at query/insert/update) during the move? Or will we have to wait some time stop/downtime while the tables are moved?
What about the tables with long or CRAFT?Thank you!
KSandberg and to add to the recall of John that only ITO tables can be moved online, if the table needs to be moved offline the indexes would be invalid until rebuilt. If the table is an IOT I suggest you rebuild the index online after the move because even if the indexes are always used the logical ROWID is more pointing to the correct location and access of the index will be less effective that will you rebuild the index.
- -
The dbms_redefinition package could be an alternative solution if you need to move the tables no - ITO online.
- -
HTH - Mark D Powell.
-
ALTER table move &; shrink space
Hello
What is the difference between alter table move and alter table shrink space orders
Two free blocks not used in the table so that the free space will be given to the tablespace. Can you explain mw in detail or provide some linksSekar_BLUE4EVER wrote:
Hello
What is the difference between alter table move and alter table shrink space orders
Two free blocks not used in the table so that the free space will be given to the tablespace. Can you explain mw in detail or provide some linksALTER table move would make invalid indexes and would require so rebuild you the index. In addition to him, it requires extra space in the tablespace, even that would be used for the creation of the object in double. So if you have a table of 10 GB, you need additional 10 GB free todo table alter move. Whereas in the narrowing is a place, the online operation, does not make you go and rebuild the index because it doesn't make them not disabled, requires no additional space to have.
HTH
Aman... -
in what version of oracle alter table move tablespace introduce
Hello
Can you please provide me with information to present including oracle realease oracle alter table move tablespace nom_tablespace; ...
Thank youActully had this... that first of all we create a table using DEC and then delete the old table and then re-create the table with the original name, this way we'll finally have table > with the same name and data.
But he has disadvantanges that
(1) there is no index, we recreate.
(2) no constraint, we need to redefine tht.Please confirm to me... I am right or wrong here...
Thanks a lot for your answers anantha all the... It's my last request... Please respond
To avoid TELL-benefits mentioned above,
-Export the table or the diagram.
(create two discharges of export.
1. with the owner or table with index = n lines = n - This will export all the objects without indexes, and lines. In other words, the metadata will be exported with regard to a table or schema.
2. with the owner, or a table with index = lines y = y - this will export all the objects from a table or schema.-Remove the table
-Recreate the Table (using export generated from option 1 above)
-Import the data without indexes and constraints are imported. (use of export generated from option 2 mentioned above. use ignore = y,)
constraints and indexes = n = n here.)
-Import(re-Create) indexes and enable constraints (using export produced option 2 rows = n ignore = y)See the Oracle 7 here documentation
-André
-
ALTER table move partition in parallel
Hello
I wish that this command must be run in parallel. is this possible?
ALTER TABLE xyz PARTITION MOVE xyz_p0608 TABLESPACE q208_ts
Thank youparallel_clause Purpose The parallel_clause lets you parallelize the creation of a database object and set the default degree of parallelism for subsequent queries of and DML operations on the object. You can specify the parallel_clause in the following statements: * CREATE TABLE: to set parallelism for the table (see CREATE TABLE). * ALTER TABLE (see ALTER TABLE): o To change parallelism for the table o To parallelize the operations of adding, coalescing, exchanging, merging, splitting, truncating, dropping, or moving a table partition
To parallelize append operations, coalescence, Exchange, merger, splitting, truncate, delete or move a partition table
-
How to move a segment in the SYSAUX tablespace data file
Hello
I had a problem with my tablespace SYSAUX growing due to the history of Stats being not properly purged (lots of hits and articles against this known issue). I have since corrected this problem and I did my SYSAUX tablespace so that it is now less than 3 GB. However, the data file unique original behind this tablespace is still 10 GB and I want to reduce again to below 6 GB.
However as a suspect when I try to reduce the data return file I get ORA-03297 file contains data beyond the requested value of RESIZING.
I checked the table dba_extents for this tablespace, which reveals there are approximately 765 segments over my desired fix of 6 GB.
Q1. If there is only 1 or 2 segments above this mark of 6 GB, how would manually move their bottom?
Q2. I gave have 765 segments above this 6 GB brand, what are the recommendations to achieve the mass movement required of these segments?
Thank you
JimThe Alter Table or Alter Index statement will pass all these types of segment?
Lol some are special items.
Here is what I make sure you test something you care to.
And the double test. Frankly, I would like to change the least possible and if I didn't do it, I would avoid.
It might be easily really much, much more trouble than its worth.LOBINDEX
ALTER table
move lob ( ) store (tablespace ); NESTED TABLE
A nested table can be moved to a different tablespace only by moving his table containing storage target.
(Move the parent table, which is only necessary.)PARTITON TABLE
ALTER partitioned table move partition part_2 tablespace
; LOB SEGMENT
ALTER TABLE owner.table_name MOVE LOB (column_name) STORE AS (nom_tablespace);
CLUSTER
I'm not sure.
INDEX PARTITION
example of
ALTER INDEX SYS. I_STREAMS_APPLY_SPILL_MSGS_PT1 CHANGE DEFAULT USERS TABLESPACE ATTRIBUTES;
PARTITION OF LOB
ALTER table
partition of moving
lob ( ) store as (tablespace ); See also - online redefinition of tables
http://Oracle.Su/docs/11g/server.112/e10595/tables007.htm
Oracle Database 10 g Release 2 online data reorganization & redefinition
http://www.Oracle.com/technetwork/database/features/availability/HA-10gR2-online-reorg-TWP-131644.PDF
http://jhdba.WordPress.com/2009/05/19/purging-statistics-from-the-SYSAUX-tablespace/
Best regards
mseberg
-
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:
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).alter table X move lob (name-of-lob) store as tablespace NEWTBS;
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 you903787 wrote:
Hello1 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>
-
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.
-
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<>
-
Partitioned table of LOB - àen SECUREFILE?
Dear administrators,
My version of DB - 11.1.0.7
I need to convert storage LOB in BASIC NAVIGATION (and also to enable compression Adv LOB) on a partitioned table (Hash, 64 partitions). Table of the LOB chunk size size - 8 GB, segment - 1.2 to
I am familiar with dbms_redef for these conversions on non partitioned tables. I know too, redefine a LOB table partitions. But is there a way to achieve BASIC SECUREFILE conversion on a table partitioned using the DBMS_REDEF?
I have not found much info on this on oracle docs or other sources on the internet. Nobody don't know or don't know of this process? Thanks for your help.
Post edited by: DBA112
orclz > create table lobtab store (c2 c1 and number, clob) lob (c2) as partition by hash (c1) partitions 4 basicfile;
Table created.
orclz > create table inttab store (c2 c1 and number, clob) lob (c2) as securefile partition by hash (c1) partitions 4;
Table created.
orclz > alter table lobtab add constraint primary key lpk (c1);
Modified table.
orclz > insert into lobtab values(1,'abc');
1 line of creation.
orclz > dbms_redefinition.start_redef_table (user, 'lobtab', 'inttab') exec.
PL/SQL procedure successfully completed.
orclz > dbms_redefinition.finish_redef_table (user, 'lobtab', 'inttab') exec.
PL/SQL procedure successfully completed.
orclz >
-
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 identifieruser600570 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.
-
Move the partition of the table and get ORA-14006: invalid partition name
I'm using oracle 11.2.0.4 and I am trying to move a partitioned table to one tablespace to another. I checked may times and I have the correct table name and the name of the partition. However, I get the error ora-14006.
Can see everything what could be the problem?
SQL > ALTER TABLE GWPROD. QRY_TES_ROLLINGCUREDITS MOVE PARTITION 201112 TABLESPACE GW_PROD_T2 PARALLEL (DEGREE 4) NOLOGGING;
ALTER TABLE GWPROD. QRY_TES_ROLLINGCUREDITS MOVE PARTITION TABLESPACE GW_PROD_T2 PARALLEL (DEGREE 4) NOLOGGING 201112
*
ERROR on line 1:
ORA-14006: invalid partition name
Thanks in advance.
Names that begin with numbers are not legal partition names. A fool created by placing them between double quotes. You will need to do the same.
-
Move the data from the partitions again tablespace - direct table filled by ETL
Hello
We have a large composite table date-range/hash partitioned table (using time partitioning 11.2.0.3 range)
1 partition for each month and each such partition 4 under separate partitions.
We want to move some data from most significant storage but also direct table and inserted in all the days as part of the data warehouse and large table want to ensure
operations below result in errors in the data loading procedure
Suppose also should not take long to run lines 40 million or more each month.
Select *.
Of user_tab_partitions
Where table_name = 'CUSTOMER_TRANSACTION '.
And nom_partition like 'SYS % '.
- (1) Alter table retailer_transaction and rename partition < nom_partition > CUST_PART_ < YYYYMM >
- (2) tablespace create dedicated for the month of the affected partition
- ((3) alter table retailer_transaction move tablespace subpartition < sys... > < partition_tablespace > created in 2) above
ALTER table retailer_transaction change the default attributes for the partition < CUST_PART < YYYYMM > < tablespace in 2 above > tablespace)
4 global index which would eventually rebuild afterwards due to the transition if movement makes no valid.
Several local bitmap indexes that belong to partitions.
Thoughts?
Thank you
I agree in a good store of data, everything should be according to the best practices ETL or guideline. I guess it is a FACT table, because it's big enough. A method that I can share (followed in the real world big DW) is "ELP" IE Partition Exchange loading. You can find the basic architecture of the Internet.
The basic architecture is as
The source (in your case partitioned) Table--> (unpartitioned) intermediate Table--> Table possible target (partitioned)--> the cleaning activities (and overtime).
You can use any ETL tool for this (I won't mention any other reasons).
Later, you can delete the original table and use that new table as your FACT table, your application will be available all the time. There are drawbacks as most uses of double-spaced, other than normal ETL these work will take certain amount of resources so that other ALS etc. In addition, if you load a few current days during these activities you plan / program accordingly.
Your demo is also fine, but regular ETL may fail because you rename the partitions (some uses of ETL tool partition name, in case you ever ELP) also unusable global indexes can cause failure (you have local too?).
Maybe you are looking for
-
Sometimes, my Mac is unable to find other devices on my Wi - Fi
Sometimes and for periods of time, my MacBook does not all devices on my Wi - Fi with the exception of the Time Capsule and himself. When he arrives, he can't see the Time Capsule and himself. So continues Internet connection, but I can no longer con
-
T60 does not recognize xp disc in the cd drive
What could cause this? Trying to install XP from the CD including defective HD have been replaced. BIOS recognize the new drive to HD & CD, but then error 'no valid OS found. By Lenovo Article here I've disabled dual mode for cpu & have the CD-ROM dr
-
Window used for 2 years and a half window then simply update, now system say this not genuine window?
-
BlackBerry Smartphones helps a rookie please
I have a tools user disk with my curve which does not on my pc (Vista). I tried to download the appropriate program in the downloads section, but it does not load. Error message States "a problem has been experienced...". "but doesn't say what! Som
-
BlackBerry smartphones cannot update BlackBerry Curve 8520 5.0
I am a new BlackBerry user, then I begin to use Curve 8520 version 4.6.1.314 4.2.0.135 with 22519E9E PIN platform. I am located in the Philippines and my provider is Globe Telecom. My problem is that I can't update my device to 5.0. I tried using the