Резервное копирование внутренних баз данных
В данном разделе описана настройка резервного копирования баз данных PostgreSQL и ClickHouse, развернутых в кластере Kubernetes. Данный вариант резервного копирования подходит, если база данных:
-
развернута через стандартную установку системы;
-
управляется helm-чартами в кластере Kubernetes, в котором установлена система;
-
является частью инфраструктуры системы.
Требования
-
S3-совместимое хранилище для хранения резервных копий, например: MinIO, AWS S3, Yandex Object Storage.
-
Доступ к утилитам kubectl, helm и evoctl.
Настройка резервного копирования
Вы можете настроить резервное копирование следующими способами:
Интерактивная настройка
-
Подключитесь к кластеру, в котором развернута база данных.
-
Подключитесь к master-узлу или виртуальной машине, с которой производилась установка системы.
-
Перейдите в директорию установщика системы. По умолчанию
/opt/r-vision. -
Запустите процес настройки резервного копирования, выполнив команду:
evoctl instance backup enable -n <namespace>Здесь:
-
<namespace>— название пространства имен, в котором установлена система.
Откроется мастер интерактивной настройки резервного копирования.
-
-
Выберите тип базы данных.
Перемещение по списку опций осуществляется с помощью клавиш со стрелками вверх и вниз. Чтобы выбрать опцию или отменить ее выбор, нажмите на клавишу SPACE.
-
Выберите расписание резервного копирования.

-
Daily at 2:00 AM — ежедневно в 02:00. Рекомендуемый вариант.
-
Daily at 4:00 AM — ежедневно в 04:00.
-
Weekly (Sunday at midnight) — еженедельно, в воскресенье в 00:00.
-
Enter custom cron expression — свое расписание в cron-формате.
Не рекомендуется настраивать резервное копирование чаще одного раза в сутки.
Время в расписании указывается относительно часового пояса в кластере Kubernetes, в котором установлена платформа. -
-
Введите URL-адрес для подключения к S3-совместимому хранилищу.

-
Введите имя корзины (bucket).

-
Введите регион S3-совместимого хранилища.

-
Введите access key для подключения к S3-совместимому хранилищу.

-
Введите secret key для подключения к S3-совместимому хранилищу.

-
Введите secret key повторно для его подтверждения. После ввода данных установщик проверит соединение с S3-совместимым хранилищем.
-
Выберите способ применения конфигурации резервного копирования.

