MySQL dan MariaDB menyertakan utilitas mysqldump untuk menyederhanakan proses membuat cadangan database atau sistem database. Menggunakan mysqldump
membuat cadangan logis . Anda hanya dapat menggunakan alat ini jika proses database Anda dapat diakses dan berjalan.
Jika database Anda tidak dapat diakses karena alasan apa pun, Anda dapat membuatcadangan fisik , yang merupakan salinan struktur sistem file yang berisi data Anda.
Instruksi dalam panduan ini berlaku untuk MySQL dan MariaDB. Untuk penyederhanaan, nama MySQL akan digunakan untuk menerapkan keduanya.
Sebelum Anda Mulai
-
Anda akan memerlukan instalasi MySQL atau MariaDB yang berfungsi, dan pengguna database untuk menjalankan pencadangan. Untuk bantuan instalasi, lihat dokumentasi Linode MySQL.
-
Anda memerlukan akses root ke sistem, atau akun pengguna dengan
sudo
hak istimewa.
Mencadangkan Database
mysqldump
sintaks umum perintah adalah:
mysqldump -u [username] -p [databaseName] > [filename]-$(date +%F).sql
mysqldump
meminta kata sandi sebelum memulai proses pencadangan.- Tergantung pada ukuran database, mungkin perlu beberapa saat untuk menyelesaikannya.
- Cadangan database akan dibuat di direktori tempat perintah dijalankan.
-$(date +%F)
menambahkan stempel waktu ke nama file.
Contoh kasus penggunaan meliputi:
-
Buat cadangan seluruh Sistem Manajemen Basis Data (DBMS):
mysqldump --all-databases --single-transaction --quick --lock-tables=false > full-backup-$(date +%F).sql -u root -p
-
Cadangkan database tertentu. Ganti
db1
dengan nama database yang ingin Anda backup:mysqldump -u username -p db1 --single-transaction --quick --lock-tables=false > db1-backup-$(date +%F).sql
-
Cadangkan satu tabel dari database apa pun. Pada contoh di bawah ini,
table1
diekspor dari databasedb1
:mysqldump -u username -p --single-transaction --quick --lock-tables=false db1 table1 > db1-table1-$(date +%F).sql
Berikut rincian mysqldump
opsi perintah yang digunakan di atas:
--single-transaction
:Mengeluarkan pernyataan SQL BEGIN sebelum membuang data dari server.--quick
:Terapkan tabel dumping baris demi baris. Ini memberikan keamanan tambahan untuk sistem dengan RAM kecil dan/atau database besar di mana menyimpan tabel dalam memori bisa menjadi masalah.--lock-tables=false
:Jangan mengunci tabel untuk sesi pencadangan.
Otomatis Pencadangan dengan cron
Entri dapat ditambahkan ke /etc/crontab
untuk menjadwalkan pencadangan basis data secara teratur.
-
Buat file untuk menyimpan kredensial login pengguna root MySQL yang akan melakukan pencadangan. Perhatikan bahwa pengguna sistem yang direktori home-nya menyimpan file ini bisa jadi tidak terkait dengan pengguna MySQL mana pun.
- File:/ home/example_user/.mylogin.cnf
1 2 3
[client] user = root password = MySQL root user's password
-
Batasi izin file kredensial:
chmod 600 /home/example_user/.mylogin.cnf
-
Buat file tugas cron. Di bawah ini adalah contoh cron job untuk mencadangkan seluruh sistem manajemen basis data setiap hari pada jam 1 pagi:
- File:/ etc/cron.daily/mysqldump
1
0 1 * * * /usr/bin/mysqldump --defaults-extra-file=/home/example_user/.my.cnf -u root --single-transaction --quick --lock-tables=false --all-databases > full-backup-$(date +\%F).sql
Untuk informasi lebih lanjut tentang cron, lihat halaman manual thecron(8) andcron(5).
Pulihkan Cadangan
Sintaks umum perintah restorasi adalah:
mysql -u [username] -p [databaseName] < [filename].sql
-
Pulihkan seluruh cadangan DBMS. Anda akan dimintai kata sandi pengguna root MySQL:
Ini akan menimpa semua data saat ini di sistem database MySQLmysql -u root -p < full-backup.sql
-
Kembalikan dump database tunggal. Basis data tujuan yang kosong atau lama harus sudah ada untuk mengimpor data, dan pengguna MySQL yang Anda jalankan perintahnya harus memiliki akses tulis ke basis data tersebut:
mysql -u [username] -p db1 < db1-backup.sql
-
Pulihkan satu tabel, Anda harus memiliki database tujuan yang siap menerima data:
mysql -u dbadmin -p db1 < db1-table1.sql
Informasi Lebih Lanjut
Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.
- Halaman Metode Pencadangan Database MySQL
- mysqldump - Program Pencadangan Basis Data, Manual Referensi MySQL