Использование плагина 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 выполните следующие шаги:

  1. Убедитесь, что в вашем кластере установлена версия Arenadata DB Enterprise 6.22.0.38 или выше. При необходимости обновите ADB.

  2. Получите RPM-пакет adb-ddp-plugin от команды поддержки Arenadata. Имя пакета будет содержать номер конкретной версии, в примере ниже версия не показана с целью упрощения. Пакет необходимо установить на все хосты кластера, выполнив вход под пользователем с правами sudo. Ниже приведен пример установки через пакетный менеджер YUM:

    $ sudo yum install -y adb-ddp-plugin.rpm

    В результате успешного выполнения команды создается исполняемый файл плагина $GPHOME/bin/adb_ddp_plugin.

  3. Установите библиотеку libDDBoost.so на все хосты кластера, если она не была установлена ранее. Ниже приведен пример установки через пакетный менеджер YUM:

    $ sudo yum install -y libddboost.rpm
    ПРИМЕЧАНИЕ

    В нашем примере при установке библиотеки на хостах с ОС CentOS 7 файл libDDBoost.so создается в директории /lib64. В общем случае путь к файлу может быть иным.

  4. Подключитесь к master-хосту ADB под пользователем gpadmin:

    $ sudo su - gpadmin
  5. На 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"
Поля конфигурационного файла плагина ADB DDBoost
Имя Описание 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

Уровень логирования. Возможные значения:

  • DEBUG

  • INFO

  • NOTICE

  • WARN

  • ERROR

  • FATAL

WARN

Нет

log_path

Абсолютный путь к директории для записи логов плагина. В указанной директории будет создан файл adb_ddp_plugin.log

/home/gpadmin/gpAdminLogs

Нет

Использование

gpbackup

Для использования плагина ADB DDBoost при создании бэкапов с помощью утилиты gpbackup необходимо указать параметр --plugin-config <yaml_path>, где <yaml_path> — это абсолютный путь к настроенному ранее конфигурационному файлу плагина в формате YAML.

Ниже приведен пример резервного копирования одной таблицы базы данных adb:

  1. Подключитесь к базе данных 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)
  2. Отключитесь от базы данных 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
  3. Убедитесь, что необходимые файлы сформированы и сохранены на выбранном сервере 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, для которой ранее был создан бэкап:

  1. Подключитесь к базе данных adb на master-хосте кластера ADB под пользователем gpadmin (например, через psql). Удалите таблицу public.test:

    DROP TABLE test;
  2. Убедитесь, что таблица удалена, с помощью 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)
  3. Отключитесь от базы данных adb и запустите утилиту gprestore под пользователем gpadmin, заполнив параметр --plugin-config. Обратите внимание, что в аргументе --timestamp необходимо указать временную метку создания бэкапа в формате YYYYMMDDHHmmSS:

    $ gprestore --timestamp 20240130160839 --plugin-config /home/gpadmin/adb_ddp_plugin.yaml --on-error-continue --include-table public.test

    В случае успешного восстановления данных из бэкапа вывод команды завершается сообщением:

    [INFO]:-Restore completed successfully
  4. Вновь подключитесь к базе данных 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)
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней