Tutorial ini akan mambahas cara saya menangani kendala yang terjadi pada salah satu droplet yang ada di akun Digitalocean.
Kasus berawal ketika akan mereset password root dari login Digitalocean, entah kenapa proses resetting password terus gagal. Lebih mengejutkan lagi ketika membuka web yang diinstall di droplet ini, tidak bisa diakses.
Kemudian ketika membuka console yang berada di log in digital ocean, muncul warning:
Looping too fast. throttling execution a little
Seperti di gambar:
Beruntut tidak berhenti, ini kalau di windows seperti proses start yang mentok di booting, tidak masuk ke halaman interface GUI windows, stack di proses booting.
Tutorial ini tentu bagi orang awam seperti saya, yang sehari hari menggunakan windows, tidak begitu faham menggunakan linux. Install vps berbekal tutorial-tutorial atau forum forum yang berserakan di laman mbah google.
Secara singkat, kemudian saya memahaminya bahwa trouble ini terjadi adalah karena systemd yang out of date, entah out of date seperti apa, tapi sudah dinyatakan ini merupakan bugs, karena kasusnya bukan dialami oleh orang perorang, tapi banyak user yang juga mengalaminya. seperti diungkap di laman:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1744333
Merujuk ke pembahasan forum askubuntu.com yang membahas permasalahan ini, untuk menanganinya ada beberapa alternatif, antara lain:
- Upgrade 18.04 LTS
- Install 17.04 or 17.10 (non-LTS)
- Mencoba install systemd package dari ubuntu terbaru. tapi ini tidak aman, bisa merusak sistem yg terinstall.
- Belajar mengcompile systemd, dan menginstall versi terbaru. tapi ini membutuhkan keahlian dan skill yang mumpuni.
Bagi orang awam, saya memilih cara yang saya anggap paling mudah, yaitu membackup file, menyelamatkan data data penting, kemudian membuat droplet baru, atau mungkin kalau kapok, kembali ke shared hosting lagi :-D
Bagaimana cara saya membackup file dan database web?
Adapun langkah-langkah yang saya lakukan, atara lain.
1. Booting dari Recovery ISO.
Sebagaimana disarankan oleh DO, untuk bisa mengakses file pada Operating System yang crash seprti ini, DO menyedeiakan fasilitas recovery. Ini kalau di windows semacam hirens boot.
Caranya:
- Power off dulu droplet.
- Dalam posisi power off, pilih start dari Recovery ISO (Boot from Recovery ISO).
- Setelah pilihan berada di start dari file ISO, power on kembali droplet.
Setelah Power On, anda dapat mengakses droplet dengan mengaksesnya lewat console. Klik icon “Console” yang berada pada kanan atas, di gambar diatas.
Setelah klik Console, akan muncul text seperti ini:
This droplet is booted to the DigitalOcean recovery environment. When you are finished, you may set your Droplet to boot from the local disk again via the DigitalOcean control panel. This rescue environment is based on Ubuntu 18.04. * Network access and SSH have been enabled automatically * * SSH Host keys will NOT match while using this rescue system * Root Password has randomly been set to: exam-ple0-1234-5678 Your are strongly encouraged to use SSH keys. To import your SSH public keys: From Github: ssh-import-id gh: From Launchpad.net: ssh-import-id lp: -------------------------------------------------------------------- 1. Mount your Disk Image [Not Mounted] 2. Check Filesystem 3. Reset Droplet Root Password 4. Configure Keyboard 5. Attempt to 'chroot' into installed system 6. Interactive Shell [/bin/bash] Choose (1-6) and press Enter to continue.
Pada tampilan diatas, kita mendapatkan user root, dan password sementara yang dapat kita gunakan untuk mengakses droplet dalam mode recovery, menggunakan SSH putty, atau SFTP semisal WinSCP atau FileZilla.
2. Menggunakan putty untuk memastikan keberadaan file.
Ketika membuka console, seperti dilakukan pada langkah 1 di atas, kita dapat melihat user root dan password sementara yang dapat kita gunakan.
Kemudian dibawah terdapat beberapa pilihan, antara lain:
1. Mount your Disk Image [/dev/vda1] 2. Check Filesystem 3. Reset Droplet Root Password 4. Configure Keyboard 5. Attempt to 'chroot' into installed system 6. Interactive Shell [/bin/bash] Choose (1-6) and press Enter to continue.
Pada langkah ini kita bila melakukan:
Pertama: Mount hardisk dengan memilih 1, kemudian enter.
Kedua: Memilih 5 untuk masuk ke drive sistem yang menyimpan data file dan databse kita.
Pada langkah ini kita bisa mencoba akses file dengan mengetikan:
cd /var/www/
kemudian
dir
akan menampilkan data file web sodara.
3. Mendownload file web.
Untuk mendownload file, kita menggunakan WinSCP atau SFTP sejenis apa saja.
Kita dapat log in dengan menggunakan user root dan password yang tampil di console, (lihat langkah 2).
Setelah berhasil log in, kita bisa langsung melihat ke folder:
/mnt/var/www/
bisa langsung di download, atau di compress dulu, kemudian di download.
4. Mendownload database
Seperti pada langkah 3, untuk mendownload file database, kita dapat menggunakan WinSCP atau SFTP sejenis apa saja.
Log in dengan menggunakan user root dan password yang tampil di console, (lihat langkah 2).
Tentu perbedaannya setelah berhasil log in, untuk mengakses file database kita dapat mengakses folder:
/mnt/var/lib/mysql/
PERLU DIPERHATIKAN, pada langkah ini, download semua file/folder yang berada di folder:
/mnt/var/lib/mysql/
kecuali folder mysql, ini akn berpengaruh di langkah berikutnya.
5. Konversi file database ke extensi .sql
Pada langkah 4, kita sudah mendownload file database, tapi format database bukan format .sql yang dapat langsung kita inport ke mysql. Untuk mengubah file-file tersebut ke format .sql, langkah yang saya lakukan dengan menginstall easy php, atau bisa juga mungkin dengan software sejenis, semisal; xampp atau appserver.
Langkah pertama, pastikan webserver lokal ini (easyphp) dalam keadaan off, jika sedang berjakan, silahkan stop.
Langkah kedua, buka folder:
C:\Program Files (x86)\EasyPHP-Devserver-17\eds-binaries\dbserver\mysql5717x86x190114120012\data
(ada baiknya backup dulu file2 yang ada di folder ini), kemudian pastekan semua file yang kita dapat dari langkah 4, replace saja, bila ada notifikasi duplikat file.
Langkah ketiga, buka dash board easyphp, jalankan aplikasi, kemudian buka halaman phpmyadmin. anda akan mendapatkandatabase yang yang tadi dipaste.
Langkah empat, silahkan export ke format .sql.
Alhamdulillah, data berhasil kita selamatkan. silahkan install/inport kembali web anda, dan pastikan selalu backup data web kita secara berkala untuk mengantisipasi hal2 yang tidak diinginkan.
Untuk mempermudah pemahaman, saya buatkan video, silahkan dintonton:
Mudah2an bermanfaat.
Referensi:
- Tiket ke DigitalOcean, thanks to Digital Platform Support Specialists; Mandi Barton, Ethan Fox, Sandesh, Jonathan Swayne, Prakash Jha.
- Safe way to upgrade systemd in Xenial?
- Looping too fast. Throttling execution a little
- Youtube: How to make a safe mysql database backup
- MySQL error 1146: “table doesn’t exist” Ketika sedang membackup