Sunday, December 15, 2013

Migrating a WebLogic Domain from VirtualBox to Cloud


Beberapa minggu yang lalu kami butuh untuk menampilkan showcase WebCenter Portal ke salah satu klien kami. Pada waktu itu development server Nostratech (Bima) saat itu sedang proses maintenance, sehingga tidak dapat digunakan. Setelah mempertimbangkan faktor effort, waktu, biaya, dan bandwidth, akhirnya kami memutuskan untuk memanfaatkan cloud service seperti DigitalOcean untuk showcase tersebut. Prosedurnya yang dilakukan adalah dengan mempersiapkan deployment-nya di lingkungan VirtualBox, dan meng-upload deployment tersebut ke DigitalOcean. 

Sayangnya DigitalOcean tidak mendukung untuk konversi dari VirtualBox, sehingga WebLogic Domain yang di-deploy di VirtualBox harus se-portable mungkin agar dapat dipindah-pindahkan dengan mudah ke lingkungan yang lain tanpa harus melakukan banyak perubahan. Deployment yang saya lakukan di VirtualBox tidak akan didetilkan pada artikel ini karena sudah mengikuti dokumentasi Oracle dikombinasikan dengan konfigurasi Node Manager pada artikel saya sebelumnya.

Namun ada beberapa catatan yang penting agar proses migrasi dapat berjalan dengan mulus:
  1. OS yang digunakan adalah CentOS 5.8 (64-bit), karena OS tersebut adalah image OS yang disediakan oleh DigitalOcean dan OS yang paling dekat relasinya dengan Oracle Enterprise Linux 5.8 yang sudah disertifikasi oleh Oracle.
  2. Install paket RPM oracle-validated melalui Oracle Public Yum Server untuk mempermudah proses instalasi produk-produk Oracle.
  3. Instalasi Oracle Database server dan Oracle WebCenter Portal domain dilakukan pada instance VirtualBox yang berbeda.
  4. Install Oracle Database jangan menggunakan filesystem Oracle ASM, karena akan mempersulit proses migrasinya nanti.
  5. Selalu menggunakan FQDN dalam mereferensi hostname, seperti database host, WebLogic listen address, dan lain-lainnya. Berhubung nantinya akan di-deploy ke DigitalOcean, saya sudah menggunakan penamaan hostname menggunakan domain nostratech.com agar tidak perlu mengubah lagi. Praktik ini juga sangat saya sarankan di manapun, agar deployment yang kita lakukan dapat lebih portable.
  6. Pisahkan lokasi ORACLE_BASE antara Oracle Database (/u03/app/oracle) dengan Oracle WebCenter Portal (/u01/app/oracle).
  7. Sesuaikan rule firewall dengan level keamanan yang Anda inginkan, pada artikel ini tidak akan membahas mengenai rule firewall yang diperlukan.
  8. Pastikan bandwidth uplink yang memadai untuk proses upload DigitalOcean. :)

Proses Backup di VirtualBox


Setelah proses instalasi dan konfigurasi selesai, shutdown seluruh WebLogic Domain beserta proses Database instance-nya. Lakukan langkah-langkah berikut di instance Database:
  1. Catat semua hostname yang diperlukan.
  2. Backup ORACLE_BASE menggunakan user root.
    oracle@db-vbox:~ $ su -
    root@db-vbox:~ # cd /u03/app
    root@db-vbox:/u03/app # tar cvvzpf /home/oracle/MIGRATE/ORACLE_BASE.tar.gz oracle
    root@db-vbox:/u03/app # exit
  3. Backup ORACLE_INVENTORY.
    oracle@db-vbox:~ $ tar cvvzpf ~/MIGRATE/ORAINVENTORY.tar.gz oraIventory
  4. Backup ORADIAG.
    oracle@db-vbox:~ $ tar cvvzpf ~/MIGRATE/ORADIAG.tar.gz oradiag_oracle
  5. Backup oraInst.loc dan oratab.
    oracle@db-vbox:~ $ cp /etc/ora* ~/MIGRATE/

Sementara di instance WebLogic Domain, ikuti langkah-langkah berikut:
  1. Catat semua hostname yang diperlukan.
  2. Backup ORACLE_BASE.
    oracle@portal-vbox:~ $ cd /u01/app
    oracle@portal-vbox:/u01/app $ tar cvvzpf ~/MIGRATE/ORACLE_BASE.tar.gz oracle
    oracle@portal-vbox:/u01/app $ cd /u02/app
    oracle@portal-vbox:/u02/app $ tar cvvzpf ~/MIGRATE/ORACLE_BASE_PRIVATE.tar.gz oracle
  3. Backup ORAINVENTORY.
    oracle@portal-vbox:~ $ tar cvvzpf ~/MIGRATE/ORAINVENTORY.tar.gz oraInventory
  4. Backup ORADIAG.
    oracle@portal-vbox:~ $ tar cvvzpf ~/MIGRATE/ORADIAG.tar.gz oradiag_oracle
  5. Backup BEA_HOMES.
    oracle@portal-vbox:~ $ tar cvvzpf ~/MIGRATE/BEA_HOMES.tar.gz bea
  6. Backup oraInst.loc.
    oracle@portal-vbox:~ $ cp /etc/ora* ~/MIGRATE/

Upload backup tersebut ke masing-masing droplet di DigitalOcean. Kesabaran sangat dibutuhkan pada tahap ini, kemarin saya upload sekitar 4 jam baru selesai. :)

Proses Restore ke DigitalOcean


Selagi menunggu proses upload ke droplet, jangan lupa untuk menginstalasi paket RPM oracle-validated pada kedua droplet tersebut. Setelah proses upload selesai, lakukan langkah-langkah berikut untuk me-restore Database:
  1. Sesuaikan hostname dengan IP yang terkonfigurasi pada droplet.
  2. Restore ORACLE_BASE menggunakan user root.
    oracle@db-droplet:~ $ su -
    root@db-droplet:~ # mkdir -p /u03/app
    root@db-droplet:~ # chown -R oracle:oinstall /u03/app
    root@db-droplet:~ # cd /u03/app
    root@db-droplet:/u03/app # tar xvvzpf /home/oracle/MIGRATE/ORACLE_BASE.tar.gz
    root@db-droplet:/u03/app # exit
  3. Restore ORAINVENTORY.
    oracle@db-droplet:~ $ tar xvvzpf ~/MIGRATE/ORAINVENTORY.tar.gz
  4. Restore ORADIAG.
    oracle@db-droplet:~ $ tar xvvzpf ~/MIGRATE/ORADIAG.tar.gz
  5. Restore oraInst.loc dan oratab.
    oracle@db-droplet:~ $ su
    root@db-droplet:/home/oracle # cp ~/MIGRATE/ora* /etc/
    root@db-droplet:/home/oracle # exit
  6. Reinstall Oracle scripts.
    oracle@db-droplet:~ $ su -
    root@db-droplet:~ # /u03/app/oracle/product/11.2.0/dbhome_1/root.sh
    root@db-droplet:~ # exit
  7. Validasi instalasi dengan startup Database.
    oracle@db-droplet:~ $ . oraenv
    oracle@db-droplet:~ $ lsnrctl start
    oracle@db-droplet:~ $ sqlplus / as sysdba
    SQL> startup
    
Setelah Database sudah valid pada droplet, WebLogic Domain dapat di-restore dengan mengikuti langkah-langkah berikut:
  1. Sesuaikan hostname dengan IP yang terkonfigurasi pada droplet.
  2. Restore ORACLE_BASE.
    oracle@portal-droplet:~ $ su -
    root@portal-droplet:~ # mkdir -p /u01/app
    root@portal-droplet:~ # chown -R oracle:oinstall /u01/app
    root@portal-droplet:~ # mkdir -p /u02/app
    root@portal-droplet:~ # chown -R oracle:oinstall /u02/app
    root@portal-droplet:~ # exit
    oracle@portal-droplet:~ $ cd /u01/app
    oracle@portal-droplet:/u01/app $ tar xvvzpf ~/MIGRATE/ORACLE_BASE.tar.gz
    oracle@portal-droplet:~ $ cd /u02/app
    oracle@portal-droplet:/u02/app $ tar xvvzpf ~/MIGRATE/ORACLE_BASE_PRIVATE.tar.gz
  3. Restore ORAINVENTORY.
    oracle@portal-droplet:~ $ tar xvvzpf ~/MIGRATE/ORAINVENTORY.tar.gz
  4. Restore ORADIAG.
    oracle@portal-droplet:~ $ tar xvvzpf ~/MIGRATE/ORADIAG.tar.gz
  5. Restore BEA_HOMES.
    oracle@portal-droplet:~ $ tar xvvzpf ~/MIGRATE/BEA_HOMES.tar.gz
  6. Restore oraInst.loc menggunakan user root.
    oracle@portal-droplet:~ $ su -
    root@portal-droplet:~ # cp /home/oracle/MIGRATE/ora* /etc/
    root@portal-droplet:~ # exit
  7. Validasi deployment dengan startup WebLogic Domain.
    oracle@portal-droplet:~ $ cd /u02/app/oracle/admin/nodemanager
    oracle@portal-droplet:/u02/app/oracle/admin/nodemanager $ export JAVA_OPTIONS="-DDomainRegistrationEnabled=true"
    oracle@portal-droplet:/u02/app/oracle/admin/nodemanager $ java weblogic.WLST NodeManager.py
    oracle@portal-droplet:/u02/app/oracle/admin/nodemanager $ java weblogic.WLST AdminServer.py

Demikian langkah-langkah sederhana yang saya lakukan untuk berhasil memindahkan deployment WebLogic Domain beserta Database-nya dari lingkungan VirtualBox ke cloud service. Selamat mencoba!

No comments:

Post a Comment