Как приостановить MySQL перед созданием моментального снимка LVM / ZFS?

В CentOS 6:

service xinetd start
chkconfig telnet on
chkconfig xinetd on

В CentOS 7:

systemctl start telnet.socket
systemctl enable telnet.socket
4
10.10.2016, 10:48
1 ответ

Хакерский способ - дождаться завершения транзакции:

mysql> FLUSH LOCAL TABLES; Запрос ОК, затронутых строк 0 (11,31 сек)

, а затем получение блокировки чтения :

mysql> FLUSH TABLES WITH READ LOCK; Запрос ОК, затронуто 0 строк (22,55 сек)

Теперь все запросы заблокированы (т. Е. Они ждут снятия блокировки) до вашего сеанса заканчивается. Имейте в виду - вам все равно нужно дождаться завершения всех транзакций. В зависимости от вашей рабочей нагрузки это может занять некоторое время (ОБНОВЛЕНИЕ нескольких миллионов строк ...).

Вы можете закодировать это на своем любимом скриптовом языке.

А если серьезно - почему бы не использовать Xtrabackup ? Он позаботится о согласованном снимке mysql за вас, и вы можете выгрузить его в файловую систему и сделать снимок zfs / lvm.

4
27.01.2020, 20:55

Теги

Похожие вопросы