Перейти к основному содержимому

Инструкция по восстановлению бэкапа БД Time

примечание

Доступно только в On-Premise инсталляции Time.

Подготовительный этап

  1. Зайти в контенер БД postgres в docker:

    docker exec -it postgres /bin/bash
  2. Сделать бэкап БД:

    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
  3. Выйти из контейнера postgres и скопировать дамп БД из контейнера на хост:

    docker cp postgres:/<путь к директории>/<имя файла дампа> /<путь для сохранения на локальном хосте>

Восстановление БД из бэкапа

  1. Рекомендуем сделать бэкап существующей БД 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
  2. Восстановление БД из дампа

    осторожно

    Данное действие перезапишет все существующие данные в целевой БД!!!

    export PG_HOST="<хост БД>"
    export PG_PORT="<порт БД>"
    export PG_DBNAME="<имя БД>"
    export PG_USERNAME="<имя пользователя БД>"
    export PG_DUMP_FILE="<имя файла дампа скопированного после восстановления данных в БД в Docker-compose: Подготовительный этап → шаг 6>"

    pg_restore \
    --format=custom \
    --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
  3. После успешного восстановления БД нужно перезайти в Time.

    Для первого входа необходимо использовать логин/пароль пользователя, созданного в "Подготовительный этап" → шаг 1.

  4. Запустить реиндексацию поиска на целевой инсталляции: Системная консольОкружениеElasticsearch → нажмите кнопку Индексировать сейчас

В итоге будут восстановлены следующие данные:

  • Команда
  • Каналы
  • Пользователи
  • Сообщения