Ketika hal yang tidak terduga terjadi, bisnis Anda dapat terpengaruh. Kegagalan hardware, kerusakan database, kesalahan pengguna, dan bahkan serangan berbahaya dapat menimbulkan risiko kehilangan data. Pencadangan database membantu Anda memulihkan dan menjaga bisnis Anda tetap berjalan, bahkan jika terjadi masalah. Jika semuanya berjalan dengan baik, pencadangan database membantu Anda memenuhi persyaratan kepatuhan dan audit dengan memungkinkan Anda memulihkan database titik waktu tertentu di masa lalu.
MySQL mendukung beberapa opsi untuk mencadangkan database Anda, masing-masing dengan kekuatan yang berbeda. Anda dapat memilih kombinasi metode apa pun yang paling sesuai dengan kebutuhan Anda.
Ada dua cara utama untuk mencadangkan database MySQL: fisik dan logis. Cadangan fisik menyalin file data sebenarnya dan cadangan logis menghasilkan pernyataan seperti CREATE TABLE dan INSERT yang dapat membuat ulang data.
Cadangan fisik berisi salinan mentah dari semua file dan direktori saat ada di disk. Jenis cadangan ini cocok untuk database besar karena menyalin file mentah jauh lebih cepat dibandingkan dengan mengambil cadangan logis.
Kelebihan:
Kekurangan:
Beberapa alat pencadangan fisik umum di seluruh ekosistem MySQL
Cadangan logis berisi data dalam database dalam bentuk yang dapat ditafsirkan MySQL sebagai SQL atau sebagai teks terbatas. Fungsi ini adalah representasi database Anda sebagai urutan pernyataan SQL yang dapat dieksekusi untuk membuat ulang objek database dan mengimpor data. Jenis cadangan ini cocok untuk database kecil karena cadangan logis dapat memakan waktu pemulihan yang jauh lebih lama daripada memulihkan cadangan fisik. Jenis cadangan ini juga berguna saat bermigrasi ke atau dari layanan database terkelola di cloud.
Kelebihan:
Kekurangan:
Beberapa alat pencadangan logis umum
Seperti namanya, pemulihan point-in-time membantu Anda memulihkan instance ke titik waktu tertentu. Misalnya, jika error menyebabkan hilangnya data, Anda dapat memulihkan database ke statusnya sebelum error terjadi.
PITR adalah proses dua langkah, yang bergantung pada log biner:
Log biner berisi perubahan yang dilakukan pada instance database, seperti membuat tabel, menyisipkan/memperbarui/menghapus baris, dan lainnya. Misalnya, pencadangan harian Anda berjalan pada pukul 06.00 dan Anda ingin dapat memulihkan instance kapan saja hingga pukul 10.15. Untuk memulihkan status Anda pada pukul 10.15, Anda harus memulihkan cadangan penuh terlebih dahulu dari pukul 06.00, lalu Anda akan memutar ulang peristiwa log biner dari pukul 06.00 hingga 10.15. Langkah ini akan membawa server ke status yang diinginkan pada waktu yang diinginkan.
Log biner diperlukan untuk replikasi dan PITR; log biner sama pentingnya dengan data yang mendasarinya. Log biner perlu dicadangkan secara real time agar efektif dalam perencanaan pemulihan Anda, dan Anda dapat mendownloadnya menggunakan perintah mysqlbinlog.
Contoh:
mysqlbinlog --host=<hostname> --port=<port> --user=<user> --password=<password> --read-from-remote-server --raw --stop-never <binlog_filename> |
The <binlog_filename> akan menjadi file pertama yang didownload, dan mysqlbinlog akan otomatis beralih ke file berikutnya setelahnya. Log biner tersebut ditulis di direktori server saat ini yang menjalankan perintah mysqlbinlog. Anda dapat mengubah nama dan lokasi file menggunakan opsi --result-file. Anda juga dapat menggunakan opsi --stop-never untuk mengaktifkan binlog mysqlbinlog agar tetap terhubung ke server dan mendownload perubahan baru saat ditulis.
Anda dapat mempelajari lebih lanjut dari panduan mysqlbinlog tentang cara terhubung ke server jarak jauh dan mendownload log biner sebagaimana yang ditulis.
Sebagai layanan database terkelola Google Cloud untuk MySQL, Cloud SQL menawarkan pencadangan otomatis dan pemulihan point-in-time (PITR) untuk perlindungan data. Fitur ini diaktifkan secara default dan diperlukan untuk mengaktifkan ketersediaan tinggi (HA) pada instance Cloud SQL untuk MySQL.
Setiap pencadangan Cloud SQL merupakan jenis pencadangan fisik, karena merupakan snapshot yang diambil di Persistent Disk (PD). Cloud SQL menawarkan fleksibilitas untuk membuat pencadangan terjadi secara otomatis, atau Anda dapat mengambilnya secara on-demand kapan saja. Anda tetap dapat mengambil pencadangan logis dengan menggunakan alat pencadangan logis MySQL standar, seperti mysqldump, mydumper, mysqlpump, dan lainnya tanpa mengganggu pencadangan terkelola.
Mari pelajari cara kerja cadangan Cloud SQL.
Cloud SQL menggunakan Persistent Disk (PD) untuk penyimpanan, dan setiap instance Cloud SQL memiliki disk data persisten terpasang untuk menyimpan file dan direktori database.
Cloud SQL menggunakan snapshot PD untuk pencadangan, dan snapshot tersebut merujuk pada status disk data pada titik waktu tertentu. Snapshot pertama PD adalah snapshot lengkap yang berisi semua data tentang PD, snapshot berikutnya bersifat inkremental dan hanya berisi data baru atau data yang dimodifikasi sejak snapshot sebelumnya. Anda dapat menganggap snapshot ini sebagai salinan fisik persistent data disk yang dikelola cloud dan merupakan dasar dari semua fitur pencadangan dan pemulihan Cloud SQL, termasuk PITR.
Cloud SQL menjalankan dua jenis pencadangan terkelola: otomatis dan on demand. Kedua jenis pencadangan tersebut disimpan di lokasi multi-region yang paling dekat dengan instance secara default. Misalnya, jika instance Cloud SQL Anda berada di us-central1, cadangan Anda akan disimpan di multi-region AS secara default. Namun, lokasi default seperti australia-southeast1 berada di luar multi-region dan akan ditempatkan di multi-region terdekat, yaitu asia. Anda juga dapat memilih lokasi kustom untuk cadangan.
Pencadangan otomatis
Pencadangan otomatis dilakukan setiap hari selama periode 4 jam pilihan Anda. Pencadangan dimulai selama periode pencadangan dan dapat berlanjut di luar periode pencadangan hingga prosesnya selesai. Anda dapat mengonfigurasi jumlah cadangan otomatis yang akan dipertahankan, dari 1 hingga 365. Kebijakan retensi default-nya adalah mempertahankan tujuh cadangan terbaru.
Pencadangan sesuai permintaan
Anda juga dapat membuat pencadangan secara on-demand kapan saja. Hal ini berguna jika Anda memerlukan cadangan dan tidak ingin menunggu periode pencadangan. Selain itu, tidak seperti pencadangan otomatis, cadangan on-demand tidak dihapus secara otomatis. Pesan akan tetap ada sampai Anda menghapusnya atau sampai instance-nya dihapus.
Anda dapat memulihkan cadangan ke instance yang sama tempat cadangan tersebut diambil atau ke instance lain dalam project yang sama. Perhatikan bahwa instance target tidak boleh berupa replika baca itu sendiri dan tidak boleh memiliki replika baca pada saat memulihkan cadangan. Hal ini karena replika baca adalah salinan dari instance utama dan menimbulkan risiko bahwa replika akan tidak sinkron dengan yang utama. Setelah itu, Anda dapat menambahkan replika baca kapan saja.
Jika cadangan dipulihkan, PD baru akan dibuat dari snapshot cadangan tersebut dan menghubungkannya ke instance. Database mulai menggunakan disk baru dan melakukan proses pemulihan error MySQL standar sebelum online sebagai database MySQL lengkap yang baru dipulihkan dari snapshot.
Memulihkan ke instance yang sama
Saat Anda melakukan pemulihan dari cadangan ke instance yang sama, Anda mengembalikan data pada instance tersebut ke statusnya saat Anda membuat cadangan.
Memulihkan ke instance yang berbeda
Saat Anda melakukan pemulihan dari cadangan ke instance lain, Anda akan memperbarui data pada instance target ke status instance sumber saat Anda mengambil cadangan.
Penting: Memulihkan cadangan akan menimpa semua data terkini pada instance target, termasuk log pemulihan point-in-time sebelumnya. Data yang ditimpa tidak dapat dipulihkan.
Di Cloud SQL, PITR selalu membuat instance baru yang mewarisi setelan instance sumber, mirip dengan operasi clone instance. Fitur ini mengharuskan pencadangan otomatis dan pemulihan point-in-time (log biner) diaktifkan di instance sumber. Kebijakan retensi default di log biner adalah 7 hari, dan Anda dapat mengonfigurasi periode retensi data dari 1 hingga 7 hari.
PITR dicapai dengan membuat instance baru dari cadangan instance asli dan memutar ulang log biner yang disimpan pada disk data instance asli ke titik tertentu.
Saat melakukan PITR di Cloud SQL, pelanggan dapat memilih untuk meng-clone status instance saat ini atau meng-clone ke stempel waktu di masa lalu.
UI untuk melakukan PITR akan terlihat seperti berikut.
Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.