Praktik Terbaik untuk mengambil cadangan server MySQL:
Replikasi MySQL
Setup Replikasi di MySQL. Anda harus mengatur server Master dan Slave. Semua baca-tulis ke DB bisa masuk ke Server Slave Anda. Keuntungan dari memiliki Replikasi adalah Anda dapat mengambil cadangan dari server slave Anda tanpa mengganggu server Master, aplikasi Anda akan terus bekerja pada Master tanpa downtime.
Menggunakan MySQL Dump
Jika kumpulan data Anda kecil (saya sadar "kecil" adalah istilah relatif .. untuk memenuhi syarat, katakanlah <10GB), maka mysqldump mungkin akan berfungsi dengan baik. Mudah, online, dan sangat fleksibel. Hanya beberapa hal yang dapat dilakukan mysqldump: mencadangkan semuanya atau hanya basis data atau tabel tertentu, hanya mengoptimalkan DDL dump untuk pemulihan yang lebih cepat membuat file sql yang dihasilkan lebih kompatibel dengan RDBMS lain dan banyak lagi hal lainnya.
Namun, opsi yang paling penting terkait dengan konsistensi cadangan Anda. Opsi favorit saya adalah: - transaksi tunggal: opsi ini memberikan cadangan yang konsisten, jika (dan hanya jika) tabel menggunakan mesin penyimpanan InnoDB. Jika Anda memiliki tabel MyISAM non-baca-saja, maka jangan gunakan opsi ini saat mencadangkannya. --master-data = 2: opsi ini akan memastikan dump Anda konsisten (dengan melakukan kunci-semua-tabel kecuali Anda telah menambahkan opsi --single-transaction). Opsi --master-data juga mencatat posisi log biner dalam file dump yang dihasilkan (= 2 menyebabkan baris ini menjadi komentar dalam file dump)
Catatan akhir tentang mysqldump: perlu diingat bahwa waktu pemulihan mungkin jauh lebih lama daripada waktu cadangan. Ini akan tergantung pada beberapa faktor, misalnya, berapa banyak indeks yang Anda miliki.
Snapshot LVM
Bagi mereka yang memiliki kumpulan data yang lebih besar, cadangan fisik adalah caranya. Meskipun Anda dapat mengambil cadangan dingin (yaitu, mematikan layanan MySQL, menyalin direktori data, memulai kembali layanan), banyak orang tidak ingin downtime. Solusi favorit saya adalah snapshot. Ini bisa panas (untuk InnoDB) atau memerlukan kunci singkat (untuk MyISAM). Jangan lupa sertakan semua data Anda (sertakan ib_logfiles). Lenz menyediakan utilitas yang bagus untuk membantu dengan ini: http://www.lenzg.net/mylvmbackup/
Menggunakan MySQL Enterprise Backup
Keuntungan menggunakan MySQL Enterprise Backup:
- Cadangan "Hot" dari tabel InnoDB dilakukan sepenuhnya secara online, tanpa memblokir Cadangan hanya tabel atau tablespace tertentu
- Hanya buat cadangan data yang berubah sejak cadangan sebelumnya
- Cadangan Terkompresi - Menghemat penyimpanan hingga 90% dan banyak lagi ..
Referensi:
http://www.mysql.com/products/enterprise/backup/features.html
http://www.mysql.com/products/enterprise/backup.html
Peter Venderberghe
sumber
--single-transaction
tetapi jangan lupa untuk menambahkan--events --routines
dan saya selalu menggunakan--triggers
juga, meskipun itu diaktifkan secara default, karena dapat dinonaktifkan di my.cnf. Saya akan mengatakan itu cukup baik selalu menggunakan ini sebagai praktik standar apakah Anda saat ini memiliki jenis objek dalam database Anda atau tidak.