Spec-Zone.ru › MySQL Enterprise Backup 4.1

16.16 Параметры для специальных типов резервного копирования

Эти параметры предназначены для резервного копирования серверов баз данных, выполняющих особые роли в репликации или содержащих определённые типы данных, требующие особого подхода при резервном копировании.

  • --slave-info

    При резервном копировании сервера-реплики этот параметр сохраняет информацию, необходимую для создания идентичного сервера-реплики. Он создаёт файл meta/ibbackup_slave_info в каталоге резервной копии, содержащий инструкцию CHANGE MASTER с позицией двоичного журнала и именем файла двоичного журнала исходного сервера. Эта информация также выводится в выводе команды mysqlbackup. Чтобы настроить новую реплику для этого источника, восстановите данные резервной копии на другой сервер, запустите сервер реплики на данных резервной копии и выполните команду CHANGE MASTER с позицией двоичного журнала, сохранённой в файле ibbackup_slave_info. Инструкции см. в разделе 7.1 «Настройка новой реплики».

    Примечание

    Используйте этот параметр только при резервном копировании сервера-реплики. Его поведение не определено при использовании на исходном сервере или сервере, не участвующем в репликации.

    Этот параметр несовместим с параметром --no-locking; одновременное использование обоих параметров приведёт к ошибке в mysqlbackup.

    Этот параметр несовместим с параметрами --only-innodb или --only-innodb-with-frm.

  • --safe-slave-backup-timeout=SECONDS

    Для конфигураций репликации на основе инструкций (SBR) или смешанных конфигураций репликации, параметр определяет время (в секундах), которое mysqlbackup будет ждать, чтобы значение стало “0” (что соответствует отсутствию открытых временных таблиц), для завершения резервного копирования сервера-реплики, наложив глобальную блокировку для чтения и скопировав все таблицы, не являющиеся InnoDB. Если время ожидания превысит заданное значение параметра, mysqlbackup сработает по тайм-ауту и выдаст ошибку. Ожидание предназначено для предотвращения завершения резервного копирования реплики при наличии открытых временных таблиц. Подробности о том, как mysqlbackup обрабатывает временные таблицы на сервере-реплике, см. в разделе о временных таблицах в репликации на основе инструкций (SBR).

    Кроме того, mysqlbackup выполняет начальную проверку в начале резервного копирования реплики, чтобы убедиться, что становится истинным в течение времени, заданного параметром --safe-slave-backup-timeout. Если это не произойдёт, mysqlbackup расценивает это как ранний признак того, что перед завершением резервного копирования некоторые временные таблицы могут остаться открытыми после превышения лимита тайм-аута; mysqlbackup затем выдаёт ошибку вместо продолжения резервного копирования. В этом случае можно либо перезапустить резервное копирование с более высоким значением для --safe-slave-backup-timeout, либо повторить попытку в момент, когда меньше временных таблиц используются.

    Значение по умолчанию: 300

    Предупреждение

    Правильное значение этого параметра зависит от конкретного случая и может значительно изменяться в зависимости от ситуации. Неправильное значение параметра, как слишком высокое, так и слишком низкое, негативно повлияет на производительность операции резервного копирования:

    • Слишком высокое значение: Если требуется долго ждать, пока не будет больше временных таблиц, вероятность высока, что скорость изменения данных в базе данных очень высокая, что означает, что объём данных для восстановления из журнала редо будет большой, а время восстановления резервной копии будет долгим. В таком случае было бы лучше, если бы mysqlbackup завершился по тайм-ауту, и затем операция резервного копирования была перезапущена, так что таблицы будут скопированы в их окончательном состоянии. Поэтому нецелесообразно устанавливать высокое значение тайм-аута для параметра. Как общее правило: даже для баз данных с высокой активностью, использующих много временных таблиц, не устанавливайте значение более нескольких часов.

    • Слишком низкое значение: Установка слишком низкого значения времени ожидания может привести к частым сбою резервного копирования по тайм-ауту, и в этом случае процесс необходимо перезапустить. При повторяющемся цикле перезапусков резервное копирование может занять много времени, и ресурсы, затраченные на неудачные резервные копии, будут потрачены зря. Как общее правило, не устанавливайте время тайм-аута ниже значения по умолчанию 300 секунд.

    Для конфигураций репликации на основе строк (RBR) временные таблицы не реплицируются на реплику. Пользователи, уверенные в том, что репликация на основе инструкций (SBR) не используется для реплики, могут установить --safe-slave-backup-timeout=0, благодаря чему mysqlbackup не будет проверять открытые временные таблицы перед завершением резервного копирования.

  • --suspend-at-end

    Этот параметр приостанавливает команду mysqlbackup при приближении к завершению процесса резервного копирования. Он создаёт файл с именем ibbackup_suspended в домашнем каталоге группы журналов резервного копирования и ждёт, пока вы не удалите этот файл, прежде чем продолжить. Этот параметр полезен для настройки поведения блокировки и резервного копирования файлов, не являющихся InnoDB, с помощью пользовательских скриптов.

    Все таблицы блокируются перед приостановкой, переведя базу данных в режим только для чтения, если вы не отключили блокировку с помощью параметра --no-locking или --no-connection. Параметры --only-innodb и --only-innodb-with-frm также предотвращают этап блокировки. Так как блокировка всех таблиц может быть проблематичной на загруженном сервере, вы можете использовать комбинацию --only-innodb и --suspend-at-end для резервного копирования только определенных таблиц InnoDB.

  • --exec-when-locked="utility arg1 arg2 ..."

    Формат командной строки --exec-when-locked="utility arg1 arg2 ..."
    Тип Строка

    Этот параметр позволяет запустить скрипт, который выполняет резервное копирование любой информации, которая не входит в стандартное резервное копирование. Например, с помощью --exec-when-locked вы можете использовать mysqldump для резервного копирования таблиц из движка памяти (MEMORY), которые не хранятся на диске.

    Установите любые переменные, которые вы хотите использовать в своём скрипте, перед запуском mysqlbackup. В следующем примере переменная окружения BACKUP_DIR устанавливается для указания текущего каталога резервного копирования (кавычки используются для аргумента --exec-when-locked, чтобы предотвратить преждевременное расширение переменной BACKUP_DIR):

    В системах Unix или Linux:

    export BACKUP_DIR=path_to_backupdir
    mysqlbackup --exec-when-locked="mysqldump mydb t1 > $BACKUP_DIR/t1.sql" other_options mysqlbackup_command
    

    Или в системах Windows:

    set BACKUP_DIR=path_to_backupdir
    mysqlbackup --exec-when-locked="mysqldump mydb t1 > %BACKUP_DIR%/t1.sql" other_options mysqlbackup_command
    

    Если утилита не может быть выполнена или возвращает код ошибки, отличный от нуля, весь процесс резервного копирования отменяется. Если вы также используете параметр --suspend-at-end, утилита, указанная параметром --exec-when-locked, выполняется после снятия приостановки.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-enterprise-backup-4.1-en/backup-special-options.html

Spec-Zone.ru

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