Oracle 12.2使用dbms_redefinition.redef_table過程來重定義表的儲存屬性

eric0435發表於2017-07-18

Oracle 12.2使用dbms_redefinition.redef_table過程來重定義表的儲存屬性,下面的例子將介紹使用redef_table過程來聯機重定義表的儲存屬性,原始表名為test,儲存在pm方案中:

SQL> desc pm.test
Name    Type      Nullable Default Comments
------- --------- -------- ------- --------
AD_ID   NUMBER(6) Y
AD_TEXT CLOB      Y

表test中的LOB資料型別列ad_text使用BasicFile LOB儲存,執行下面的語句來建立索引test_idx

SQL> create index pm.test_idx on pm.test(ad_id) tablespace users;
Index created

表test將按以下規則進行聯機重定義:
.表使用高階行壓縮來進行壓縮
.表的儲存表空間從users變為example
.索引壓縮使用compress 1選項
.索引的儲存表空間也從users變為example
.表中的LOB型別列ad_text使用compress high選項進行壓縮
.LOB型別列ad_text的儲存空間從users變為example
.LOB型別列ad_text變為SecureFiles LOB儲存

聯機重定義操作如下:
1.用要執行聯機重定義操作的使用者登入資料庫

SQL> conn pm/pm@jypdb
Connected.

2.執行dbms_redefinition.redef_table過程

SQL> exec dbms_redefinition.redef_table(uname =>'PM',tname =>'TEST',table_compression_type =>'ROW STORE COMPRESS ADVANCED',table_part_tablespace =>'EXAMPLE',index_key_compression_type =>'COMPRESS 1',index_tablespace =>'EXAMPLE',lob_compression_type =>'COMPRESS HIGH',lob_tablespace =>'EXAMPLE',lob_store_as =>'SECUREFILE');

PL/SQL procedure successfully completed.

3.檢視重定義結果

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2142199/,如需轉載,請註明出處,否則將追究法律責任。

相關文章