Memindahkan datafile pada Oracle 9i (9.2.0.4)

Mungkin sangat sederhana sekali memang, tapi tak apalah. Saya hanya ingin menulis tentang cara memindahkan datafile yang saya lakukan beberapa hari yang lalu pada database Oracle 9i.

Beberapa hari yang lalu saya sempat pusing melihat freespace pada salah satu partisi data (anggaplah nama partisinya itu “/partData”) pada server DTCenter di kantor. Pusing karena freespace hanya tinggal 5% sedangkan pertumbuhannya 1%/hari, berarti saya hanya punya waktu +/- 20 hari lagi. Untuk menambah space tidak bisa secepat itu dikarenakan space yang ada di SAN (storage Area Network) sudah penuh, sehingga diperlukan penambahan yang melibatkan vendor dari SAN.

Sambil pusing, saya coba perhatikan datafile yang ada di partisi “/partData”. Nah… ternyata ada beberapa datafile yang tidak seharusnya berada di situ yaitu datafile index (dari tablespace index). Datafile tersebut (anggap saja namanya) :
- A_IDX1.dbf (2,5 GB),
- A_IDX2.dbf (2,5 GB),
- A_IDX3.dbf (2,5 GB),
- A_IDX4.dbf (2,5 GB),
- A_IDX5.dbf (2,5 GB),
- B_IDX1.dbf (5,1 GB)

Datafile index yang cukup besar (mengingat partisi “/partData” hanya memiliki space 77GB). Datafile ini seharusnya berada pada partisi “/partIndex” (yang juga hanya memiliki space 77GB, namun memiliki freespace sekitar 49%).

Akhirnya saya memutuskan untuk memindahkan datafile index yang cukup besar tersebut (+/- 17 GB) ke “habitatnya” di “/partIndex”. Langkah-langkah yang dilakukan adalah:

  1. Meminta user untuk tidak connect sementara. (mengkill user yang masih connect :D )
  2. shutdown db (buat checkpoint terlebih dahulu)
  3. alter system checkpoint

    kemudian shutdown

    shutdown abort

  4. copy via OS datafile yang akan dipindah A_IDX01.dbf,A_IDX02.dbf, A_IDX03.dbf, A_IDX04.dbf, A_IDX05.dbf, B_IDX01.dbf
  5. cp /partIndex/A_IDX0*.dbf /partData -p
    cp /partIndex/B_IDX0*.dbf /partData -p

  6. lalu di startup mount dulu, jalankan perintah
  7. #sqlplus /nolog
    sql> conn / as sysdba
    sql> startup mount

  8. lalu jalankan perintah
  9. ALTER DATABASE RENAME FILE '/partDATA/A_IDX01.dbf' TO '/partIDX/A_IDX01.dbf'

  10. lalu di shutdown lagi, jalankan perintah
  11. shutdown

  12. lalu di startup secara normal, jalankan perintah:
  13. startup

  14. Setelah database berjalan dengan lancar hapuslah datafile index yang ada di partisi /partIndex dengan menjalankan perintah:
  15. rm -r -f /partIndex/A_IDX0*.dbf
    rm -r -f /partIndex/B_IDX0*.dbf

Demikian mudah-mudahan bisa bermanfaat.

~ by 4j4x on April 20, 2007.

Leave a Reply