Apakah ada teknik untuk menggunakan mysqldump (atau perintah serupa) untuk membuat cadangan inkremental atau diferensial untuk MySQL?
Apakah ada teknik untuk menggunakan mysqldump (atau perintah serupa) untuk membuat cadangan inkremental atau diferensial untuk MySQL?
Jawaban:
Anda dapat mensimulasikan pencadangan inkremental dengan mengaktifkan dan kemudian mencadangkan log biner. Lihat http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html di bawah "Membuat Pencadangan Tambahan dengan Mengaktifkan Binary Log."
Checkout Xtrabackup (oleh Percona) jika Anda menggunakan InnoDB. Itu bisa melakukan incrementals.
http://www.percona.com/docs/wiki/percona-xtrabackup:xtrabackup:incremental?rev=1289183209
Bersulang
Saya menggunakan binlog tetapi itu bukan solusi akhir dan saya cenderung mendapati diri saya mengandalkan snapshot juga.
Ada dua alasan utama untuk ini:
Saya memiliki sejumlah besar snapshot baru-baru ini tidak ada kompresi atau diferensial. Saya bereksperimen dengan diff dan menemukan bahwa bahkan dengan opsi seperti tidak ada konteks perbedaan yang dihasilkan lebih besar.
Tanpa mencoba semua alternatif, hal terbaik yang saya temukan adalah rdiff. Ini mengurangi mereka menjadi sekitar 5% dari ukuran untuk saya dan ketika kemudian dikompres dengan xz ke zona 1%.
Meskipun file tanda tangan rdiff tidak kompres dengan baik karena mereka adalah koleksi hash (sama seperti data acak), mengompresnya satu sama lain akan menghasilkan hasil yang baik.
Banyak orang tidak akan memerlukan solusi seperti itu dalam banyak kasus jika ada kegagalan mereka perlu menyimpan database dengan gambar terbaru dan memperbaruinya secepat mungkin.
Namun, jika Anda memiliki sistem yang kompleks yang membutuhkan banyak akuntansi, audit, debugging, dll (hal-hal yang lebih penting daripada blog) maka penyimpanan snapshots yang efisien menjadi penting.
Periksa skrip https://sourceforge.net/projects/mysqlincrementalbackup/ . Solusi cadangan tambahan untuk MyISAM dan Innodb.