Tam olarak bunu yapmaktan bahseden birkaç site buldum, ancak birkaç önemli ayrıntıyı kaçırıyorum. Genel adımlar
- Çalıştırmak
FLUSH TABLES WITH READ LOCK
- ZFS anlık görüntüsünü alın
- Çalıştırmak
UNLOCK TABLES
Çeşitli kaynaklar kullandığım InnoDB'nin aslında a FLUSH
. MySQL kullanıcı kılavuzu FLUSH TABLES...FOR EXPORT
, InnoDB ile kullanım için bir değişken olduğunu, ancak tüm veritabanını yedeklemek yerine her bir tabloyu ayrı ayrı belirtmeyi gerektirdiğini not eder. Her bir tabloyu ayrı ayrı belirtmekten kaçınmayı tercih ederim çünkü tabloların listesi gerçekte var olan tablolarla senkronize olmayacaktır.
Diğer sorunum da böyle bir şey yapmayı planlıyorum mysql -h"$HOST" -u"$USERNAME" -p"$PASSWORD" --execute="FLUSH TABLES WITH READ LOCK"
. Ancak, oturumdan çıktıktan hemen sonra kilidi bırakır. Bu mantıklı, ama aynı zamanda oldukça can sıkıcı çünkü anlık görüntümü alırken okuma kilidini tutmam gerekiyor.
Benim diğer fikrim, Percona XtraBackup gibi bir araç kullanarak sıcak bir yedek almak ve yedeklemenin anlık görüntülerini almak, ancak tüm verileri ikinci bir konuma yazmak için maliyeti ödememeyi tercih ediyorum.