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

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

примечание

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

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

  1. Развернуть Time в Docker-compose (см. Installation Guide → Docker-compose)

  2. Зайти на созданный инстанс, создать пользователя и команду:

    warning
    • Данный пользователь будет в роли "Администратор системы".
    • Эти данные понадобятся для входа после востановления БД на финальном шаге.
    • Название команде лучше задать сразу то, которое вы хотите видеть в итоге у себя на целевом инстансе.

    В случае, если имя команды не соответствует целевому (данные на следующем шаге 3 были загружены не в ту команду), то перед выполнением шага 5 нужно выполнить:

    psql UPDATE teams SET name = '<имя команды>';
  3. Загрузить данные в БД развернутого инстанса Time в Docker Compose: Загрузка данных

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

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

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

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

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

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

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