16.8 Параметры частичного резервного копирования и восстановления
С MySQL Enterprise Backup 3.10 были введены два параметра --include-tables и --exclude-tables. Они предназначены для замены устаревших параметров --include, --databases, --databases-list-file и --only-innodb-with-frm, которые несовместимы с новыми параметрами и будут устаревшими в будущих выпусках. Для справок мы включили информацию об устаревших параметрах в конце этого раздела в Устаревшие параметры частичного резервного копирования.
Для выбора определённых данных для резервного копирования или восстановления используйте параметры частичного резервного копирования и восстановления, описанные в этом разделе.
Обзор частичного резервного копирования и примеры использования следующих параметров см. в разделе 4.3.5, «Создание частичного резервного копирования». Также см. раздел 5.1.4, «Восстановление резервных копий, созданных с параметром --use-tts», посвящённый выборочному восстановлению таблиц из резервной копии.
-
--include-tables=REGEXPФормат командной строки --include-tables=REGEXPТип Строка Включает для резервного копирования или восстановления только те таблицы (InnoDB и не-InnoDB), полные имена которых (в формате
) соответствуют регулярному выражениюdb_name.table_nameREGEXP. Используется синтаксис регулярных выражений в расширенной форме, указанной в стандарте POSIX 1003.2. Например,--include-tables=^mydb\.t[12]$соответствует таблицамt1иt2в базе данныхmydb. В системах Unix-подобных систем, заключите регулярное выражение в кавычки, чтобы предотвратить интерпретацию символов оболочки. mysqlbackup выдаёт ошибку, если этот параметр используется без указания регулярного выражения.Хотя mysqlbackup понимает MySQL-конвенцию по присвоению кавычек (обратных кавычек) имени базы данных или имени таблицы (или обоим), нет необходимости включать обратные кавычки в регулярное выражение для
--include-tables.Для операции резервного копирования mysqlbackup выдает ошибку, если ни одна таблица не соответствует указанному регулярному выражению с помощью параметра
--include-tables.Несмотря на то, что этот параметр может быть использован для различных типов резервных копий, выборочное восстановление поддерживается только для резервных копий, созданных с использованием (то есть, резервных копий, созданных с параметром
--use-tts). Этот параметр также может использоваться с командамиbackup-dir-to-imageиimage-to-backup-dirдля выбора таблиц при создании или распаковке образа резервной копии.Этот параметр не может использоваться совместно с устаревшими параметрами
--include,--databases,--databases-list-fileили--only-innodb-with-frm.При совместном использовании с параметром
--exclude-tables, параметр--include-tablesприменяется в первую очередь, то есть mysqlbackup сначала выбирает все таблицы, указанные параметром--include-tables, а затем исключает из набора те таблицы, которые указаны в параметре--exclude-tables. -
--exclude-tables=REGEXPФормат командной строки --exclude-tables=REGEXPТип Строка Исключает для резервного копирования или восстановления все таблицы (InnoDB и не-InnoDB), полные имена которых (в формате
) соответствуют регулярному выражениюdb_name.table_nameREGEXP. Синаксис регулярных выражений — расширенный формат, указанный в стандарте POSIX 1003.2. Например,--exclude-tables=^mydb\.t[12]$соответствует таблицамt1иt2в базе данныхmydb. В системах Unix-подобных систем, заключите регулярное выражение в кавычки, чтобы предотвратить интерпретацию символов оболочки. mysqlbackup выдаёт ошибку, если этот параметр используется без указания регулярного выражения.Хотя mysqlbackup понимает MySQL-конвенцию по присвоению кавычек (обратных кавычек) имени базы данных или имени таблицы (или обоим), нет необходимости включать обратные кавычки в регулярное выражение для
--exclude-tables.Несмотря на то, что этот параметр может быть использован для различных типов резервных копий, выборочное восстановление поддерживается только для резервных копий, созданных с использованием (то есть, резервных копий, созданных с параметром
--use-tts). Этот параметр также может использоваться с командамиbackup-dir-to-imageиimage-to-backup-dirдля выбора таблиц при создании или распаковке образа резервной копии.Этот параметр не может использоваться совместно с параметрами
--include,--databases,--databases-list-fileили--only-innodb-with-frm.При совместном использовании с параметром
--include-tables, параметр--include-tablesприменяется в первую очередь, то есть mysqlbackup сначала выбирает все таблицы, указанные параметром--include-tables, а затем исключает из набора те таблицы, которые указаны в параметре--exclude-tables.
-
--only-known-file-typesТолько для резервного копирования. По умолчанию, все файлы в поддиректориях базы данных в каталоге данных сервера включаются в резервную копию (см. таблицу 1.1, «Типы файлов в резервной копии» для получения подробной информации). Если указан параметр
--only-known-file-types, mysqlbackup копирует только файлы, которые являются файлами данных для MySQL или встроенных хранилищ данных, которые, помимо файловibdata*, имеют следующие расширения:.ARM: метаданные таблицы ARCHIVE.ARZ: данные таблицы ARCHIVE.CSM: метаданные таблицы CSV.CSV: данные таблицы CSV.frm: определения таблиц.ibd: файлы InnoDB табличного пространства, созданные в режиме файла на таблицу.MRG: ссылки хранилища Merge на другие таблицы.MYD: данные MyISAM.MYI: индексы MyISAM.opt: информация о конфигурации базы данных.par: определения разделов.TRG: параметры триггеров.TRN: информация о пространстве имён триггеров
-
--only-innodbТолько для резервного копирования. При использовании этого параметра в резервную копию включаются только данные и файлы журналов InnoDB, а все файлы, созданные другими движками хранилищ, исключаются. Обычно используется, когда нет возможности подключиться к mysqld или когда нет необходимости копировать файлы MyISAM.
Параметр несовместим с параметром
--slave-info.
-
--use-tts[={with-minimum-locking|with-full-locking}]Формат командной строки --use-tts[={with-minimum-locking|with-full-locking}]Тип Перечисление Значение по умолчанию with-minimum-lockingДопустимые значения with-minimum-lockingwith-full-lockingВключить выборочное резервное копирование таблиц InnoDB с помощью . Это используется совместно с параметрами
--include-tablesи--exclude-tablesдля выбора таблиц InnoDB, подлежащих резервному копированию, с помощью регулярных выражений. Использование для резервного копирования предоставляет следующие преимущества:Резервные копии могут быть восстановлены на другой сервер
не резервируется, что экономит дисковое пространство и ресурсы ввода-вывода
Управление согласованностью данных таблиц осуществляется MySQL Enterprise Backup
Однако, параметр имеет следующие ограничения:
Резервное копирование и восстановление разнесенных таблиц поддерживаются только для MySQL 5.7.4 и более поздних версий. Кроме того, отдельные разделы не могут быть выборочно резервированы или восстановлены. Таблицы, выбранные с помощью параметров
--include-tablesи--exclude-tables, всегда резервируются или восстанавливаются полностью.Может резервировать только таблицы, хранящиеся в собственных отдельных табличных пространствах (то есть таблицы, созданные с включенным параметром )
Таблицы, не являющиеся InnoDB, не резервируются
Для MySQL Enterprise Backup 4.1.4 и более ранних версий: Для частичных резервных копий зашифрованные таблицы InnoDB никогда не включаются (в файле журнала выводится предупреждение всякий раз, когда зашифрованная таблица InnoDB, соответствующая критериям выбора таблицы, была пропущена).
Не может использоваться для инкрементных резервных копий
Не включает двоичный журнал или журнал пересылки в резервную копию
См. также Приложение B, Ограничения MySQL Enterprise Backup для некоторых дополнительных ограничений.
Существуют два возможных значения для параметра:
with-minimum-locking: Горячие копии выбранных таблиц резервируются, а затем таблицы блокируются в режиме только для чтения, в то время как (только часть, содержащая соответствующие изменения, внесенные после горячего резервного копирования) включается в резервную копию. Любые таблицы, созданные во время фазы блокировки, игнорируются.-
with-full-locking: Выбранные таблицы блокируются в режиме только для чтения во время резервного копирования. не включается в резервную копию. Любые таблицы, созданные во время фазы блокировки, игнорируются.ПримечаниеИз-за известной проблемы при создании резервной копии с помощью TTS для сервера, содержащего таблицы со смешанными форматами файлов Antelope и Barracuda, НЕ применяйте полную блокировку на таблицах.
По умолчанию:
with-minimum-lockingДля использования параметра
--use-ttsтребуется дополнительные привилегии для пользователя, через которого mysqlbackup подключается к серверу; см. Раздел 4.1.2, “Предоставление привилегий MySQL администратору резервного копирования” для получения подробной информации.Существуют некоторые особые требования к восстановлению резервных копий, созданных с параметром
--use-tts; см. Раздел 5.1.4, “Восстановление резервных копий, созданных с параметром--use-tts” для получения подробной информации.
-
--rename=“old_table_nametonew_table_name”Переименовать отдельную таблицу при ее восстановлении в базу данных из резервной копии, созданной с помощью параметра
--use-tts. Таблица с именемold_table_nameпереименовывается вnew_table_name. Обратите внимание, что при использовании параметра:old_table_nameиnew_table_nameмогут быть полностью квалифицированы (содержать имена баз данных в форматеdb_name.tb_name) или нет. Регулярные выражения дляold_table_nameиnew_table_nameне принимаются. Восстановление завершается ошибкой, еслиold_table_nameне соответствует ни одной таблице, подлежащей восстановлению, или когдаnew_table_nameуже существует в целевой базе данных.Для MySQL Enterprise Backup 4.1.4 и более ранних версий: Параметр
--include-tablesили--exclude-tables(или оба вместе) должен быть использован в команде восстановления для работы параметра--rename, если в резервной копии только одна таблица. Кроме того, параметр--include-tablesили--exclude-tables(или оба вместе) должен указывать одну и только одну таблицу для восстановления при использовании--rename, в противном случае восстановление завершится ошибкой.Для MySQL Enterprise Backup 4.1.4 и более ранних версий: Восстановление завершается ошибкой, если
old_table_nameне соответствует таблице, указанной с помощью параметра--include-tablesили--exclude-tables(или обоих вместе).Применимы требования, описанные в Разделе 5.1.4, “Восстановление резервных копий, созданных с параметром
--use-tts”.
См. Раздел 5.1.4, “Восстановление резервных копий, созданных с параметром
--use-tts” для получения дополнительной информации о выборочных операциях восстановления и примере переименования таблиц.
Параметры резервного копирования частичных данных (старые)
Информация в этом подразделе относится только к использованию устаревших параметров --include, --databases, --databases-list-file и --only-innodb-with-frm, которые будут устаревшими в будущих версиях. Для создания частичных резервных копий настоятельно рекомендуется использовать новые параметры --include-tables и --exclude-tables. Обратите внимание, что вы не можете объединять устаревшие и новые параметры частичного резервного копирования в одной команде.
Помимо устаревших параметров, ниже обсуждаются и другие параметры, но информация относится только к использованию этих параметров вместе с устаревшими параметрами частичного резервного копирования.
Обзор частичных резервных копий и примеры использования этих устаревших параметров см. в Создание частичной резервной копии с использованием устаревших параметров.
-
--include=REGEXPЭтот параметр предназначен для фильтрации таблиц InnoDB при создании резервной копии. Полные имена таблиц InnoDB проверяются на соответствие регулярному выражению, указанному в параметре. Если выражение REGEXP соответствует
, таблица включается. Используется синтаксис регулярных выражений расширенной формы, указанный в стандарте POSIX 1003.2. Например,db_name.table_name--include=mydb\.t[12]соответствует таблицамt1иt2в базе данныхmydb. mysqlbackup выводит ошибку, если этот параметр используется без указания регулярного выражения.Этот параметр применяется только к таблицам InnoDB, созданным с включенным параметром MySQL (по умолчанию для MySQL 5.6 и более поздних версий), в этом случае таблицы хранятся в отдельных файлах, которые могут быть включены или исключены из резервной копии. Все таблицы в системном табличном пространстве InnoDB всегда резервируются.
Если ни одной таблице InnoDB не соответствует заданное регулярное выражение, выводится ошибка с сообщением о том, что соответствий нет.
По умолчанию: резервируются все таблицы InnoDB.
ПримечаниеЭтот параметр не фильтрует таблицы, не являющиеся InnoDB, для которых можно использовать параметры, такие как
--databasesи--databases-list-file.ВажноЭтот параметр не фильтрует файлы
.frm, связанные с таблицами InnoDB, что означает, что независимо от значения параметра, все файлы.frmдля всех таблиц InnoDB всегда резервируются, если они не исключены другими параметрами. Файлы.frmдля таблиц InnoDB, которые не резервируются, должны быть удалены перед восстановлением резервной копии базы данных. Подробности см. в разделе Создание частичной резервной копии с использованием устаревших параметров.
-
--databases=LISTУказывает список таблиц, не являющихся InnoDB, для резервного копирования. Аргумент задает список имен баз данных или таблиц, разделенных пробелами, в следующем формате:
"
db_name[.table_name]db_name1[.table_name1] ...".Если указанные значения не соответствуют никакой базе данных или таблице, файлы данных, не являющиеся InnoDB, не резервируются. Подробности см. в разделе Создание частичной резервной копии с использованием устаревших параметров.
По умолчанию резервируются все таблицы, не являющиеся InnoDB, из всех баз данных.
ПримечаниеПараметр не оказывает никакого влияния на файлы данных InnoDB (файлы
.ibd) для баз данных или таблиц, которые он указывает. Для фильтрации файлов данных InnoDB используйте параметр--includeвместо этого.
-
--databases-list-file=PATHУказывает путь к файлу, содержащему список таблиц, не являющихся InnoDB, которые должны быть резервированы. Файл содержит записи для баз данных или полных имен таблиц, разделенных символами новой строки или пробелами. Формат записей такой же, как и для параметра
--databases:db_name[.table_name]db_name1[.table_name1] ...Удалите все пробелы вокруг имен баз данных или таблиц, так как они не удаляются автоматически. Начните строку с символа
#, чтобы добавить комментарий. Регулярные выражения запрещены.Если указанные записи не соответствуют никакой базе данных или таблице, файлы данных, не являющиеся InnoDB, не резервируются.
ПримечаниеПараметр не оказывает никакого влияния на файлы данных InnoDB (файлы
.ibd) для баз данных или таблиц, которые он указывает. Для фильтрации файлов данных InnoDB используйте параметр--includeвместо этого.
-
--only-innodb-with-frm[={all|related}]Резервировать только данные InnoDB, файлы журналов и файлы
.frm, связанные с таблицами InnoDB.--only-innodb-with-frm=allвключает файлы.frmдля всех таблиц InnoDB в резервной копии.--only-innodb-with-frm=relatedв сочетании с параметром--includeкопирует только файлы.frmдля таблиц, включенных в частичную резервную копию.--only-innodb-with-frmбез аргумента эквивалентно--only-innodb-with-frm=related.
ПримечаниеПри инкрементных резервных копиях, даже если резервируются только измененные файлы
.ibd, файлы.frm, связанные с всеми указанными таблицами InnoDB, включаются.Этот параметр избавляет вас от необходимости программировать резервное копирование файлов InnoDB
.frm, что обычно выполняется при переведении сервера в режим только для чтения с помощью оператораFLUSH TABLES WITH READ LOCK. Файлы.frmкопируются без перевода сервера в режим только для чтения, чтобы операция резервного копирования была непрерывной и не прерывала обработку базы данных. Вы должны убедиться, что во время резервного копирования никакие операторы DDL или другие операторы не изменят файлы.frmдля таблиц InnoDB. Если mysqlbackup обнаружит изменения в соответствующих файлах.frmво время резервного копирования, процесс прервётся с ошибкой. Если запретить DDL для таблиц InnoDB во время резервного копирования непрактично, используйте параметр--only-innodbи используйте традиционный метод копирования файлов.frm, пока сервер заблокирован.Все файлы, созданные другими хранилищами, исключаются. Обычно используется, когда нет соединения с mysqld или когда нет необходимости копировать файлы MyISAM, например, когда вы уверены, что не происходит никаких изменений DDL во время резервного копирования. Подробные инструкции и примеры см. в разделе Создание частичной резервной копии с использованием устаревших параметров.
Параметр несовместим с параметром
--slave-info.По умолчанию: резервные копии включают файлы всех движков хранения.
-
--use-tts[={with-minimum-locking|with-full-locking}]Включить выборочное резервное копирование таблиц InnoDB с помощью . Этот параметр следует использовать в сочетании с параметром
--include, который выбирает таблицы InnoDB для резервного копирования с помощью регулярного выражения. Использование для резервного копирования предлагает следующие преимущества:Резервные копии можно восстановить на другой сервер
Файл не резервируется, что экономит дисковое пространство и ресурсы I/O
Согласованность данных таблиц управляется MySQL Enterprise Backup
См. важные обсуждения здесь ограничений при использовании параметра
--use-tts.Параметр может принимать два значения:
with-minimum-locking: Горячие копии выбранных таблиц резервируются, а затем таблицы блокируются в режиме только для чтения, пока (содержащая только изменения, внесённые после горячего резервного копирования) включается в резервную копию. Любые таблицы, созданные в фазе блокировки, игнорируются.with-full-locking: Выбранные таблицы блокируются в режиме только для чтения во время резервного копирования. не включается в резервную копию. Любые таблицы, созданные в фазе блокировки, игнорируются.
По умолчанию: резервное копирование с минимальной блокировкой.
Существуют особые требования к восстановлению резервных копий, созданных с параметром
--use-tts; см. объяснения в разделе Раздел 5.1, «Выполнение операции восстановления» для получения подробной информации.
© 2025 Oracle
Licensed under the GPLv2 License.