Резервное копирование Glarus BI¶
Избегайте потери данных вашего приложения (всех ваших запросов, дашбордов, коллекций и так далее), создавая резервные копии ваших данных.
Glarus BI использует единую базу данных SQL для всех своих метаданных приложения, поэтому вам нужно создать резервную копию этой базы данных. Вы можете использовать эту резервную копию для восстановления метаданных Glarus BI, если что-то пойдёт не так (например, во время обновления).
При работе с резервными копиями рекомендуется соблюдать общепринятые правила и принципы: регулярность, периодическую проверку целостности с имитацией аварийного восстановления и контролем процесса на наличие ошибок, получение не менее 3-х копий с хранением на носителях различных физических типов, отдельно от сервера БД, ротацию.
Резервное копирование базы данных H2 по умолчанию¶
Если вы не указали базу данных приложения с помощью переменных среды при запуске Glarus BI, Glarus BI создаст встроенную базу данных H2 в своем каталоге.
Но если вы на том этапе, когда у вас есть запросы и дашборды, которые вы хотите сохранить, вам следует рассмотреть возможность перехода на базу данных, готовую к промышленной эксплуатации, прежде чем выполнять обновление.
Если вы просто используете Glarus BI для личного использования и хотите сохранить данные вашего приложения, вот что вам нужно сделать.
Если вы используете Docker-образ Glarus BI¶
Если вы используете Docker, вы уже должны были перейти на базу данных уровня промышленной эксплуатации.
Перед миграцией на промышленную базу данных приложения вам следует скопировать файл базы данных приложения H2 из контейнера Docker. Например, если контейнер называется metabase, выполните следующую команду:
Приведённая выше команда скопирует файл базы данных в каталог, из которого вы запустили команду. Вы также можете создать копию этого файла H2 и использовать ее для миграции данных в базу данных уровня промышленной эксплуатации. См. Миграция с H2.
Резервное копирование Glarus BI в Docker Compose¶
В стандартной поставке БД метаданных управляется контейнером с Postgres, а витрины данных — ClickHouse. Для полноценного восстановления вам нужны работоспособные дампы как Postgres, так и ClickHouse. Ниже приведены примеры их получения и восстановления БД. Перед промышленным использованием рекомендуем проверить их в тестовом окружении, а в случае необходимости обратиться к официальным руководствам с описанием процедур резервного копирования и восстановления соответствующих СУБД:
Резервное копирование БД метаданных (Postgres)¶
Определить название БД метаданных приложения можно в файле .env — значение PG_DBNAME после двоеточия и пробела. По умолчанию: glarusbi.
Название БД, порт, логин, пароль — в скрытом файле .env.
Команду для создания дампа нужно выполнять, находясь в каталоге с docker-compose.yml для Glarus BI. Пример:
INSTANCE=prod && \
POSTGRES_DUMP=glarusbi_postgres_${INSTANCE}_$(date +%Y_%m_%d).dump && \
docker compose exec postgres pg_dump -Fc --verbose --user=glarusbi glarusbi > $POSTGRES_DUMP && \
md5sum $POSTGRES_DUMP > ${POSTGRES_DUMP}.md5
В примере выше создаётся дамп на промышленном сервере (prod). Замените значение в INSTANCE на то, что соответствует вашему случаю.
Если присмотреться к именованию файла дампа:
glarusbiуказывает на систему,postgres— на СУБД,- в конец добавляется текущая дата: год, месяц и день (текущую дату динамически обеспечивает команда
date). Это позволит хранить и быстро различать несколько резервных копий в одном каталоге.
Команда docker compose exec обеспечивает запуск pg_dump в контейнере.
Команда pg_dump выполняется внутри контейнера, создаёт резервную копию в виде сжатого двоичного файла: пользователь glarusbi, база данных glarusbi, вывод расширен для дополнительного контроля. Восстановление БД из такого файла возможно утилитой pg_restore.
Дамп выгружается в файл вне контейнера. Ожидайте его в текущем каталоге.
Когда файл дампа сформирован, в текущем каталоге создаётся ещё один md5-файл с контрольной суммой, который можно использовать для контроля целостности дампа.
Восстановление БД метаданных (Postgres)¶
Внимание
Риск потери лицензии и данных. Выполняйте команды, только если понимаете их смысл и представляете последствия выполнения.
Команды нужно выполнять, находясь в каталоге с docker-compose.yml для Glarus BI. Положите файл дампа БД и md5 с контрольной суммой файла в этот каталог.
# Остановка контейнеров. Во время замены БД не нужен сервер приложений
docker compose stop
# Запуск только postgres, чтобы заменить БД
docker compose up -d postgres
# Проверка целостности дампа (только, если у вас есть .md5)
md5sum -c glarusbi_postgres_prod_2025_12_10.dump.md5
# Копирование файла дампа внутрь контейнера
docker compose cp glarusbi_postgres_prod_2025_12_10.dump postgres:/
# Сохранение в архив текущей БД метаданных
INSTANCE=test && \
POSTGRES_DUMP=glarusbi_postgres_${INSTANCE}_before_replace_$(date +%Y_%m_%d).dump && \
docker compose exec postgres pg_dump -Fc --verbose --user=glarusbi glarusbi > $POSTGRES_DUMP && \
md5sum $POSTGRES_DUMP > ${POSTGRES_DUMP}.md5
# Восстановление БД из дампа: текущая БД ПЕРЕЗАПИСЫВАЕТСЯ
docker compose exec postgres pg_restore --clean --verbose --dbname=postgres --user=glarusbi glarusbi_postgres_prod_2025_12_10.dump
# Запуск остальных контейнеров
docker compose up -d
В этом примере файл glarusbi_postgres_prod_2025_12_10.dump отправляется в контейнер "postgres" и разворачивается с помощью pg_restore. В качестве БД в аргументах передана служебная postgres для подключения, и это не ошибка, так как название БД, содержимое которой будет перезаписано (обычно glarusbi), хранится внутри дампа.
Если вам нужно создать базу "с нуля" при развёртывании, замените --clean на --create.
Подготовка СУБД ClickHouse к резервному копированию¶
Чтобы работа с резервными копиями в ClickHouse стала возможной, потребуется дополнительно подготовить хранилище: создать каталог для резервных копий, добавить этот каталог в services > clickhouse > volumes Docker Compose, чтобы каталог стал доступен контейнеру и подготовить новый файл backup_disk.xml с конфигурацией пути для выгрузки данных. Эти действия нужно выполнить в каталоге с docker-compose.yml для Glarus BI.
Откройте docker-compose.yml. Найдите блок clickhouse и добавьте строку пути к backup:
Создайте файл backup_disk.xml в clickhouse/config.d:
<clickhouse>
<storage_configuration>
<disks>
<backups>
<type>local</type>
<path>/backup/</path>
</backups>
</disks>
</storage_configuration>
<backups>
<allowed_disk>backup</allowed_disk>
<allowed_path>/backup/</allowed_path>
</backups>
</clickhouse>
Завершите предварительную подготовку перезапуском контейнера:
Резервное копирование БД для витрин данных (ClickHouse)¶
В контуре, где вы планируете выполнить резервное копирование, СУБД должна быть подготовлена к резервному копированию.
Откройте каталог с docker-compose.yml для Glarus BI, составьте и выполните команду, опираясь на пример:
INSTANCE=prod && \
CLICK_DUMP=glarusbi_clickhouse_${INSTANCE}_$(date +%Y_%m_%d).zip && \
docker compose exec clickhouse clickhouse-client --query "BACKUP DATABASE glarusbi TO File('/backup/$CLICK_DUMP')" && \
sudo md5sum clickhouse/backup/$CLICK_DUMP > $CLICK_DUMP.md5
В команде выше определяется переменная для названия файла, где:
prod— сервер промышленной эксплуатации, вам нужно скорректировать это значение вINSTANCEи не перепутать;glarusbi— название БД,clickhouseуказывает на СУБД;- присутствует дата создания: год, месяц, день.
Команда создания дампа отправляется в виде запроса в приложение clickhouse-client, которое запускается в контейнере.
Запрос содержит название БД glarusbi (по умолчанию). В вашем случае оно может отличаться. Определить название БД для витрин данных можно в файле .env — значение CLICK_DBNAME после двоеточия и пробела.
Файл формируется в каталоге clickhouse/backup, доступа у вашего локального пользователя в этот каталог по умолчанию не будет. Чтобы скопировать файл, используйте sudo.
Для ручного контроля целостности файла дампа дополнительно создан md5-файл в текущем каталоге.
Восстановление БД для витрин данных (ClickHouse)¶
В контуре, где вы планируете выполнить восстановление БД, СУБД должна быть подготовлена к резервному копированию.
Скопируйте файл дампа в clickhouse/backup (используйте sudo — у вашего пользователя нет прав на запись в этот каталог).
Также мы рекомендуем взять соответствующий md5-файл контрольной суммы, чтобы выполнить проверку целостности дампа перед развёртыванием. Разместите файл md5 в одном каталоге с docker-compose.yml.
Команды нужно выполнять, находясь в каталоге с docker-compose.yml для Glarus BI.
Название файла glarusbi_clickhouse_prod_2025_12_10.zip в строке восстановления нужно изменить на ваше фактическое.
ClickHouse требует удаления БД перед восстановлением из резервной копии. Поэтому рекомендуем получить ещё один дамп текущей БД, добавив old в название, даже если он у вас уже есть.
Внимание
Риск потери витрины данных. Выполняйте команды, только если понимаете их смысл и представляете последствия их выполнения.
# Проверка целостности файла дампа (только если у вас есть .md5)
sudo md5sum -c glarusbi_clickhouse_prod_2025_12_10.zip.md5
# Остановка контейнеров. Во время замены БД не нужен сервер приложений
docker compose stop
# Запуск только clickhouse, чтобы заменить БД
docker compose up -d clickhouse
# Дамп текущей БД
INSTANCE=test && \
CLICK_DUMP=glarusbi_clickhouse_${INSTANCE}_before_replace_$(date +%Y_%m_%d).zip && \
docker compose exec clickhouse clickhouse-client --query "BACKUP DATABASE glarusbi TO File('/backup/$CLICK_DUMP')"
# УДАЛЕНИЕ текущей БД: НЕ УДАЛЯЙТЕ, ПОКА НЕ УБЕДИТЕСЬ, ЧТО ЕСТЬ КОПИЯ
docker compose exec clickhouse clickhouse-client --query "DROP DATABASE glarusbi"
# Восстановление БД из дампа. "RESTORED" — признак успешного завершения
docker compose exec clickhouse clickhouse-client --query "RESTORE DATABASE glarusbi FROM File('/backup/glarusbi_clickhouse_prod_2025_12_10.zip')"
# Запуск остальных контейнеров
docker compose up -d
Если вы используете JAR-файл Glarus BI¶
- Перейдите в каталог Glarus BI.
- Если ваш Glarus BI запущен, остановите процесс Glarus BI. Вы можете либо закрыть терминал, либо завершить процесс с помощью
Ctrl + C. Если вы запускаете процесс как службу, то остановите службу. - Скопируйте файл базы данных приложения (называется
metabase.db.mv.db) и храните эту копию в безопасном месте. - Перезапустите Glarus BI:
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jarили снова запустите службу.
Amazon RDS для базы данных приложения¶
У Amazon есть свои передовые практики по резервному копированию и восстановлению баз данных RDS, поэтому мы доверимся им. Мы рекомендуем включить автоматическое резервное копирование RDS.
Инструкции можно найти в Руководстве пользователя Amazon RDS (англ.).
Самостоятельно размещённая база данных PostgreSQL¶
Если вы размещаете свою собственную базу данных PostgreSQL, просто следуйте инструкциям PostgreSQL по резервному копированию вашей базы данных.
Пока у вас есть дамп базы данных Glarus BI, ваш экземпляр может быть восстановлен в случае сбоя.