Использование плагина 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 выполните следующие шаги:
-
Убедитесь, что в вашем кластере установлена версия Arenadata DB Enterprise 6.22.0.38 или выше. При необходимости обновите ADB.
-
Получите RPM-пакет adb-ddp-plugin от команды поддержки Arenadata. Имя пакета будет содержать номер конкретной версии, в примере ниже версия не показана с целью упрощения. Пакет необходимо установить на все хосты кластера, выполнив вход под пользователем с правами
sudo
. Ниже приведен пример установки через пакетный менеджер YUM:$ sudo yum install -y adb-ddp-plugin.rpm
В результате успешного выполнения команды создается исполняемый файл плагина $GPHOME/bin/adb_ddp_plugin.
-
Установите библиотеку libDDBoost.so на все хосты кластера, если она не была установлена ранее. Ниже приведен пример установки через пакетный менеджер YUM:
$ sudo yum install -y libddboost.rpm
ПРИМЕЧАНИЕВ нашем примере при установке библиотеки на хостах с ОС CentOS 7 файл libDDBoost.so создается в директории /lib64. В общем случае путь к файлу может быть иным.
-
Подключитесь к master-хосту ADB под пользователем
gpadmin
:$ sudo su - gpadmin
-
На master-хосте создайте конфигурационный YAML-файл в домашней директории пользователя /home/gpadmin (например, с именем adb_ddp_plugin.yaml). Пример файла и его описание приведены ниже.
executablepath: /usr/lib/gpdb/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"
Имя | Описание | Default | Обязательность |
---|---|---|---|
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, в которую будут сохраняться все файлы, создаваемые в рамках резервного копирования БД с помощью утилиты gpbackup. При создании каждого бэкапа плагин автоматически создает все вложенные каталоги в /<storage_unit>/<directory>, соответствующие дате и времени создания бэкапа: /<storage_unit>/<directory>/YYYYMMDD/YYYYMMDDHHmmSS/ |
— |
Да |
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
на master-хосте кластера 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 | append only columnar public | test3 | table | gpadmin | append only columnar (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 completed successfully
-
Убедитесь, что необходимые файлы сформированы и сохранены на выбранном сервере Data Domain Platform. Для этого откройте его директорию /<storage_unit>/<directory>/YYYYMMDD/YYYYMMDDHHmmSS, где:
-
<storage_unit>
и<directory>
— значения одноименных параметров из YAML-файла с конфигурацией плагина; -
YYYYMMDD
— дата создания бэкапа; -
YYYYMMDDHHmmSS
— дата и время создания бэкапа (временная метка, которая будет использоваться в качестве аргумента--timestamp
при восстановлении данных из текущего бэкапа).
$ ls ./ddtest-dstu/gpbackup/20240130/20240130160839
Содержимое директории в нашем примере выглядит следующим образом:
gpbackup_0_20240130160839 gpbackup_3_20240130160839 gpbackup_0_20240130160839_toc.yaml gpbackup_3_20240130160839_toc.yaml gpbackup_1_20240130160839 gpbackup_4_20240130160839 gpbackup_1_20240130160839_toc.yaml gpbackup_4_20240130160839_toc.yaml gpbackup_20240130160839_config.yaml gpbackup_5_20240130160839 gpbackup_20240130160839_metadata.sql gpbackup_5_20240130160839_toc.yaml gpbackup_20240130160839_plugin_config.yaml gpbackup_6_20240130160839 gpbackup_20240130160839_report gpbackup_6_20240130160839_toc.yaml gpbackup_20240130160839_toc.yaml gpbackup_7_20240130160839 gpbackup_2_20240130160839 gpbackup_7_20240130160839_toc.yaml gpbackup_2_20240130160839_toc.yaml
-
gprestore
Для использования плагина ADB DDBoost при восстановлении данных из бэкапов с помощью утилиты gprestore необходимо указать параметр --plugin-config <yaml_path>
, где <yaml_path>
— это абсолютный путь к настроенному ранее конфигурационному файлу плагина в формате YAML.
Ниже приведен пример восстановления таблицы public.test
, для которой ранее был создан бэкап:
-
Подключитесь к базе данных
adb
на master-хосте кластера 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 | append only columnar public | test3 | table | gpadmin | append only columnar (3 rows)
-
Отключитесь от базы данных
adb
и запустите утилиту gprestore под пользователемgpadmin
, заполнив параметр--plugin-config
. Обратите внимание, что в аргументе--timestamp
необходимо указать временную метку создания бэкапа в форматеYYYYMMDDHHmmSS
:$ gprestore --timestamp 20240130160839 --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 | append only columnar public | test3 | table | gpadmin | append only columnar (4 rows)