Использование плагина ADB DDBoost
Обзор
ADB DDBoost — это плагин-коннектор, обеспечивающий нативное использование системы хранения данных Dell EMC Data Domain с утилитами Greenplum для логического резервного копирования данных (gpbackup) и их восстановления (gprestore).
При совместном использовании плагина с gpbackup и gprestore устанавливается подключение к серверу резервного копирования Data Domain Platform. Для интеграции с Data Domain Platform плагину требуется библиотека libDDBoost.so версии 7.7, которая поставляется в составе пакета Dell DDBoostSDK 7.7. Эта библиотека является проприетарной и должна быть получена через Dell Support или представителей Dell Data Domain в вашей стране. За счет дедупликации данных, предоставляемой библиотекой, DDBoost-плагин позволяет существенно ускорить формирование бэкапов и сэкономить место для хранения данных.
|
ПРИМЕЧАНИЕ
|
Установка и настройка
Для установки плагина ADB DDBoost выполните следующие шаги:
-
Установите пакет adb-ddp-plugin на всех хостах кластера, выполнив вход под пользователем с правами
sudo. Ниже приведен пример установки через пакетный менеджер APT:$ sudo apt install adb-ddp-pluginВ результате успешного выполнения команды создается исполняемый файл плагина $GPHOME/bin/adb_ddp_plugin.
-
Перенесите библиотеку libDDBoost.so в директорию lib на всех хостах кластера.
-
Подключитесь к координатор-хосту ADB под пользователем
gpadmin:$ sudo su - gpadmin -
На координатор-хосте создайте конфигурационный YAML-файл в домашней директории пользователя /home/gpadmin (например, с именем adb_ddp_plugin.yaml). Пример файла и его описание приведены ниже.
executablepath: /usr/lib/ggdb/bin/adb_ddp_plugin options: hostname: "testhost" username: "testuser" password: "XXXXXXXXXXXX" storage_unit: "testunit" directory: "testdir" write_buffer_size: "1048576" read_buffer_size: "1048576" log_level: "DEBUG" log_path: "/home/gpadmin"
| Имя | Описание | Значение по умолчанию | Обязательность |
|---|---|---|---|
executablepath |
Абсолютный путь к плагину в файловой системе хостов ADB (вместе с именем исполняемого файла плагина). Плагин должен быть размещен на всех хостах кластера в одном и том же каталоге. По умолчанию плагин устанавливается по следующему пути: $GPHOME/bin/adb_ddp_plugin |
— |
Да |
hostname |
IP-адрес или имя хоста, обеспечивающего работу с DDBoost. Может содержать не более 30 символов |
— |
Да |
username |
Имя пользователя, которому выданы права для работы с DDBoost. Пользователь конфигурируется на стороне DDBoost, это не пользователь операционной системы или ADB. Может содержать не более 30 символов |
— |
Да |
password |
Пароль пользователя, которому выданы права для работы с DDBoost |
— |
Да |
storage_unit |
Наименование storage unit, конфигурируемого на стороне DDBoost |
— |
Да |
directory |
Директория в файловой системе DDBoost, в которую будут сохраняться все файлы, создаваемые в рамках резервного копирования БД с помощью утилиты |
— |
Да |
write_buffer_size |
Размер буфера записи данных в DDBoost (в байтах). Допустимый диапазон значений: 64 <= write_buffer_size <= 1048576 |
— |
Да |
read_buffer_size |
Размер буфера чтения данных из DDBoost (в байтах). Допустимый диапазон значений: 64 <= read_buffer_size <= 1048576 |
— |
Да |
log_level |
Уровень логирования. Возможные значения:
|
WARN |
Нет |
log_path |
Абсолютный путь к директории для записи логов плагина. В указанной директории будет создан файл adb_ddp_plugin.log |
/home/gpadmin/gpAdminLogs |
Нет |
Использование
gpbackup
Для использования плагина ADB DDBoost при создании бэкапов с помощью утилиты gpbackup необходимо указать параметр --plugin-config <yaml_path>, где <yaml_path> — это абсолютный путь к настроенному ранее конфигурационному файлу плагина в формате YAML.
Ниже приведен пример резервного копирования одной таблицы базы данных adb:
-
Подключитесь к базе данных
adbна координатор-хосте кластера ADB под пользователемgpadmin(например, черезpsql). Убедитесь с помощьюpsql-команды\dt, что искомая таблица (в приведенном примереpublic.test) существует в базе данных:\dtРезультат:
List of relations Schema | Name | Type | Owner | Storage --------+-----------------+-------+---------+---------------------- public | spatial_ref_sys | table | gpadmin | heap public | test | table | gpadmin | heap public | test2 | table | gpadmin | ao_column public | test3 | table | gpadmin | ao_column (4 rows)
-
Отключитесь от базы данных
adbи запустите утилитуgpbackupпод пользователемgpadmin, заполнив параметр--plugin-config. Обратите внимание, что при помощи аргумента--include-tableзапрошен бэкап одной таблицы:$ gpbackup --dbname adb --no-compression --single-data-file --include-table public.test --plugin-config /home/gpadmin/adb_ddp_plugin.yamlРЕКОМЕНДАЦИЯПри использовании DDBoost-плагина вместе с утилитой
gpbackupрекомендуется выбирать режим копирования "все таблицы сегмента — один файл" (--single-data-file). Режим параллельного копирования (--jobs) не следует использовать из-за крайне низкой производительности записи.В выводе команды идентифицируйте временную метку бэкапа, которая будет использоваться в качестве названия директории бэкапа и понадобится при восстановлении данных:
[INFO]:-Backup Timestamp = 20251112160114
В случае успешного создания бэкапа вывод команды завершается сообщением:
[INFO]:-Backup completed successfully
-
Убедитесь, что необходимые файлы сформированы и сохранены на выбранном сервере Data Domain Platform. Для этого откройте его директорию /<storage_unit>/<directory>/YYYYMMDD/YYYYMMDDHHmmSS, где:
-
<storage_unit>и<directory>— значения одноименных параметров из YAML-файла с конфигурацией плагина; -
YYYYMMDD— дата создания бэкапа; -
YYYYMMDDHHmmSS— дата и время создания бэкапа (временная метка, которая будет использоваться в качестве аргумента--timestampпри восстановлении данных из текущего бэкапа).
$ ls ./<storage_unit>/<directory>/20251112/20251112160114/Содержимое директории в приведенном примере выглядит следующим образом:
gpbackup_0_20251112160114 gpbackup_3_20251112160114 gpbackup_0_20251112160114_toc.yaml gpbackup_3_20251112160114_toc.yaml gpbackup_1_20251112160114 gpbackup_4_20251112160114 gpbackup_1_20251112160114_toc.yaml gpbackup_4_20251112160114_toc.yaml gpbackup_20251112160114_config.yaml gpbackup_5_20251112160114 gpbackup_20251112160114_metadata.sql gpbackup_5_20251112160114_toc.yaml gpbackup_20251112160114_plugin_config.yaml gpbackup_6_20251112160114 gpbackup_20251112160114_report gpbackup_6_20251112160114_toc.yaml gpbackup_20251112160114_toc.yaml gpbackup_7_20251112160114 gpbackup_2_20251112160114 gpbackup_7_20251112160114_toc.yaml gpbackup_2_20251112160114_toc.yaml
На координатор-хосте в директории $COORDINATOR_DATA_DIRECTORY/backups/YYYYMMDD/YYYYMMDDHHmmSS доступен отчет о выполненном бэкапе с информацией о количестве объектов в резервной копии:
$ cat /data1/master/gpseg-1/backups/20251112/20251112160114/gpbackup_20251112160114_reportПример отчета об успешном бэкапе одной таблицыGreengage Database Backup Report timestamp key: 20251112160114 gpdb version: 7.3.0+dev.845.g704bb9a9ef build 256+git704bb9a gpbackup version: 1.30.6 database name: adb command line: gpbackup --dbname adb --no-compression --single-data-file --include-table public.test --plugin-config /home/gpadmin/adb_ddp_plugin.yaml compression: None plugin executable: adb_ddp_plugin backup section: All Sections object filtering: Include Table Filter includes statistics: No data file format: Single Data File Per Segment incremental: False start time: Wed Nov 12 2025 16:01:14 end time: Wed Nov 12 2025 16:01:52 duration: 0:00:38 backup status: Success segment count: 8 count of database objects in backup: constraints 0 conversions 0 default privileges 0 event triggers 0 indexes 0 policies 0 rules 0 statistics_ext 0 sequences 0 tables 1 triggers 0 views 0
-
gprestore
Для использования плагина ADB DDBoost при восстановлении данных из бэкапов с помощью утилиты gprestore необходимо указать параметр --plugin-config <yaml_path>, где <yaml_path> — это абсолютный путь к настроенному ранее конфигурационному файлу плагина в формате YAML.
Ниже приведен пример восстановления таблицы public.test, для которой ранее был создан бэкап:
-
Подключитесь к базе данных
adbна координатор-хосте кластера ADB под пользователемgpadmin(например, черезpsql). Удалите таблицуpublic.test:DROP TABLE test; -
Убедитесь, что таблица удалена, с помощью
psql-команды\dt:\dtРезультат:
List of relations Schema | Name | Type | Owner | Storage --------+-----------------+-------+---------+---------------------- public | spatial_ref_sys | table | gpadmin | heap public | test2 | table | gpadmin | ao_column public | test3 | table | gpadmin | ao_column (3 rows)
-
Отключитесь от базы данных
adbи запустите утилитуgprestoreпод пользователемgpadmin, заполнив параметр--plugin-config. Обратите внимание, что в аргументе--timestampнеобходимо указать временную метку создания бэкапа в форматеYYYYMMDDHHmmSS:$ gprestore --timestamp 20251112160114 --plugin-config /home/gpadmin/adb_ddp_plugin.yaml --include-table public.testВ случае успешного восстановления данных из бэкапа вывод команды завершается сообщением:
[INFO]:-Restore completed successfully
-
Вновь подключитесь к базе данных
adbи убедитесь, что таблицаpublic.testдоступна:\dtРезультат:
List of relations Schema | Name | Type | Owner | Storage --------+-----------------+-------+---------+---------------------- public | spatial_ref_sys | table | gpadmin | heap public | test | table | gpadmin | heap public | test2 | table | gpadmin | ao_column public | test3 | table | gpadmin | ao_column (4 rows)