Minggu, 09 Oktober 2011

migrasi oracle

Migrasi oracle adalah hal yang lumrah apabila server database dirasa memang perlu pindah. Diantara sekian alasan antara lain adalah :
  1. Berpindah Platform dari OS satu ke OS yang lain
  2. Memecah lokasi data. Aplikasi A mengakses data A di server A, aplikasi B mengakses server database B di server B
  3. server database yang lama rusak :)
Dan beberapa waktu yang lalu saya memiliki pengalaman untuk migrasi database ini.
Alasan perpindahan adalah dikarenakan versi oracle yang lama masih 9.5 dengan OS *indows dimana dirasa dari sisi security nya kurang handal. sehingga di desain lah server yang baru menggunakan OS *nix dengan oracle versi 11.

Saya sendiri sebenarnya bukan DBA dan bukan orang yang bertanggung jawab untuk proses migrasi ini. tetapi dikarenakan banyak aplikasi yang saya maintain mengakses database server yang lama, maka saya harus memastikan aplikasi saya tetap bisa berjalan normal dengan database yang baru.

Dan rasanya kurang afdol bila suatu proses tidak ditambahi dengan tantangan tambahan yaitu :
  1. Tidak boleh ada aplikasi yang down terlalu lama dikarenakan akan mengganggu proses produksi disini.
  2. Migrasi tidak langsung utuh satu database tetapi secara pastial untuk schema schema tertentu
  3. Server yang baru menggunakan SID dan hostname yang berbeda dengan yang lama.
Dengan alasan diatas (terutama nomer 3) lah maka saya harus menyiapkan proses migrasi agar tidak ada gangguan.
Pertama saya mengupdate semua client aplikasi saya dengan oracle client versi 11. tujuannya jelas agar tetap bisa berkomunikasi dengan server yang baru. bagi anda yang belum tahu, oracle client ver 9 tidak bisa mengakses database server ver. 11
Kemudian untuk aplikasi web dan aplikasi desktop lainnya saya siapkan file koneksi ke database yang baru sehingga saat migrasi skenario saya seharusnya tinggal ganti file koneksi dan aplikasi baik web maupun desktop akan berjalan lancar kembali.

Dan tibalah saat migrasi dilakukan... tantangan tambahan muncul saat agenda tambahan yaitu menginstall harddisk tambahan (sekitar 4TB) di server yang baru dilakukan. tujuannya untuk menambah data tampung data yang disimpan. waktu migrasi pun berjalan makin panjang.
Proses import dan export schema berjalan lancar.... database yang baru pun telah up.... tibalah saat nya saya melakukan testing aplikasi...
Dan muncul bermacam macam error di aplikasi saya... hahaha... sebagai lesson learn kepada teman teman semuanya bila ada proses migrasi seperti ini :
  1. Pastikan semua priviledge dari user yang dimigrasikan sama dengan database yang lama.
  2. Pastikan synonym dari tabel tabel yang diakses oleh user tertentu juga terbawa di database yang baru.
  3. Pastikan session dari masing masing user telah ter grant di aplikasi yang baru.
  4. Pastikan DBlink di database yang lama telah terbawa di database yang baru
  5. Ini yang paling penting nih... lebih baik sebelum migrasi lakukan dulu export import database jadi saat migrasi nanti tinggal delta datanya saja yang berpindah. Jadi aplikasi desktop dan web anda sudah yakin pasti jalan dengan database yang baru...
Demikianlah pengalaman pindahan database saya... sebagai informasi akhirnya aplikasi yang saya maintain (usernya lumayan banyak) baru bisa 100% normal kembali H+2 setelah migrasi :) hehehe...

salam ora celar celar (singkatan oracle versi saya :p )