Spec-Zone.ru › MariaDB

БЛОКИРОВКА РЕЗЕРВНОГО КОПИРОВАНИЯ

MariaDB, начиная с 10.4.2

Команда BACKUP LOCK была введена в MariaDB 10.4.2.

Команда BACKUP LOCK блокирует таблицу от DDL-запросов. Она в основном предназначена для использования такими инструментами, как mariabackup, которые должны гарантировать отсутствие DDL-операций над таблицей во время открытия файлов таблицы. Например, для таблицы Aria, которая хранит данные в 3 файлах с расширениями .frm, .MAI и .MAD. Обычные операции чтения/записи могут выполняться как обычно.

Синтаксис

Для блокировки таблицы:

BACKUP LOCK table_name

Для разблокировки таблицы:

BACKUP UNLOCK

Использование в инструменте резервного копирования

BACKUP LOCK [database.]table_name;
 - Open all files related to a table (for example, t.frm, t.MAI and t.MYD)
BACKUP UNLOCK;
- Copy data
- Close files

Это гарантирует, что все файлы принадлежат одному поколению, то есть созданы в одно и то же время сервером MariaDB. Это работает, потому что открытые файлы будут указывать на исходные файлы таблицы, которые не будут затронуты, если во время копирования файлов будет выполнено ALTER TABLE.

Права доступа

Для BACKUP LOCK требуется право RELOAD.

Примечания

  • Идея в том, что BACKUP LOCK должна удерживаться резервным инструментом как можно меньше времени. Время для получения бесспорной блокировки очень короткое! Легко можно выполнить 50 000 блокировок/разблокировок в секунду на оборудовании низкого класса.
  • Следует использовать разные соединения для команд BACKUP STAGE и BACKUP LOCK.

Реализация

  • Внутренне, BACKUP LOCK реализуется путем взятия MDLSHARED_HIGH_PRIO MDL-блокировки на объекте таблицы, что защищает таблицу от любых DDL-операций.

См. также

  • BACKUP STAGE
  • MDEV-17309 - БЛОКИРОВКА РЕЗЕРВНОГО КОПИРОВАНИЯ: блокировка DDL таблиц во время резервного копирования
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают мнения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/backup-lock/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API