• Русский
  • Резервное копирование и восстановление

    Терминология

    ТерминОписание
    PGБаза данных PostgreSQL, используемая SonarQube для хранения основных данных
    ESПоисковый движок Elasticsearch, используемый SonarQube для поиска

    Область применения

    Этот документ применяется к версиям SonarQube 9.9.5 и выше.

    Обзор

    Данные SonarQube в основном состоят из двух частей:

    1. Данные базы данных PostgreSQL (основные данные)
    2. Данные Elasticsearch (поисковые данные)

    Поскольку данные Elasticsearch можно восстановить из базы данных, нам нужно резервировать только базу данных PostgreSQL для обеспечения безопасности данных.

    Резервное копирование

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

    • Если используется экземпляр PG, предоставляемый платформой (рекомендуется при развертывании экземпляров SonarQube):
      • Можно напрямую использовать встроенную функцию резервного копирования базы данных платформы
      • Поддерживается ручное и запланированное автоматическое резервное копирование
      • Простота в использовании и хороший пользовательский опыт
    • Если используется самостоятельно развернутый экземпляр PG, резервное копирование необходимо выполнять самостоятельно

    Метод 1: Резервное копирование экземпляра PostgreSQL, предоставленного платформой (рекомендуется)

    Если вы используете экземпляр PostgreSQL, предоставляемый платформой, вы можете напрямую использовать функцию резервного копирования платформы:

    1. Перейдите в представление Data Services
    2. Найдите ваш экземпляр PostgreSQL
    3. Откройте вкладку Backup and Recovery
    4. Следуйте подсказкам на странице для настройки резервного копирования

    Экземпляр PG платформы поддерживает автоматическое резервное копирование, которое можно включить в процессе настройки резервного копирования. Для конкретных методов работы обратитесь к документации Platform PG Backup and Recovery.

    После завершения настройки резервного копирования вы можете:

    1. Нажать Create Backup для немедленного создания резервной копии
    2. Проверить статус резервного копирования в записях резервных копий

    Метод 2: Резервное копирование самостоятельно развернутого экземпляра PostgreSQL

    Если используется самостоятельно развернутая база данных, необходимо использовать инструмент pg_dump для резервного копирования. Ниже приведены основные шаги:

    pg_dump -U postgres -h 127.0.0.1 -p 5432 -d sonar -f sonar.dump

    Описание параметров:

    ПараметрОписание
    -U postgresИмя пользователя базы данных
    -h 127.0.0.1Адрес базы данных
    -p 5432Порт базы данных
    -d sonarИмя базы данных
    -f sonar.dumpИмя файла резервной копии

    Совет: для автоматического планового резервного копирования можно использовать crontab.

    Восстановление

    Восстановление данных требует двух шагов:

    1. Восстановить базу данных PostgreSQL
    2. Развернуть новый экземпляр SonarQube и подключить его к восстановленной базе данных

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

    Восстановление базы данных

    Восстановление экземпляра PostgreSQL, предоставленного платформой

    1. Перейдите в представление Data Services
    2. Найдите целевой экземпляр PostgreSQL
    3. Откройте вкладку Backup and Recovery
    4. Следуйте мастеру Database Recovery для завершения восстановления

    Примечание: операция восстановления создаст новый экземпляр базы данных.

    Восстановление самостоятельно развернутого экземпляра PostgreSQL

    Самостоятельно развернутые экземпляры PG необходимо восстанавливать самостоятельно. Ниже приведены команды восстановления для справки:

    Описание параметров команд:

    ПараметрОписание
    -U postgresИмя пользователя базы данных
    -h 127.0.0.1Адрес базы данных
    -p 5432Порт базы данных
    -d sonar_newИмя новой базы данных
    -f sonar.dumpИмя файла резервной копии
    1. Создайте новую базу данных:

      psql -U postgres -h 127.0.0.1 -p 5432 -c "CREATE DATABASE sonar_new"
    2. Импортируйте данные из резервной копии:

      psql -U postgres -h 127.0.0.1 -p 5432 -d sonar_new < sonar.dump
    3. Проверьте результаты восстановления:

      psql -U postgres -h 127.0.0.1 -p 5432 -d sonar_new -c "\dt"

      Если вы видите список таблиц данных, восстановление прошло успешно:

                        List of relations
      Schema |           Name            | Type  |  Owner
      --------+---------------------------+-------+----------
      public | active_rule_parameters    | table | postgres
      public | active_rules              | table | postgres
      ...

    Развертывание нового экземпляра SonarQube

    Обратитесь к документации по развертыванию SonarQube для создания нового экземпляра SonarQube.

    Обратите внимание на следующие ключевые моменты:

    1. Новая версия SonarQube должна быть той же версией, что и исходный экземпляр
    2. При развертывании необходимо правильно настроить информацию для подключения к базе данных, которая была создана на этапе восстановления базы данных

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