Инструкция по восстановлению бэкапа БД Time
Доступно только в On-Premise инсталляции Time.
Подготовительный этап
-
Развернуть Time в Docker-compose (см. Installation Guide → Docker-compose)
-
Зайти на созданный инстанс, создать пользователя и команду:
warning- Данный пользователь будет в роли "Администратор системы".
- Эти данные понадобятся для входа после востановления БД на финальном шаге.
- Название команде лучше задать сразу то, которое вы хотите видеть в итоге у себя на целевом инстансе.
В случае, если имя команды не соответствует целевому (данные на следующем шаге 3 были загружены не в ту команду), то перед выполнением шага 5 нужно выполнить:
psql UPDATE teams SET name = '<имя команды>';
-
Загрузить данные в БД развернутого инстанса Time в Docker Compose: Загрузка данных
-
Зайти в контенер БД postgres в docker:
docker exec -it postgres /bin/bash
-
Сделать бэкап БД:
export PG_HOST="<хост БД>"
export PG_PORT="<порт БД>"
export PG_DBNAME="<имя БД>"
export PG_USERNAME="<имя пользователя БД>"
export PG_DUMP_FILE="<имя файла для сохранения дампа>"
pg_dump \
--format=custom \
--blobs \
--host="${PG_HOST}" \
--port="${PG_PORT}" \
--dbname="${PG_DBNAME}" \
--username="${PG_USERNAME}" \
--no-owner \
--no-privileges \
--clean \
--verbose \
--file="${PG_DUMP_FILE}" \
2>&1 -
Выйти из контенера postgres и скопировать дамп БД из контенера на хост:
docker cp postgres:/<путь к директории>/<имя файла дампа> /<путь для сохранения на локальном хосте>
Восстановление БД из бэкапа
-
Рекомендуем сделать бэкап существующей БД Time:
export PG_HOST="<хост БД>"
export PG_PORT="<порт БД>"
export PG_DBNAME="<имя БД>"
export PG_USERNAME="<имя пользователя БД>"
export PG_BACKUP_FILE="<имя файла для сохранения бэкапа>"
pg_dump \
--format=custom \
--blobs \
--host="${PG_HOST}" \
--port="${PG_PORT}" \
--dbname="${PG_DBNAME}" \
--username="${PG_USERNAME}" \
--no-owner \
--no-privileges \
--clean \
--verbose \
--file="${PG_BACKUP_FILE}" \
2>&1 -
Востановление БД из дампа
осторожноДанное действие перезапишет все существующие данные в целевой БД!!!
export PG_HOST="<хост БД>"
export PG_PORT="<порт БД>"
export PG_DBNAME="<имя БД>"
export PG_USERNAME="<имя пользователя БД>"
export PG_DUMP_FILE="<имя файла дампа скопированного после восстановления данных в БД в Docker-compose: Подготовительный этап → шаг 6>"
pg_restore \
--format=custom \
--blobs \
--host="${PG_HOST}" \
--port="${PG_PORT}" \
--dbname="${PG_DBNAME}" \
--username="${PG_USERNAME}" \
--no-owner \
--no-privileges \
--clean \
--single-transaction \
--if-exists \
--verbose \
"${PG_DUMP_FILE}" \
2>&1 -
После успешного востановления БД нужно перезайти в Time.
Для первого входа необходимо использовать логин/пароль пользователя, созданного в "Подготовительный этап" → шаг 1.
-
Запустить реиндексацию поиска на целевой инсталляции: Системная консоль → Окружение → Elasticsearch → нажмите кнопку Индексировать сейчас
В итоге будут восстановлены следующие данные:
- Команда
- Каналы
- Пользователи
- Сообщения