Cadangan MySQL

Panduan ini akan membantu Anda membuat cadangan penuh database MySQL tanpa mematikan sistem Anda. Panduan ini ditulis dan diuji oleh tim devops Navixy, sehingga Anda dapat mempercayainya sebagai solusi yang telah terbukti bekerja.

Instruksi ini berlaku untuk MySQL versi 8.xx (kurang dari atau sama dengan 8.0.29) dan 5.xx. Instruksi ini ditulis untuk, diuji pada, dan dapat diterapkan pada OS berikut:

  • Ubuntu 18.04, 20.04

  • Debian 9, 10, 11

Untuk OS dan versi perangkat lunak lainnya, instruksi ini dapat diterapkan dan disesuaikan atas risiko Anda sendiri.

Yang Anda butuhkan untuk membuat cadangan penuh database MySQL tanpa mematikan sistem:

  • Sambungkan volume tambahan pada disk terpisah yang akan digunakan untuk menyimpan cadangan.

  • Dapatkan kredensial pengguna MySQL yang sudah ada atau buat pengguna khusus untuk cadangan

  • Semua operasi harus dilakukan sebagai pengguna dengan hak root, atau menggunakan sudo.

Di bawah ini kita akan memeriksa lebih detail langkah-langkah yang perlu Anda lakukan.

Membuat pengguna

Sebagai contoh kita akan membuat pengguna bernama bkpuser dengan hak minimum yang cukup untuk membuat cadangan penuh dan kata sandi s3cret.

Pertama Anda perlu masuk ke konsol MySQL dengan hak administratif, contoh:

mysql -uroot -p

Kemudian, di konsol MySQL, masukkan perintah yang spesifik untuk versi MySQL yang berbeda:

MySQL 5.xx

MySQL 8.xx

Volume cadangan

Sekarang kita perlu menghitung ukuran volume tambahan yang akan digunakan untuk menyimpan cadangan.

Untuk menentukan ukuran volume yang diperlukan untuk cadangan database, Anda perlu mengetahui ukuran database saat ini dan mengalikannya dengan 1,5.

Jika database Anda berada di lokasi default yang ditetapkan saat menginstal server MySQL, Anda perlu menjalankan perintah berikut dengan hak root:

Jika Anda memiliki lokasi database kustom, Anda perlu menentukan path database sebagai argumen untuk perintah lokasi, yaitu:

Contoh perhitungan

Pada tangkapan layar kita dapat melihat bahwa ukuran saat ini database MySQL adalah 181 GB. Oleh karena itu, ukuran volume untuk mencadangkan database ini harus setidaknya 181 * 1.5 = 271.5 GB, dibulatkan ke atas menjadi 272 GB

Perhitungan berlaku untuk satu salinan database. Jika Anda berencana menyimpan lebih dari satu salinan cadangan database, ingatlah untuk mengalikan hasil dengan jumlah cadangan yang disimpan.

Perangkat lunak cadangan

Setelah menghubungkan volume baru dan membuat sistem file di atasnya, Anda perlu menginstal perangkat lunak yang diperlukan untuk cadangan database. Perangkat lunak ini disebut https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html. Pertimbangkan untuk menginstalnya menggunakan paket instalasi siap pakai yang tersedia dari repositori Percona XtraBackup.

Instalasi dilakukan melalui paket yang berisi percona-release utilitas konfigurasi.

Pertama-tama, unduh paket ini dari repositori Percona XtraBackup dengan perintah berikut:

Langkah berikutnya adalah menjalankan instalasi paket yang diunduh menggunakan utilitas dpkg. Anda harus root atau menggunakan sudo untuk menjalankan perintah ini:

Sekarang atur repositori yang diperlukan untuk tujuan ini:


Pengecualian untuk Debian 10

Pada Debian 10 langkah di atas mengembalikan sebuah error:

Untuk memperbaiki error ini, Anda perlu mengedit file /etc/apt/sources.list

Buka file ini di editor teks apa pun, misalnya:

Tambahkan baris berikut ke daftar di bagian atas:

Isi file akan terlihat kira-kira seperti ini:

Simpan perubahan pada file lalu jalankan perintah berikut:


Sekarang Anda siap untuk menginstal utilitas cadangan. Untuk melakukan ini, gunakan perintah berikut sebagai root atau sudo:

untuk MySQL versi 5.xx:

untuk versi MySQL 8.xx kurang dari atau sama dengan 8.0.29:

Ini menyelesaikan prosedur instalasi utilitas Percona XtraBackup.

Pembuatan cadangan

Sekarang Anda akan membuat cadangan penuh database menggunakan Percona XtraBackup.

  • perintah cadangan dijalankan pada server yang sama tempat database disimpan

  • dalam contoh di bawah volume cadangan tambahan yang dipasang di /mnt/backups folder

  • seorang pengguna yang telah dibuat sebelumnya bkpuser dengan kata sandi s3cret digunakan untuk terhubung ke database

Setelah menyelesaikan cadangan, Anda perlu menyiapkan salinan database yang disalin agar dapat digunakan. Tanpa operasi ini, database tidak akan bisa dioperasikan.

Sekarang Anda memiliki salinan database yang up-to-date pada saat pembuatannya, dibuat tanpa menghentikan server dan tanpa menghilangkan beban kerja darinya.

Salinan cadangan ini dapat digunakan untuk memulihkan database Anda jika terjadi keadaan darurat.

Last updated

Was this helpful?