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

Как я могу обучить MySQL завершать все «незавершенные» транзакции, но откладывать запуск новых (без отключения клиентов) до тех пор, пока я не сделаю снимок ZFS или LVM (который занимает менее секунды).

например

  1. приостановить MySQL, ожидая завершения транзакций «в процессе»
  2. синхронизация с диском
  3. взять снимок ZFS / LVM
  4. resume MySQL. Целью этого является получение согласованного моментального снимка для целей резервного копирования. Шаг 2 занимает долю секунды.

Шаг первый не должен вызывать ошибки клиента, просто очень короткая пауза, пока не будет достигнут шаг 4.

Существуют ли команды MySQL, которые могут делать 1 и 4? Кто они такие?

One Solution collect form web for “Как приостановить MySQL, прежде чем делать снимок LVM / ZFS?”

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

mysql> FLUSH LOCAL TABLES; Query OK, 0 rows affected (11.31 sec)

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

mysql> FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (22.55 sec)

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

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

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

  • Как удалить устройство из пула
  • ZFS отключает запись синхронизации в наборе данных
  • ZFS в Linux отправляет / получает резюме о плохой / плохой связи ssh
  • Любой способ сделать диск (ZFS) недоступным?
  • Видя гораздо меньше полезного пространства, чем ожидалось, с помощью нового тома с использованием ZFS на Centos 7
  • ZFS - «Добавить. Sense: Неисправленная ошибка чтения - auto reallocate failed "в syslog, но данные SMART выглядят нормально
  • Как удалить сломанный диск ZIL из пула ZFS
  • FreeBSD zfs создает gpt
  • Solaris 11 и zfs, я не понимаю, какое пространство используется
  • Почему zfs не выводит реальный размер моментального снимка?
  • Как заменить диск в резервном пуле ZFS?
  • Linux и Unix - лучшая ОС в мире.