• Masim “Vavai” Sugianto

    Founder PT. Excellent Infotama Kreasindo– perusahaan email services provider (ESP) dan menjadi konsultan pada berbagai instansi pemerintah, korporasi besar, lembaga perbankan dan institusi pendidikan di Indonesia.

    Lebih detail tentang Vavai.




  • Publishing

  • Recent Posts

    • TOEFL ITP Score (Kedua)
    • Bisnis Kelapa Muda
    • Model Usaha
    • Back-End Developer, Front-End Developer & Staff IT Support
    • Markas Excellent Danita
  • Recent Comments

    • medicine-online.estranky.skclankyunderstand-covid-19-and-know-the-tricks-to-avoid-it-from-spreading-----medical-services.html on Instalasi Squid Proxy Server pada OpenSUSE
    • asebg.bigcartel.comcanadian-pharmacy on Instalasi Squid Proxy Server pada OpenSUSE
    • dkyubn.bizwebs.com on Instalasi Squid Proxy Server pada OpenSUSE
    • http://aonubs.website2.me/ on Instalasi Squid Proxy Server pada OpenSUSE
    • canadian pharmacy online on Instalasi Squid Proxy Server pada OpenSUSE
  • Archives

    • April 2022
    • January 2022
    • July 2021
    • June 2021
    • February 2021
    • January 2021
    • December 2020
    • August 2020
    • July 2020
    • April 2020
    • March 2020
    • August 2019
    • July 2019
    • June 2019
    • March 2019
    • February 2019
    • January 2019
    • November 2018
    • October 2018
    • August 2018
    • May 2018
    • April 2018
    • January 2018
    • December 2017
    • July 2017
    • December 2016
    • November 2016
    • April 2016
    • March 2016
    • November 2015
    • July 2015
    • April 2015
    • November 2014
    • October 2014
    • February 2014
    • January 2014
    • December 2013
    • November 2013
    • October 2013
    • September 2013
    • August 2013
    • June 2013
    • May 2013
    • March 2013
    • February 2013
    • January 2013
    • December 2012
    • November 2012
    • October 2012
    • September 2012
    • August 2012
    • July 2012
    • June 2012
    • May 2012
    • April 2012
    • March 2012
    • February 2012
    • January 2012
    • December 2011
    • November 2011
    • October 2011
    • September 2011
    • August 2011
    • July 2011
    • June 2011
    • May 2011
    • April 2011
    • March 2011
    • February 2011
    • January 2011
    • December 2010
    • November 2010
    • October 2010
    • September 2010
    • August 2010
    • July 2010
    • June 2010
    • May 2010
    • April 2010
    • March 2010
    • February 2010
    • January 2010
    • October 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • December 2007
    • November 2007
    • October 2007
    • September 2007
    • August 2007
    • July 2007
    • June 2007
    • May 2007
    • April 2007
    • March 2007
  • Home
  • Bisnis & Marketing
  • Computer & IT Related
  • Lifestyle
  • Publishing
  • Free Stuff
  • About
  • Kontak

Tips Memindahkan MySQL dari Server Fisik ke Server Virtual

February 15, 2010

Pagi ini saya selesai memindahkan sistem dan database MySQL Server dari sistem lama berupa server fisik IBM X Series 3400 ke Server (sementara) HP Proliant ML. Server lama menggunakan sistem operasi openSUSE 11.0 sedangkan server baru menggunakan SUSE Linux Enterprise Server (SLES) 11 JeOS yang menjadi Xen Hypervisor Guest. Sistem fisik dari HP Proliant ML ini menggunakan SLES 11 yang dioptimasi untuk menjadi Xen Hypervisor host.

Mengingat database MySQL Server ini merupakan data yang paling urgent dan digunakan oleh semua department, saya agak paranoid memindahkannya. Proses ujicoba dilakukan selama 2 minggu dengan berbagai metode antara lain :

  1. Proses Dump SQL. Cara ini gagal karena salah satu program aplikasi yaitu program aplikasi penggajian menggunakan data yang dienkripsi. Data yang dienkripsi ini menggunakan karakter dan simbol khusus yang membuat proses dumping menjadi kacau. Daripada satu group perusahaan nggak gajian lebih baik saya batalkan opsi ini ๐Ÿ™‚
  2. Proses Sinkronisasi Database. Proses ini pernah saya lakukan sewaktu memindahkan data SQL Server ke MySQL namun cara ini juga tidak saya ambil karena prosesnya lama dan sinkronisasi hanya berjalan pada tabel, sementara view, stored procedure dan trigger tidak ikut serta.
  3. Replikasi Database. Metodenya adalah menggunakan model master & slave. Setiap perubahan data pada database master akan langsung direplikasi ke database slave. Opsi ini tidak saya ambil karena saya harus mengubah konfigurasi sistem. Opsi ini tetap menjadi pilihan jika cara lain mengalami kegagalan
  4. Manual Copy. Cara ini saya ambil karena salah satu staff IT pernah berhasil melakukannya pada salah satu group perusahaan. Metodenya menggunakan perintah rsync.

Berikut adalah detail proses pemindahan menggunakan sistem manual copy yang saya lakukan :

  1. Siapkan server baru. Install sistem operasi dalam modus seminimal mungkin, itu sebabnya saya menggunakan SLES dengan basis JeOS (Just Enough Operating System), yang bahkan lebih minimalis daripada sekedar install Text Mode
  2. Install package MySQL Database Server di server baru. Saya melakukan instalasi dari DVD SLES 11 menggunakan perintah : zypper in mysql. Instalasi dapat juga dilakukan menggunakan yast
  3. Jalankan Service MySQL Database Server di server baru. Jalankan dengan perintah : service mysql start. Pada saat pertama kali dijalankan, MySQL akan membuat struktur data untuk pertama kali. Setelah selesai, matikan kembali service MySQL tersebut dengan perintah : service mysql stop
  4. Shut down Service MySQL Induk. Kebetulan pada hari Minggu malam tidak ada jadwal kegiatan yang menggunakan database, jadi saya bisa ssh ke kantor untuk melakukan perintah service mysql stop dan kemudian melakukan rsync data ke server baru.
  5. Salin Data. Saya menggunakan perintah rsync untuk menyalin seluruh isi folder /var/lib/mysql dan kemudian memindahkannya ke server baru. Sebagai tindakan berjaga-jaga, saya menempatkan data ini tidak langsung ke /var/lib/mysql di server baru melainkan di salah satu sub folderย  /srv. Sebagai catatan, saya juga menyalin file konfigurasi MySQL server lama yang ada di /etc/my.cnf.

Saat pertama kali mencoba, saya menyalin keseluruhan isi folder namun ternyata service MySQL tidak dapat dijalankan. Saya mengulang proses pemindahan namun membiarkan sub folder mysql (yang berisi tabel mysql, user, hak akses dll) tidak tersentuh. Ternyata cara ini berhasil. Service MySQL bisa dijalankan dan program aplikasi bisa mengaksesnya, hanya saja saya perlu melakukan sinkronisasi data user dan hak akses karena saya tidak menimpa folder data MySQL.

Setelah service MySQL Server berjalan dengan baik, ternyata masih ada 1 masalah tersisa, yaitu user tidak bisa menghapus atau membuat view dengan pesan : Error code 13. Googling beberapa workaround tanpa hasil, saya melakukan investigasi permission folder masing-masing database dan ternyata ada database yang hak akses Read/Writenya dipegang oleh root. Saya mengubah permission aksesnya dan masalahnya dapat terselesaikan.

Saat ini MySQL database server sudah dipergunakan sebagaimana biasanya.

MySQLopenSUSE & SLESplanet-terasi-aggregatorSLESXen Hypervisor
Share

Migrasi Server  / openSUSE & SLES  / Tips, Tricks & Tutorial

Masim Vavai Sugianto
Masim Vavai Sugianto, Tinggal di Bekasi, Bekerja sebagai wirausahawan/Konsultan IT. Penganjur penggunaan sistem Linux dan aplikasi Open Source. Hobby Membaca, Hiking dan Avonturir. Mengembangkan PT. Excellent Infotama Kreasindo sebagai lembaga training dan IT consulting.

You might also like

Bonus Tahunan dari Dividen
June 21, 2019
Perputaran Roda Kehidupan
March 6, 2019
Kumpul Bersama Team Excellent
February 28, 2019

8 Comments


dheche
February 16, 2010 at 8:57 am

saya kok penasaran kenapa dump sql gagal? karna imho, prosedur backup/restore dr dump relatif lebih aman dibanding mengcopy langsung dr filesystem (terutama kalo antara dua db itu berbeda versi)

mungkin sewaktu dump perlu diset charset yg cocok supaya special char yg ada di data nggak kacau ?



Vavai
February 16, 2010 at 9:01 am

Charsetnya sudah diset ke beberapa tipe mas (aku standar pakai UTF-8) tapi gagal maning-gagal maning. Ketahuan gagalnya pas coba di decrypt datanya kacau.

Kalau moving database hosting biasanya aku memang pakai dump tapi kalau data dalam ukuran yang cukup besar dan ada dihadapan, aku ambil berbagai cara.

Anyway, saat ini sih kelihatannya lancar dan nggak ada yang aneh-aneh.



dheche
February 16, 2010 at 1:14 pm

Kalo sampe data asli dg data hasil restore beda, bisa jadi ini bug yg hrsnya dpt prioritas tinggi.
Bisa nggak kira2 saya dpt contoh data (tentunya nggak perlu data asli), supaya saya jg bisa nyoba mereproduksi bug ini ?

/me sedikit khawatir karna selama ini selalu mengandalkan dump unt backup (selain replikasi unt live backup).

Makasih sebelumnya mas



Masim Vavai Sugianto
February 16, 2010 at 3:25 pm

@Dheche,

Hmmh, mungkin akan saya coba salin beberapa isi tabel untuk field tertentu.

Akan saya usahakan mas.



dudi
February 16, 2010 at 10:58 pm

#vavai: saran, mungkin di nomor 4 ada baiknya rsync dilakukan waktu mysql masih hidup. kemudian dilakukan pengulangan rsync dengan kondisi mysql sudah mati. ini akan memperkecil waktu downtime.

#dheche: lagi gak onok kerjaan ta? kene ngewangi aku ae wes.



Vavai
February 17, 2010 at 1:45 am

@Dudi,

Kalau MySQL sedang berjalan, nanti ada pesan soal MySQL sock. Secara prinsip usulannya sudah dilakukan dengan membuat cron jobs backup pada waktu malam/dini hari, cuma tetap ada perintah service mysql stop diawal script backup ๐Ÿ™‚



dudi
February 17, 2010 at 9:19 am

#vavai: owh baru tau kalo akan error di mysql.sock. soalnya dulu pernah coba cara yang sama di firebird gak ada masalah.

err, kalau mysql.sock di exclude dari proses rsync, proses rsyncnya masih mau jalan gak ya? *jadi penasaran*



dheche
February 20, 2010 at 9:49 pm

@dudi: lho mosok perlu diewangi ? gak mampu ta? halah ini kok malah nyampah di tempet orang .. maap oom vavai ๐Ÿ™‚

btw, kalo mau ngurangi waktu downtime, backup pake lvm snapshot baru di rsync.



Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA
Refresh

*

  • Artikel



  • Blogroll

    • DNS Propagation Checker
    • Instagram Photo/Video Downloader
    • PT. Excellent Infotama Kreasindo
  • Publishing

  • Recent Posts

    • TOEFL ITP Score (Kedua)
    • Bisnis Kelapa Muda
    • Model Usaha
    • Back-End Developer, Front-End Developer & Staff IT Support
    • Markas Excellent Danita
    • Pekerjaan Excellent
    • iMac 2021
    • Problem Solving
    • Kolam Mina Padi/Mina Genjer
    • Team Excellent


  • Links Ads

  • Recent Post

    • TOEFL ITP Score (Kedua)
    • Bisnis Kelapa Muda
    • Model Usaha
    • Back-End Developer, Front-End Developer & Staff IT Support
    • Markas Excellent Danita
    • Pekerjaan Excellent
    • iMac 2021
    • Problem Solving
    • Kolam Mina Padi/Mina Genjer
    • Team Excellent
    • Telur Bebek Mentah
    • Kursi Kayu dan Gerobak Angkringan
    • Kebun Pisang Barangan dan Ambon Kuning
    • Ternak Bebek
    • Data Statistik Covid dan Edukasi Media
  • Recent Comments

    • medicine-online.estranky.skclankyunderstand-covid-19-and-know-the-tricks-to-avoid-it-from-spreading-----medical-services.html on Instalasi Squid Proxy Server pada OpenSUSE
    • asebg.bigcartel.comcanadian-pharmacy on Instalasi Squid Proxy Server pada OpenSUSE
    • dkyubn.bizwebs.com on Instalasi Squid Proxy Server pada OpenSUSE
    • http://aonubs.website2.me/ on Instalasi Squid Proxy Server pada OpenSUSE
    • canadian pharmacy online on Instalasi Squid Proxy Server pada OpenSUSE
    • site592154748.fo.team on Instalasi Squid Proxy Server pada OpenSUSE
    • kqwsh.wordpress.com20220516what-everybody-else-does-when-it-comes-to-online-pharmacies on Instalasi Squid Proxy Server pada OpenSUSE
    • canadian rx on Instalasi Squid Proxy Server pada OpenSUSE
    • kwersd.mystrikingly.com on Instalasi Squid Proxy Server pada OpenSUSE
    • canadian prescriptions online on Instalasi Squid Proxy Server pada OpenSUSE