Использование плагина 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. Установите пакет adb-ddp-plugin на всех хостах кластера, выполнив вход под пользователем с правами sudo. Ниже приведен пример установки через пакетный менеджер APT:

    $ sudo apt install adb-ddp-plugin

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

  2. Перенесите библиотеку libDDBoost.so в директорию lib на всех хостах кластера.

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

    $ sudo su - gpadmin
  4. На координатор-хосте создайте конфигурационный 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"
Поля конфигурационного файла плагина ADB DDBoost
Имя Описание Значение по умолчанию Обязательность

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 на координатор-хосте кластера 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)
  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 Timestamp = 20251112160114

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

    [INFO]:-Backup completed successfully
  3. Убедитесь, что необходимые файлы сформированы и сохранены на выбранном сервере 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, для которой ранее был создан бэкап:

  1. Подключитесь к базе данных adb на координатор-хосте кластера 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 | ao_column
     public | test3           | table | gpadmin | ao_column
    (3 rows)
  3. Отключитесь от базы данных 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
  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 | ao_column
     public | test3           | table | gpadmin | ao_column
    (4 rows)
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней