Войти

Создание резервных копий витрины данных конфигурации установки Лайт

Для создания резервных копий Витрины данных конфигурации установки Лайт требуется настроить резервное копирование базы данных ProStore (PostrgeSQL). Для этого следует использовать программу создания резервных копий базы данных PostgreSQL - pg_dump, которая создаёт целостные копии, даже если база параллельно используется. Программа pg_dump не препятствует доступу других пользователей к базе данных (ни для чтения, ни для записи).
 
Программа pg_dump выгружает только одну базу данных. Чтобы сохранить глобальные объекты, относящиеся ко всем базам в кластере, например, роли и табличные пространства, воспользуйтесь программой pg_dumpall.
 
Выгружаемые данные могут быть сохранены в виде скрипта, либо в одном из архивных форматов. Скрипты представляют собой текстовые файлы, содержащие SQL-команды, необходимые для воссоздания базы данных до состояния на момент создания скрипта. Для восстановления из скрипта его содержимое можно передать psql. Скрипты можно использовать для восстановления базы на других машинах, в том числе с иной архитектурой, а с некоторыми коррективами даже в других СУБД.
 
Для восстановления из архивных форматов файлов используется утилита pg_restore. Эти форматы позволяют указывать pg_restore, какие объекты базы данных восстановить, а также позволяют изменить порядок следования восстанавливаемых объектов. Архивные форматы файлов спроектированы так, чтобы их можно были переносить на другие платформы с другой архитектурой.
 
Применение архивных форматов сочетанием  утилит pg_restore и pg_dump позволяет организовывать эффективный механизм архивации и переноса данных. pg_dump можно использовать для резервирования всей базы данных, а затем при применении pg_restore выбрать нужные объекты для восстановления. Наиболее гибкие форматы выходных файлов это «custom» (-Fc) и «directory» (-Fd). Они позволяют выбрать и изменить порядок объектов, поддерживают восстановление в несколько потоков, а также сжимаются по умолчанию. При этом только формат directory поддерживает выгрузку данных в несколько потоков.

Во время работы pg_dump следует обращать внимание на предупреждения, которые печатаются в стандартный поток ошибок, особенно ввиду рассмотренных далее ограничений.

Плановое резервное копирование информации


Администратор резервного копирования настраивает процедуры резервного копирования информационных ресурсов витрины с периодичностью их выполнения не реже, чем 1 раз в сутки.

Состав копируемой информации, используемые устройства хранения резервных копий, выбор методов резервного копирования и программных средств для выполнения данных операций, ротация резервных копий определяются администратором резервного копирования самостоятельно и могут быть изменены им с целью оптимизации процесса резервного копирования и использования устройств хранения резервных копий.

Администратор резервного копирования вправе изменять периодичность проведения операций резервного копирования в сторону уменьшения временных интервалов между процедурами резервного копирования.

Полное копирование должно применяться не реже, чем один раз в неделю.

Рекомендации по выполнению резервного копирования


1. Определить период времени для резервного копирования, когда в витрину не выполняется загрузка данных.

2. Убедиться, что нет активных загрузок, для этого выполнить команду:
 get_delta_hot(),

Пример ответа:
 0

где 
0 – активных загрузок нет.

3. Остановить следующие docker-контейнеры:
  • CSV-uploader;
  • Сервис исполнения запросов.

4. Сделать резервную копию volume для Apache ZooKeeper:
sudo tar -czvf ~/zokeeper.tgz /var/lib/docker/volumes/zookeeper/_data/data

5. Сделать резервную копию PostgreSQL через pg_dump (внутри docker-контейнера), для этого выполните команду:
docker exec postgres pg_dump -U dtm -v -Fc -Z0 test -f /var/lib/postgresql/data/db-2022-07-25.dump

где /var/lib/postgresql/data/db-2022-07-25.dump – директория, в которую будет выгружена резервная копия.
     и 2022-07-25 – дата создания резервной копии

6. Запустить Сервис исполнения запросов.


7. Запустить CSV-uploader.

Контроль результатов резервного копирования


Контроль результатов выполнения процедур резервного копирования осуществляется администратором резервного копирования в срок до 12:00 рабочего дня, следующего за установленной датой выполнения этих процедур. Контроль результатов резервного копирования производится путем просмотра журналов событий операционной системы и специализированного программного обеспечения. В случае обнаружения сбоя планового резервного копирования администратор должен выполнить процедуру внепланового резервного копирования информационных ресурсов Витрины.

Внеплановое резервное копирование


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

  • сбоя планового резервного копирования;
  • установки на сервер нового программного обеспечения, модификации установленного программного обеспечения.

 Действия администратора резервного копирования при внеплановом резервном копировании аналогичны действиям при плановом резервном копировании, при этом если внеплановое резервное копирование производится по причине сбоя планового, то администратор должен выявить и устранить причину возникновения сбоя, выполнив следующие действия:

  • Проверить функционирование аппаратной части сервера (дисковые массивы, оперативная память, сетевая карта). Устранить причины сбоя путем замены вышедших из строя компонентов;
  • Проверить функционирование операционной системы сервера. Устранить причины сбоя путем перенастройки, установки патчей, переустановки операционной системы;
  • Проверить доступность сервера из локальной вычислительной сети. Проверить функционирование сетевых сервисов операционной системы, сетевых настроек. Устранить причины сбоя путем переустановки и перенастройки сетевых сервисов.

Восстановление данных витрины из резервных копий


Восстановление данных витрины из резервных копий производится администратором резервного копирования самостоятельно в случаях неработоспособности серверов или сервисов.

Рекомендации по восстановлению из резервной копии:

1. Остановить следующие docker-контейнеры:

  • CSV-uploader;
  • Сервис исполнения запросов;
  • Zookeeper;
  • Kafka.

2. Распаковать резервную копию:
rm -rf /var/lib/docker/volumes/zookeeper/_data/data/*
tar -xzvf /home/datamart/zookeeper-2022-07-25.tgz -C /

3. После выполнения команд запустить остановленные ранее контейнеры Zookeeper и Kafka.

4. Убрать оставшиеся коннекты:
docker exec postgres psql -U dtm -c 'SELECT pid, pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = current_database() AND pid <> pg_backend_pid();' test

5. Сделать восстановление PostgreSQL через pg_restore (внутри docker-контейнера), для этого выполните команду:
docker exec postgres pg_restore -U dtm -Fc -v --clean --create --if-exists -d postgres /var/lib/postgresql/data/db-2022-07-25.dump

где 
/var/lib/postgresql/data/db-2022-07-25.dump – директория, из которой будет восстановлена резервная копия.

6. Запустить Сервис исполнения запросов.

7. Запустить CSV-uploader.
Авторизуйтесь, чтобы оставить комментарий к статье