mxbackup

В этом документе описывается утилита параллельного резервного копирования кластера mxbackup.

1 Описание

  • mxbackup выполняет параллельное резервное копирование кластера YMatrix. Восстановление данных должно выполняться с помощью mxrestore.
  • mxbackup поддерживает плагин объектного хранилища S3, позволяя передавать данные напрямую в S3 без дополнительных накладных расходов ввода-вывода. Чтобы использовать S3 для резервного копирования и восстановления, подготовьте учетные данные аккаунта, права доступа к бакету и создайте правильно настроенный файл YAML. Ниже приведены подробности по настройке и инструкции по использованию.

2 Сведения о параметрах

2.1 Параметры командной строки mxbackup

Параметр Описание
--backup-dir *directory* Абсолютный путь, куда записываются файлы резервной копии
--compression-level *level* Уровень сжатия (от 1 до 9), по умолчанию 1
--data-only Резервное копирование только данных таблиц, без определений схем
--dbname *db* База данных для резервного копирования
--debug Вывод сообщений журнала уровня отладки
--exclude-schema *schema* Исключить указанную схему из резервного копирования; может использоваться несколько раз
--exclude-schema-file *file* Файл со списком схем, которые нужно исключить
--exclude-table *table* Исключить указанную таблицу из резервного копирования; может использоваться несколько раз
--exclude-table-file *file* Файл со списком таблиц, которые нужно исключить
--from-timestamp *timestamp* Метка времени начала для инкрементного резервного копирования; должен использоваться вместе с --incremental
--help Показать справочное сообщение
--history Список исторических меток времени в текущем каталоге резервного копирования
--include-schema *schema* Включить только указанную схему; может использоваться несколько раз
--include-schema-file *file* Файл со списком схем, которые нужно включить
--include-table *table* Включить только указанную таблицу; может использоваться несколько раз
--include-table-file *file* Файл со списком таблиц, которые нужно включить
--incremental Выполнить инкрементное резервное копирование (только для таблиц AO); требует --from-timestamp
--jobs *num* Количество одновременных соединений во время резервного копирования, по умолчанию 1
--leaf-partition-data Создавать отдельные файлы данных для каждой дочерней партиции секционированной таблицы
--metadata-only Резервное копирование только метаданных, без данных таблиц
--no-compression Не сжимать данные таблиц
--plugin-config *file* Путь к файлу конфигурации плагина
--quiet Подавлять сообщения журнала, кроме предупреждений и ошибок
--single-data-file Записывать все данные в один файл вместо одного файла на таблицу
--verbose Выводить подробные сообщения журнала
--version Показать номер версии и завершить работу
--with-stats Включить статистику в резервную копию
--without-globals Не резервировать глобальные метаданные (например, роли, табличные пространства)

2.2 Параметры файла конфигурации плагина объектного хранилища S3

Параметр Описание Обязательный
executablepath Абсолютный путь к исполняемому файлу плагина хранилища S3 Да
region Регион облачной платформы; игнорируется, если задан endpoint Да
aws_access_key_id Идентификатор ключа доступа S3 для аутентификации в бакете Да
aws_secret_access_key Секретный ключ для идентификатора ключа доступа S3 Да
bucket Бакет S3, используемый для хранения файлов mxbackup Да
endpoint Пользовательский URL-адрес конечной точки S3 Нет
encryption Включить шифрование SSL для связи с S3. Допустимые значения: on, off. По умолчанию: on Нет
http_proxy URL-адрес HTTP-прокси-сервера для подключения к S3 Нет
backup_max_concurrent_requests Максимальное количество одновременных запросов резервного копирования. По умолчанию: 6 Нет
backup_multipart_chunksize Максимальный размер буфера/блока для загрузки резервных копий. По умолчанию: 500 МБ Нет
restore_max_concurrent_requests Максимальное количество одновременных запросов восстановления. По умолчанию: 6 Нет
restore_multipart_chunksize Максимальный размер буфера/блока для скачивания при восстановлении. По умолчанию: 500 МБ Нет

Ниже приведен пример шаблона конфигурации. Выберите необходимые параметры и замените содержимое внутри "<>" или "[]" (включая скобки) на фактические значения.

$ executablepath: <absolute-path-to-gpbackup_s3_plugin>
  options: 
    region: <cloud-region>
    endpoint: <S3-endpoint>
    aws_access_key_id: <user-ID>
    aws_secret_access_key: <user-key>
    bucket: <S3-bucket-name>
    folder: <folder-path-on-S3>
    encryption: [on|off]
    backup_max_concurrent_requests: [int]
    backup_multipart_chunksize: [string] 
    restore_max_concurrent_requests: [int]
    restore_multipart_chunksize: [string] 
    http_proxy:
        <http://<username>:<password>@proxy.<domain>.com:port>

3 Примеры

3.1 Базовое использование mxbackup

Предположим, имя базы данных — demo, а имя схемы — twitter.

Резервное копирование всей базы данных:

$ mxbackup --dbname demo

Резервное копирование базы данных demo с исключением схемы twitter:

$ mxbackup --dbname demo --exclude-schema twitter

Резервное копирование только схемы twitter в базе данных demo:

$ mxbackup --dbname demo --include-schema twitter

Резервное копирование базы данных demo в определённый каталог: `/home/mxadmin/backup`` $ mxbackup --dbname demo --backup-dir /home/mxadmin/backup


### 3.2 Использование плагина объектного хранилища S3

#### 3.2.1 Предварительные требования  
Перед использованием S3 для резервного копирования и восстановления убедитесь, что у вас есть соответствующий доступ к облачному аккаунту и права на бакет, включая:
- Загрузку и удаление объектов в S3.
- Просмотр, открытие и скачивание файлов из бакета S3.

#### 3.2.2 Пример использования  
Сначала подготовьте файл конфигурации плагина S3, например `s3-config-file.yaml`. В этом примере указаны общие настройки. Полное описание параметров см. в разделе 2.2.

$ executablepath: $GPHOME/bin/mxbackup_s3_plugin # Absolute path to S3 plugin options: region: us-west-2 # Cloud region aws_access_key_id: test-s3-user # S3 login ID aws_secret_access_key: asdf1234asdf # S3 login key bucket: matrixdb-backup # S3 bucket name folder: backup3 # Directory name in S3


Затем запустите `mxbackup`, чтобы выполнить резервное копирование базы данных `demo` с использованием плагина S3:

$ mxbackup --dbname demo --plugin-config /tmp/s3-config-file.yaml


После успешного резервного копирования `mxbackup` создаёт каталог с временной меткой в S3. Позже вы сможете восстановить эти данные с помощью [mxrestore](/ru/doc/4.8/tools/mxrestore).

Пример пути в S3 после резервного копирования:

$ backup3/backups/20221208/20221208185654



>***Примечание!***  
Каталог журналов `mxbackup` находится по адресу `<gpadmin_home>/gpAdminLogs/gpbackup_s3_plugin_timestamp.log`, временные метки имеют формат `YYYYMMDDHHMMSS`.

>***Примечание!***  
Дополнительную информацию о резервном копировании и восстановлении в YMatrix см. в разделе [Резервное копирование и восстановление](/ru/doc/4.8/maintain/backup_restore). Подробности об инструментах восстановления см. в разделе [mxrestore](/ru/doc/4.8/tools/mxrestore).