Настройка внешних баз данных для ADB Control и ADBM
В production-средах рекомендуется использовать внешние базы данных PostgreSQL и ClickHouse для хранения данных ADB Control (см. Query DB и Metrics DB в статье Обзор Arenadata DB Control) и ADBM (см. PostgreSQL в статье Обзор Arenadata DB Backup Manager) по следующим причинам:
-
У вас будет возможность настроить внешние БД на хостах с ресурсами, необходимыми для обеспечения высокой производительности, а также предусмотреть отказоустойчивость (High Availability, HA).
-
Процесс восстановления ADB Control после сбоев будет проходить значительно проще и состоять по большей части из шагов по настройке сервисов.
Ниже приведены шаги, необходимые для настройки внешних БД в ADB ES (начиная с версии ADB Control 4.16.0). Для получения информации об установке внешних БД для предыдущих версий ADB Control и ADBM (поставлявшихся в виде сервисов в составе ADB) следует обратиться к соответствующим версиям документации ADB:
|
ВНИМАНИЕ
|
PostgreSQL
Шаг 1. Запуск SQL-запросов для базы данных ADB Control
-
Выполните следующие запросы на стороне PostgreSQL. Запросы следует запускать под пользователем с правами superuser:
CREATE ROLE <user_name> LOGIN PASSWORD '<user_password>'; ALTER ROLE <user_name> SET search_path TO public, adcc; CREATE DATABASE <prefix>_adcc WITH owner <user_name>; -
Подключитесь к созданной базе данных под суперпользователем и выполните:
CREATE SCHEMA adcc; ALTER SCHEMA adcc OWNER TO <user_name>; CREATE EXTENSION IF NOT EXISTS pgcrypto WITH schema public; CREATE EXTENSION IF NOT EXISTS btree_gin WITH schema public; CREATE EXTENSION IF NOT EXISTS pg_trgm WITH schema public; GRANT SELECT ON ALL TABLES IN SCHEMA pg_catalog TO <user_name>; CREATE OPERATOR adcc.^| (PROCEDURE = jsonb_exists_any, LEFTARG = jsonb, RIGHTARG = _text, RESTRICT = contsel, JOIN = contjoinsel); ALTER OPERATOR adcc.^|(jsonb, text[]) OWNER TO <user_name>; CREATE OPERATOR CLASS adcc.jsonb_ops_custom FOR TYPE jsonb USING gin AS OPERATOR 7 pg_catalog.@>(jsonb, jsonb), OPERATOR 10 adcc.^| (jsonb, _text), FUNCTION 1 gin_compare_jsonb(text, text), FUNCTION 2 gin_extract_jsonb(jsonb, internal, internal), FUNCTION 3 gin_extract_jsonb_query(jsonb, internal, smallint, internal, internal, internal, internal), FUNCTION 4 gin_consistent_jsonb(internal, smallint, jsonb, integer, internal, internal, internal, internal), FUNCTION 6 gin_triconsistent_jsonb(internal, smallint, jsonb, integer, internal, internal, internal); ALTER OPERATOR CLASS adcc.jsonb_ops_custom USING GIN OWNER TO <user_name>;где
<user_name>— имя созданного на предыдущем шаге пользователя. -
Опционально можно запустить следующий запрос для отключения синхронной записи в WAL-файлы с целью увеличения производительности:
ALTER DATABASE <prefix>_adcc SET synchronous_commit = OFF;
Шаг 2. Запуск SQL-запросов для базы данных ADBM
-
Выполните следующие запросы на стороне PostgreSQL. Запросы следует запускать под дефолтным пользователем
postgresс правамиsuperuser:ALTER ROLE <user_name> SET search_path TO public, adcc, adbm; (1) CREATE DATABASE <prefix>_adbm WITH owner <user_name>; (2)1 Присвоение пользователю <user_name>(созданному ранее для ADB Control) необходимых прав для подключения к внешней БД ADBM.2 Создание базы данных для миграции данных ADBM. -
Подключитесь к созданной базе данных под суперпользователем и выполните:
CREATE SCHEMA adbm; (1) GRANT USAGE, CREATE ON SCHEMA adbm TO <user_name>; (2) ALTER DEFAULT PRIVILEGES IN SCHEMA adbm GRANT UPDATE, INSERT, SELECT, DELETE ON TABLES TO <user_name>; CREATE EXTENSION btree_gin WITH schema adbm; CREATE EXTENSION pg_trgm WITH schema adbm; GRANT SELECT ON pg_extension TO <user_name>;1 Создание схемы adbmв базе данных для миграции данных ADBM.2 Создание расширений (extension) в схеме adbmи предоставление созданному пользователю<user_name>прав для их использования.
Шаг 3. Настройка pg_hba.conf на стороне PostgreSQL
-
Обеспечьте возможность доступа хоста с ADB Control к внешним базам данных PostgreSQL. Для этого на стороне сервера PostgreSQL требуется добавить записи следующего вида в файл pg_hba.conf.
host <prefix>_adcc <user_name> <adbc_address> trust
host <prefix>_adbm <user_name> <adbm_address> trust
где:
-
<prefix>_adcc,<prefix>_adbm— имена созданных выше БД. -
<user_name>— имя созданного выше пользователя. -
<adbc_address>— IP-адрес ADB Control с подсетью. -
<adbm_address>— IP-адрес ADBM с подсетью.
hostssl all all 0.0.0.0/0 md5
Шаг 4. Настройка сервиса Database в ADB ES
-
На странице конфигурирования сервиса Database выберите
External postgres parameterв поле Database type и заполните параметры в открывшемся списке. Назначение параметров описано в разделе Конфигурационные параметры → Database → External postgres parameters.
Параметры для подключения к внешней БД PostgreSQL -
После заполнения параметров нажмите Save для сохранения конфигурации Database.
-
Выполните установку сервиса Database с помощью сервисного действия Install либо примените действие Reinstall к ранее установленному сервису Database.
ClickHouse
|
ВАЖНО
|
-
Выполните следующие запросы для создания пользователя с необходимыми правами на стороне ClickHouse:
CREATE USER <user_name> NOT IDENTIFIED; GRANT SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE ON *.* TO <user_name> -
На странице конфигурирования сервиса Clickhouse выберите
External Clickhouse parametersв поле Database type и заполните параметры в открывшемся списке. Назначение параметров описано в разделе Конфигурационные параметры → Clickhouse → External Clickhouse parameters.
Параметры для подключения к внешней БД ClickHouse -
После заполнения параметров нажмите Save для сохранения конфигурации Clickhouse.
-
Выполните установку сервиса Clickhouse с помощью сервисного действия Install либо примените действие Reinstall к ранее установленному сервису Clickhouse.