Действия сервиса ADB
В этой статье описаны действия, доступные для сервиса ADB в веб-интерфейсе ADCM.
Create database
Воссоздает дефолтную базу данных.
Название по умолчанию — adb.
Эта база данных требуется для установки большинства расширений ADB.
Как правило, это действие не требуется, поскольку база данных создается автоматически во время установки ADB. Однако его можно выполнить, если база данных была случайно удалена.
После того как действие успешно завершилось, вы можете проверить, что БД создана:
-
Подключитесь к хосту координатора ADB под учетной записью пользователя
gpadmin:$ sudo su - gpadmin -
Выведите список БД:
$ psql -lВ выводе команды должна присутствовать БД
adb:List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+---------+----------+------------+------------+--------------------- adb | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | =Tc/gpadmin + | | | | | gpadmin=CTc/gpadmin postgres | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | template0 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/gpadmin + | | | | | gpadmin=CTc/gpadmin template1 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/gpadmin + | | | | | gpadmin=CTc/gpadmin (5 rows)
Create role
Добавляет новую роль в кластер.
На вкладке Configuration открывшегося окна заполните параметры.
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
Role name |
Уникальное имя новой роли |
— |
Role password |
Пароль роли. Не может быть пустым |
— |
Allow this role to log in |
Флаг, определяющий, можно ли использовать роль для подключения к БД.
Если значение — |
true |
Make role superuser |
Флаг, определяющий, является ли роль суперпользователем |
false |
Allow role to create databases |
Флаг, определяющий, может ли роль создавать новые базы данных |
false |
Allow role to create users/roles |
Флаг, определяющий, может ли роль создавать новые роли |
false |
Allow role to create external tables |
Флаг, определяющий, может ли роль создавать внешние таблицы |
false |
Resource Group |
Название одной из существующих ресурсных групп, которой будет принадлежать роль. Значение не может быть пустым, так как каждая роль должна входить в ресурсную группу |
default_group |
Enable auto core dump
Устанавливает сервис Auto Core Dump (systemd-coredump) на хостах координатора, резервного координатора и сегментов.
При вызове действия используются следующие значения параметров сервиса:
-
Storage=external— дампы памяти (core dump) будут храниться в директории /var/lib/systemd/coredump/. -
MaxUse=1024M— удалять старые дампы, если их размер превышает 1 ГБ.
Чтобы проверить, что сервис успешно установлен и запущен, выполните следующую команду на хосте координатора, резервного координатора или сегмента:
$ systemctl status systemd-coredump.socket
Сервис должен иметь статус active (listening):
systemd-coredump.socket - Process Core Dump Socket
Loaded: loaded (/lib/systemd/system/systemd-coredump.socket; static)
Active: active (listening) since Thu 2025-09-04 10:24:43 UTC; 21min ago
Docs: man:systemd-coredump(8)
Listen: /run/systemd/coredump (SequentialPacket)
Accepted: 0; Connected: 0;
CGroup: /system.slice/systemd-coredump.socket
Disable auto core dump
Удаляет сервис Auto Core Dump (systemd-coredump) и его конфигурационные файлы.
Enable mirroring
Включает репликацию данных primary-сегментов путем добавления mirror-сегментов в кластер.
На вкладке Configuration открывшегося окна в списке Type of mirroring выберите тип зеркалирования: распределенное (spread) или групповое (group).
По умолчанию используется распределенное зеркалирование. При выборе такого зеркалирования действие Enable mirroring проверяет, что число сегментных хостов в кластере больше числа сегментов на одном хосте и что число сегментов на хост без остатка делится на число data-каталогов. Если эти условия не выполняются, то действие завершится ошибкой.
Install diskquota
Устанавливает расширение ADB diskquota. Это расширение предназначено для ограничения дискового пространства, выделяемого под схемы и роли.
Действие создает базу данных diskquota и схему diskquota и регистрирует расширение diskquota.
Чтобы проверить наличие расширения diskquota, выполните следующую команду:
SELECT * FROM pg_extension WHERE extname = 'diskquota';
Результат команды:
oid | extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-------+-----------+----------+--------------+----------------+------------+---------------+--------------
20312 | diskquota | 10 | 2200 | t | 2.3 | {20314,20321} | {"",""}
(1 row)
После установки diskquota становятся доступными действия Uninstall diskquota и Reinstall diskquota.
Install MADlib
Устанавливает библиотеку MADlib.
Действие создает расширение и схему madlib.
Чтобы проверить установленную версию, выполните следующую команду:
SELECT madlib.version();
Результат команды:
version --------------------------------------------------------------------------------------------------------- MADlib version: 2.1.0, git revision: 6.22.1_arenadata41-244-g5ab0b4c4, cmake configuration time: Tue Oct 14 14: 46:34 UTC 2025, build type: RelWithDebInfo, build system: Linux-4.15.0-175-generic, C compiler: gcc 11, C++ comp iler: g++ 11 (1 row)
После установки MADlib становятся доступными действия Uninstall MADlib и Reinstall MADlib.
Install PostGIS
Устанавливает расширение PostGIS.
Чтобы проверить установленную версию PostGIS, выполните следующую команду:
SELECT PostGIS_Lib_Version();
Результат команды:
postgis_lib_version --------------------- 3.3.2 (1 row)
После установки PostGIS становятся доступными действия Uninstall PostGIS и Reinstall PostGIS.
Reconfigure
Обновляет конфигурацию сервиса в соответствии с параметрами конфигурации.
Действие перезапускает кластер (с помощью команды gpstop -arM fast), если был изменен один из следующих конфигурационных параметров:
-
Interconnect properties → Interconnect type
-
Любой параметр в блоке SSL
Если изменения не касались этих параметров, действие перечитывает конфигурацию без перезапуска всего кластера (с помощью команды gpstop -au).
Redistribute
Действие Redistribute предназначено для перераспределения данных между сегментами недавно расширенного кластера ADB. Действие доступно только после успешного завершения кластерного действия Expand. При выполнении действия используется Greenplum-утилита gpexpand.
Перед запуском действия рекомендуется выполнить ранжирование таблиц баз данных, т.е. указать, в каком порядке следует перераспределять таблицы.
Ранжирование таблиц перед перераспределением
Приоритет обработки таблиц во время перераспределения определяется их рангом (значением столбца rank) в таблице gpexpand.status_detail. Таблицы с наименьшим рангом будут перераспределяться в первую очередь. Для ранжирования таблиц используйте следующие шаги:
-
Подключитесь к базе данных
postgresкластера ADB под пользователемgpadmin(например, черезpsql). -
Для всех строк таблицы
gpexpand.status_detailустановите начальное значение столбцаrank, который будет считаться максимальным (и соответствовать наименьшему приоритету обработки), например100:UPDATE gpexpand.status_detail SET rank = 100; -
Уменьшите значение
rankдля тех таблиц, которые должны быть перераспределены в первую очередь. Например, следующие запросы приведут к тому, что во время выполнения действия Redistribute первой будет обработана таблицаpublic.test, затемpublic.test2и далее все остальные изgpexpand.status_detail.UPDATE gpexpand.status_detail SET rank = 10 WHERE fq_name = 'public.test'; UPDATE gpexpand.status_detail SET rank = 20 WHERE fq_name = 'public.test2';
|
РЕКОМЕНДАЦИЯ
|
Запуск перераспределения
Запуск перераспределения осуществляется с помощью действия Redistribute. Перераспределение рекомендуется выполнять в период низкой нагрузки на базу данных, когда блокировки таблиц не будут оказывать существенного влияния на функционирование кластера.
|
ВАЖНО
|
При выборе действия Redistribute открывается диалоговое окно, в котором можно заполнить следующие поля:
-
Timeout for expanding — максимальная длительность сеанса перераспределения в часах, минутах и секундах.
-
Number of parallel processes — определяет количество таблиц, перераспределяемых одновременно (соответствует значению опции
-nутилитыgpexpand). Допускаются значения 1 — 96. Для каждого процесса перераспределения требуется два соединения к БД: одно для изменения таблицы и одно для обновления статуса таблицы в схемеgpexpand. Перед увеличением значения Number of parallel processes проверьте значение серверного параметраmax_connectionsи убедитесь, что лимит соединений не исчерпан.
Для запуска действия Redistribute нажмите Run в диалоговом окне.
Если перераспределение данных всех таблиц завершается в срок, указанный в поле Timeout for expanding, схема gpexpand удаляется из базы данных postgres. В противном случае продолжить перераспределение можно путем повторного вызова действия Redistribute.
Мониторинг перераспределения
Для отслеживания прогресса перераспределения данных в режиме реального времени можно использовать запросы к следующим объектам схемы gpexpand в базе данных postgres:
-
gpexpand.status— таблица, отображающая историю изменения статуса процедуры расширения кластера.СтруктураСтолбец Описание status
Статус процедуры расширения кластера ADB. Возможные значения:
-
SETUP— подготовка к расширению начата в ходе выполнения действия Expand. -
SETUP DONE— подготовка к расширению завершена в результате успешного выполнения действия Expand. -
EXPANSION STARTED— перераспределение данных начато в ходе выполнения действия Redistribute. -
EXPANSION STOPPED— перераспределение данных остановлено. Требуется повторный запуск действия Redistribute. -
COMPLETED— перераспределение данных всех таблиц успешно завершено в результате одного или нескольких запусков действия Redistribute.
updated
Дата и время изменения статуса
Пример запросаSELECT * FROM gpexpand.status;Результат:
status | updated -------------------+---------------------------- EXPANSION STARTED | 2024-02-28 08:02:31.026412 SETUP DONE | 2024-02-27 17:40:55.160054 SETUP | 2024-02-27 17:40:50.830922 (3 rows)
-
-
gpexpand.expansion_progress— представление, отображающее текущий статус перераспределения данных (сколько таблиц/байт уже успешно перераспределено и сколько осталось), а также оценочная скорость и примерное время завершения перераспределения данных. Прогноз этих параметров строится один раз при каждом вызове действия Redistribute после обработки первой из таблиц. Статистика по таблицам/байтам обновляется сразу по мере их перераспределения.ПРИМЕЧАНИЕВ ADB запуск утилиты
gpexpandпроизводится с опцией--simple-progress— с целью повышения производительности расширения кластера путем уменьшения информации, записываемой в таблицыgpexpand. Поэтому в таблице ADBgpexpand.expansion_progressзаполняются только поляTables ExpandedиTables Left.СтруктураСтолбец Описание name
Название метрики:
-
Bytes Left— объем еще не распределенных данных (в байтах). -
Bytes Done— объем успешно перераспределенных данных (в байтах). -
Estimated Expansion Rate— оценочная скорость перераспределения данных (с указанием единицы измерения). -
Estimated Time to Completion— прогнозируемая длительность перераспределения данных (в часах, минутах и секундах). -
Tables Expanded— число успешно перераспределенных таблиц. -
Tables Left— число еще не распределенных таблиц.
value
Значение метрики, указанной в столбце
nameПример запросаSELECT * FROM gpexpand.expansion_progress;Результат:
name | value -----------------+------- Tables Expanded | 90 Tables Left | 7 (2 rows)
-
-
gpexpand.status_detail— таблица, отображающая текущий статус перераспределения каждой таблицы/партиции.СтруктураСтолбец Описание table_oid
Внутренний идентификатор таблицы (OID)
dbname
Название базы данных, в которой расположена таблица
fq_name
Полное название таблицы с именем схемы
root_partition_oid
Для партиционированной таблицы — OID корневой партиции. Иначе —
Nonerank
Ранг, определяющий приоритет обработки таблицы во время перераспределения. Таблицы с наименьшим рангом обрабатываются в первую очередь
external_writable
Признак того, что таблица имеет тип
EXTERNAL WRITABLE(для таких таблиц применяется иной синтаксис при вызовеgpexpand)status
Текущий статус перераспределения таблицы:
-
NOT STARTED— перераспределение не начато. -
IN PROGRESS— перераспределение выполняется. -
COMPLETED— перераспределение завершено. -
NO LONGER EXISTS— таблица более не существует.
expansion_started
Дата и время начала перераспределения таблицы. Столбец заполняется после завершения перераспределения
expansion_finished
Дата и время завершения перераспределения таблицы
source_bytes
Размер исходной таблицы (в байтах). Ввиду возможного "раздувания данных" (bloat) в heap-таблицах, а также увеличения числа сегментов в кластере в процессе расширения, не гарантируется, что итоговый размер таблицы останется прежним. Значения данного столбца используются для оценки продолжительности выполнения перераспределения.
В ADB
source_bytes=0для всех таблиц ввиду использования опции--simple-progressПример запросаSELECT dbname, fq_name, status, expansion_started, expansion_finished, source_bytes FROM gpexpand.status_detail;Фрагмент вывода:
dbname | fq_name | status | expansion_started | expansion_finished | source_bytes -----------+-------------------------------------------------------+-------------+----------------------------+----------------------------+-------------- adb | kadb.offsets | NOT STARTED | | | 0 adb | arenadata_toolkit.db_files_history_1_prt_p202310 | NOT STARTED | | | 0 gpperfmon | public.database_history_1_prt_r1013160842 | NOT STARTED | | | 0 gpperfmon | public.log_alert_history_1_prt_r598663655 | NOT STARTED | | | 0 gpperfmon | public.log_alert_history_1_prt_r1113542580 | NOT STARTED | | | 0 adb | public.kafka_ssl | NOT STARTED | | | 0 adb | public.adb_to_kafka_table3 | NOT STARTED | | | 0 adb | arenadata_toolkit.db_files_current | NOT STARTED | | | 0 adb | arenadata_toolkit.db_files_history_1_prt_p202312 | NOT STARTED | | | 0 gpperfmon | public.database_history_1_prt_r2098142994 | NOT STARTED | | | 0 gpperfmon | public.network_interface_history_1_prt_1 | NOT STARTED | | | 0 adb | public.ext_adb_to_kafka_sasl_gssapi | NOT STARTED | | | 0 adb | public.adb_to_kafka_table7 | NOT STARTED | | | 0 adb | arenadata_toolkit.db_files_history_1_prt_default_part | NOT STARTED | | | 0 gpperfmon | public.queries_history_1_prt_r81170841 | NOT STARTED | | | 0 gpperfmon | public.queries_history_1_prt_r419258856 | NOT STARTED | | | 0 gpperfmon | public.diskspace_history_1_prt_r526486693 | NOT STARTED | | | 0 adb | public.test2 | COMPLETED | 2024-02-28 08:02:37.00728 | 2024-02-28 08:02:38.048592 | 0 gpperfmon | public.system_history_1_prt_r1569528921 | COMPLETED | 2024-02-28 08:02:41.066986 | 2024-02-28 08:02:44.182122 | 0 gpperfmon | public.database_history_1_prt_r932188937 | COMPLETED | 2024-02-28 08:02:44.305985 | 2024-02-28 08:02:44.697928 | 0 gpperfmon | public.segment_history_1_prt_1 | COMPLETED | 2024-02-28 08:02:44.841786 | 2024-02-28 08:02:45.426392 | 0 diskquota | arenadata_toolkit.db_files_history_1_prt_default_part | COMPLETED | 2024-02-28 08:02:46.096083 | 2024-02-28 08:02:48.04711 | 0 adb | diskquota.target | COMPLETED | 2024-02-28 08:02:48.166249 | 2024-02-28 08:02:48.602075 | 0 adb | arenadata_toolkit.db_files_history_1_prt_p202402 | COMPLETED | 2024-02-28 08:02:48.73606 | 2024-02-28 08:02:49.505108 | 0
-
Reinstall ADB
Переустанавливает сервис ADB.
На вкладке Configuration открывшегося окна заполните параметры:
-
Reboot cluster servers after installation — флаг, определяющий необходимость автоматической перезагрузки хостов ADB после выполнения действия Reinstall ADB. Значение по умолчанию —
false: перезагрузку потребуется выполнить вручную. -
Reboot timeout, sec — время ожидания перезагрузки хостов (в секундах). Значение по умолчанию —
1800. Значение не может быть меньше600.
Run SQL
Выполняет SQL-команду с правами пользователя gpadmin.
Команда выполняется в базе adb или в другой базе, указанной дефолтной для клиентских подключений.
На вкладке Configuration открывшегося окна в поле SQL query введите SQL-команду.
Чтобы посмотреть результат действия, на странице Jobs нажмите на название действия и перейдите на вкладку Ansible [check] — результат будет в строке SQL query.
Stop
Останавливает сервис ADB. На вкладке Configuration открывшегося окна выберите значение параметра ADB shutdown mode:
-
fast— принудительная остановка сервиса после прерывания и отката выполняющихся транзакций, а также закрытия всех активных соединений. Этот режим используется по умолчанию. -
smart— остановка только в случае отсутствия клиентских соединений к базе данных. Иначе действие завершается с предупреждением. -
immediate— принудительное завершение процессов PostgreSQL без корректной обработки активных транзакций. Этот режим не рекомендуется к использованию, так как в некоторых случаях может привести к повреждению базы данных.
Manage tablespace
Создает табличное пространство (tablespace) или изменяет существующие.
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
Name |
Уникальное название нового табличного пространства.
Название не может начинаться с префикса Вместо названия нового табличного пространства можно также ввести название существующего, чтобы изменить его параметры |
pg_default |
Path |
Каталог, который будет использоваться табличным пространством. При создании нового табличного пространства этот параметр является обязательным. Действие не создает каталог, поэтому он должен существовать на хосте координатора и каждом сегментном хосте |
— |
Use for temporary and transaction files |
Флаг, определяющий, нужно ли использовать табличное пространство для хранения временных объектов.
Действие добавит табличное пространство в конфигурационный параметр Чтобы проверить табличные пространства, которые используются для хранения временных файлов, выполните следующую команду:
Результат команды: Values on all segments are consistent GUC : temp_tablespaces Coordinator value: fast_storage Segment value: fast_storage |
false |