Saya punya pertanyaan tentang cadangan logis dari database MySQL yang menggunakan MyISAM dan InnoDB.
The mysqldump
utilitas mendukung dua pilihan ini:
--single-transaction - Membuat snapshot yang konsisten dengan membuang semua tabel dalam satu transaksi. Bekerja HANYA untuk tabel yang disimpan dalam mesin penyimpanan yang mendukung multiversioning (saat ini hanya InnoDB tidak) [...] Opsi secara otomatis mematikan --lock-tables.
-x, --lock-all-tables - Mengunci semua tabel di semua basis data. Ini dicapai dengan mengambil kunci baca global selama durasi dump keseluruhan. Secara otomatis mematikan --satu transaksi dan --Lock-tables off.
Untuk InnoDB, kita perlu
--single-transaction
untuk MyISAM, kita perlu - mengunci-tabel atau mengunci-semua-tabel (jika kita membutuhkan konsistensi lintas-basis data).
Jadi, bagaimana database hybrid (database yang menggunakan mesin MyISAM dan InnoDB) seharusnya didukung?
Edit:
Sekedar klarifikasi, pertanyaannya bisa dirumuskan ulang seperti ini:
Apakah opsi tabel penguncian [semua-] menjamin cadangan yang konsisten dari tabel InnoDB?
--lock-all-tables
maka cadangan akan konsisten, bukan? Dan kita perlu menjalankan mysqldump hanya sekali: itu akan aman untuk InnoDB dan MyISAM pada saat yang sama, kan?Sebagai ide tambahan untuk situasi Anda, mungkin ada baiknya untuk memikirkan beberapa hal tentang pengaturan pengaturan master slave, di mana cadangan Anda dibuat dari slave.
MySQL db dengan campuran InnoDB dan MyISAM akan selalu (sejauh yang saya tahu di setiap konfigurasi dan dengan setiap alat cadangan) mengunci tabel MyISAM untuk fase cadangan MyISAM.
Untuk menghindari penguncian ini, gunakan pengaturan ini:
Semua menulis dan membaca masuk ke Server A (Master). Server B (Slave) hanya digunakan untuk cadangan. Pada slave, Anda menginstal alat cadangan atau skrip pilihan Anda, mis. Administrator MySQL.
Konfigurasikan cadangan Anda, mis. Setiap hari selama malam hari. Kunci ada di slave, menghasilkan lag sementara slave benar-benar terkunci, tetapi lag ini menyusul segera setelah cadangan selesai dan kunci dibuka.
sumber