-
Show commands for manual execution (default) — показать команды для применения конфигурации вручную. Рекомендуемый вариант.
-
Execute helm upgrade automatically now — применить конфигурацию автоматически.
-
-
Если вы выбрали вариант применения кофигурации Show commands for manual execution, то примените конфигурацию вручную с помощью команды helm.
Настройка с помощью командной строки
-
Подключитесь к кластеру, на котором развернута база данных.
-
Выполните команду настройки конфигурации в зависимости от сценария использования:
-
Только ClickHouse:
evoctl instance backup enable \ --namespace <namespace> \ --ch-backup \ --s3-endpoint <endpoint> \ --s3-bucket <bucket> \ --s3-access-key <access_key> \ --s3-secret-key <secret_key> -
Только PostgreSQL:
evoctl instance backup enable \ --namespace <namespace> \ --pg-backup \ --s3-endpoint <endpoint> \ --s3-bucket <bucket> \ --s3-access-key <access_key> \ --s3-secret-key <secret_key> -
Обе базы данных через один S3-bucket:
evoctl instance backup enable \ --namespace <namespace> \ --both \ --s3-endpoint <endpoint> \ --s3-bucket <bucket> \ --s3-region <region> \ --s3-access-key <access_key> \ --s3-secret-key <secret_key> \ --auto-upgrade -
Обе базы данных через разные S3-bucket:
evoctl instance backup enable \ --namespace <namespace> \ --both \ --s3-endpoint <endpoint> \ --s3-access-key <access_key> \ --s3-secret-key <secret_key> \ --ch-bucket <ch_bucket> \ --pg-bucket <pg_bucket> -
Обе базы данных через разные S3-совместимые хранилища:
-
Настройка ClickHouse:
evoctl instance backup enable \ --namespace <namespace> \ --ch-backup \ --s3-endpoint <endpoint> \ --s3-bucket <ch_bucket> \ --s3-access-key <access_key> \ --s3-secret-key <secret_key> -
Настройка PosgreSQL:
evoctl instance backup enable \ --namespace <namespace> \ --pg-backup \ --s3-endpoint <endpoint> \ --s3-bucket <pg_bucket> \ --s3-access-key <access_key> \ --s3-secret-key <secret_key>
-
Здесь:
-
<namespace>— название пространства имен, в котором установлена система. -
<endpoint>— URL-адрес S3-совместимого хранилища, например,http://minio:9000 -
<region>— код региона, в котором развернуты и выполняются ваши сервисы и функци AWS, например,ru-central1-a. -
<access_key>— идентификатор ключа доступа к S3-совместимому хранилищу. -
<secret_key>— секретный ключ доступа к S3-совместимому хранилищу. -
<bucket>— название контейнера (bucket) для хранения резервных копий. -
<ch_bucket>— название контейнера (bucket) для хранения резервных копий ClickHouse. -
<pg_bucket>— название контейнера (bucket) для хранения резервных копий PostgreSQL.
-
Работа с резервным копированием
Доступные операции:
| Все действия необходимо производить в кластере Kubernetes, в котором развернута база данных. Подробности о подключении к кластеру приведены в разделе Подключение к кластеру. |
Изменение расписания
| Не рекомендуется настраивать резервное копирование чаще одного раза в сутки. |
Чтобы изменить расписание резервного копирования, выполните команду смены расписания в зависимости от типа базы данных:
-
ClickHouse:
evoctl instance backup configure \ --namespace <namespace> \ --ch-only \ --schedule "<schedule>" -
PostgreSQL:
evoctl instance backup configure \ --namespace <namespace> \ --pg-only \ --schedule "<schedule>"
Здесь:
-
<namespace>— название пространства имен, в котором установлена система. -
<schedule>— новое расписание в cron-формате. Например,30 4 * * *— ежедневно в 4:30.
Изменение данных для подключения к S3-совместимому хранилищу
Чтобы изменить access key и secret key, выполните команду для изменения данных для подключения к S3-совместимому хранилищу:
evoctl instance backup configure \
--namespace <namespace> \
--s3-access-key <new_access_key> \
--s3-secret-key <new_secret_key>
Здесь:
-
<namespace>— название пространства имен, в котором установлена система. -
<new_access_key>— идентификатор ключа доступа к S3-совместимому хранилищу. -
<new_secret_key>— секретный ключ доступа к S3-совместимому хранилищу.
|
Вы можете изменить другие параметры подключения к S3-совместимому хранилищу, указав их в виде флагов в команде
Здесь:
|
Проверка статуса резервного копирования
Чтобы отобразить логи резервного копирования, выполните команду:
evoctl instance backup info -n <namespace>
Здесь:
-
<namespace>— название пространства имен, в котором установлена система.
Отключение резервного копирования
Чтобы отключить резервное копирование, выполните команду в зависимости от сценария:
-
Отключить резервное копирование полностью:
evoctl instance backup disable -n <namespace> -
Отключить только резервное копирование ClickHouse:
evoctl instance backup disable -n <namespace> --ch-only -
Отключить только резервное копирование PostgreSQL:
evoctl instance backup disable -n <namespace> --pg-only
Здесь:
-
<namespace>— название пространства имен, в котором установлена система.
|
Вы можете открыть справку по команде отключения резервного копирования, выполнив команду:
|
Ручной запуск резервного копирования
Чтобы запустить резервное копирование вручную:
-
Выполните резервное копирование вручную с помощью одной из команд:
-
Для ClickHouse:
kubectl create job \ --from=cronjob/clickhouse-backup-shard0 \ manual-ch-$(date +%s) \ -n <namespace> -
Для PostgreSQL:
kubectl create job \ --from=cronjob/postgresql-backup-client \ manual-pg-$(date +%s) \ -n <namespace>
-
-
Проверьте статус задания (job) резервного копирования, выполнив команду:
kubectl get jobs -n <namespace> | grep backup
Здесь:
-
<namespace>— название пространства имен, в котором установлена система.
Восстановление из резервной копии
Восстановление из резервной копии описано в разделе Восстановление из резервных копий.
Была ли полезна эта страница?