Spec-Zone.ru › MySQL Enterprise Backup 9.2

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

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

  • --replica-info

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

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

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

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

    • Для резервных копий серверов-реплик используйте параметр --replica-info, чтобы файл backup_gtid_executed.sql генерировался и включался в резервные копии.

    Параметр является псевдонимом для --slave-info, который устарел.

  • --slave-info

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

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

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

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

    • Для резервных копий серверов-реплик используйте параметр --slave-info, чтобы файл backup_gtid_executed.sql генерировался и включался в резервные копии.

  • --safe-replica-backup-timeout=SECONDS

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

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

    По умолчанию: 300

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

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

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

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

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

    Параметр является псевдонимом для --safe-slave-backup-timeout, который устарел.

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

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

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

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

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

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

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

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

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

  • --suspend-at-end

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

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

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

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

    Указанная utility выполняется, когда все таблицы, не являющиеся InnoDB, заблокированы вблизи конца операции резервного копирования.

    Этот параметр можно использовать для запуска скрипта, который резервирует любую информацию, которая не включена в обычное резервное копирование. Например, с помощью --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-8.4-en/backup-special-options.html

Spec-Zone.ru

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