MOVE TABLESPACE

Sunday, November 13, 2011 1:54
Posted in category Database, Oracle


 Malam-malam daripada buka thread BB di forum sebelah mending saya share kegiatan malam ini, yang semoga berguna bagi kawan” DBA newbe di luar sana,

Sharing tentang tablespace secara administrasi bisa di baca di rohmad.net, untuk kali ini adalah cara memindahkan tablespace dari sebuah tabel atau index,
Perintah untuk move tablespace secara umum adalah:
1.Tabel tanpa partisi:

ALTER TABLESPACE [SCHEMA].[NAMA_TABEL] MOVE TABLESPACE [NAMA_TABLESPACEBARU];

ex:
Table KOMI di schema DARMA, default tablespace USERS dan ingin dipindahkan di tablespace HMI

ALTER TABLESPACE DARMA.KOMI MOVE TABLESPACE HMI;

2.Tabel dengan partisi:

ALTER TABLESPACE [SCHEMA].[NAMA_TABEL] MOVE PARTITION [NAMA_PARTISI] TABLESPACE [NAMA_TABLESPACEBARU];

ex:
Tabel Bidang di schema DARMA, terdapat partisi PA,TI,PTKM dan default tablespace partisi tersebut adalah USERS dan ingin di pindah ke tablespace BIDANG, (contoh Partisi PA)

ALTER TABLESPACE DARMA.BIDANG MOVE PARTITION PA TABLESPACE BIDANG;

3.Tabel dengan subpartition

Untuk tabel yang memiliki subpartition langkah pertama harus memindahkan subpartition terlebih dahulu dengan perintah:

ALTER TABLESPACE [SCHEMA].[NAMA_TABEL] MOVE SUBPARTITION [NAMA_SUBPARTISI] TABLESPACE [NAMA_TABLESPACEBARU];

ex:
Tabel Proker di schema DARMA, terdapat partisi THN_PENGURUS1 — THN_PENGURUSn dan
subpartition PENGURUS1—PENGURUSn. default tablespace partisi dan subpartition tersebut adalah USERS dan ingin di pindah ke tablespace PROKER,

ALTER TABLESPACE DARMA.PROKER MOVE SUBPARTITION PENGURUS1 TABLESPACE PROKER;

Selanjutnya kita pindah yang partition,

ALTER TABLESPACE DARMA.PROKER MOVE PARTITION PA TABLESPACE PROKER;

ERROR at line 2:
ORA-14257: cannot move partition other than a Range or Hash partition

Lho?!!! @#$%^&*, ternyata berbeda perintah untuk subpartition, ha69x tapi tenang saja saya juga sempat mencari-cari dulu di eyang gugel, dan menemukan perintah seperti ini dan berhasil untuk
saya:

ALTER TABLE [SCHEMA].[NAMA_TABEL] MODIFY DEFAULT ATTRIBUTES FOR PARTITION [NAMA_PARTISI] TABLESPACE [NAMA_TABLESPACEBARU];

Maka perintah untuk memindahakn partisi THN_PENGURUS1:

ALTER TABLE DARMA.PROKER MODIFY DEFAULT ATTRIBUTES FOR PARTITION THN_PENGURUS1 TABLESPACE PROKER;

4.Index tanpa partisi

ALTER INDEX [SCHEMA].[NAMA_INDEX] REBUILD TABLESPACE [NAMA_TABLESPACEBARU];

ex:
Tabel Perpus schema DARMA, terdapat pk_index dengan nama pk_idx_perpus dengan default tablespace USERS dan ingin dipindah ke tablespace PERPUSIDX

ALTER INDEX DARMA.PK_IDX_PERPUS REBUILD TABLESPACE PERPUSIDX;

5.Index dengan partisi

ALTER INDEX [SCHEMA].[NAMA_INDEX] REBUILD PARTITION [NAMA_PARTISI] TABLESPACE [NAMA_TABLESPACEBARU];

ex:
Tabel Bidang di schema DARMA, terdapat partisi PA,TI,PTKM dengan index idx_bid semua partisi
dan default tablespace partisi tersebut adalah USERS dan ingin di pindah ke tablespace BIDANGIDX.

ALTER INDEX DARMA.IDX_BID REBUILD PARTITION PA TABLESPACE BIDANGIDX;

Nama table beserta nama tablespace bisa kita lihat di DBA_SEGMENT,DBA_TAB_PARTITIONS,
contoh script untuk mengenerate script move tablespace pada 1 schema:

ex:
Generate script move tablespace PARTITION untuk schema DARMA, hasil rebuild tabel

SELECT ‘ALTER TABLE ‘||TABLE_OWNER||’.'||TABLE_NAME||’ MOVE PARTITION ‘||PARTITION_NAME||’ TABLESPACE PRODHISTO’ MOVING
FROM DBA_TAB_PARTITIONS
WHERE TABLE_OWNER=’DARMA’
AND TABLE_NAME LIKE ‘%_X’

Ada yang perlu ditanyakan?? Post Comment aja

Related posts:

You can leave a response, or trackback from your own site.

Leave a Reply