Показать / скрыть оглавление

    Установка сервера БД Колибри

    В качестве системы управления базами данных, приложения, разработанные на базе системы Колибри, используют PostgreSQL 13 и выше.

    Замечание

    Далее по тексту приведён пример установки сервера PostgreSQL для Debian 10, установка на других ОС может отличаться.
    Инструкции по установке можно найти по адресу https://www.postgresql.org/download/

    Установка PostgreSQL

    1. Создадим файл с конфигурацией репозитория PostgreSQL:

      $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      
    2. Получим ключ репозитория PostgreSQL:

      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      
    3. Обновим репозиторий apt-get:

      sudo apt-get update
      
    4. Установим последнюю версию PostgreSQL:

      sudo apt-get -y install postgresql
      

      Для установки определенной версии, укажите её, например postgresql-12 вместо postgresql.

      Замечание

      Далее по тексту приведён пример установки PostgreSQL 12.

    5. Перед первым запуском должен быть инициализирован кластер PostgreSQL.
      На предыдущем шаге при установке сервера кластер должен быть инициализирован. Проверить это можно по наличию каталога, в котором будут находиться данные:

      sudo cd /var/lib/postgresql/12/main
      

      Если каталог отсутствует, необходимо инициализировать кластер:

      sudo /usr/lib/postgresql/12/bin/initdb -D /var/lib/postgresql/12/main --auth-local peer --auth-host md5
      
    6. Запустим сервис PostgreSQL:

      sudo systemctl start postgresql.service
      
    7. Включим автозапуск сервиса PostgreSQL:

      sudo systemctl enable postgresql.service
      
    8. Проверить успешность запуска можно с помощью команды:

      sudo systemctl status postgresql
      

    Настройка доступа

    1. Откроем файл настроек аутентификации в редакторе и добавим туда требуемые строки с настройками доступа:

      sudo nano -l /etc/postgresql/12/main/pg_hba.conf
      

      1.1. Для доступа без пароля с локального компьютера добавим строку: local all postgres trust
      1.2. Для доступа из локальной сети с паролем в самую последнюю строку добавим строку, указывая адрес и маску рабочей сети: host all all 192.168.121.1/24 md5
      1.3. Сохраним файл.

    2. Перезагрузим PostgreSQL:

      sudo systemctl restart postgresql
      
    3. Подключимся локальным пользователем, должна появиться строка приглашения postgres=#:

      psql -U postgres
      
    4. Проверим каталог данных (результат должен совпадать с каталогом кластера, п. 5 Установки PostgreSQL):

      show data_directory;
      
    5. Не выходя из консоли psql установим пароль для пользователя postgres:

      alter user postgres with password 'password';
      

      Теперь под этим пользователем с этим паролем можно подключиться из локальной сети.

    6. Настроим доступ из сети и примитивную оптимизацию.
      6.1. Откроем файл конфигурации в редакторе для внесения изменений.

      sudo nano -l /etc/postgresql/12/main/postgresql.conf
      

      Устанавливаемые настройки приведены в таблице ниже.
      Если строка со свойством закомментирована, уберём знак комментария # в начале строки.

      Свойство Значение
      listen_addresses Список разрешённых адресов для подключения или '*'
      Например, listen_addresses = '*'
      work_mem 512MB
      shared_buffers 25% от RAM сервера
      maintenance_work_mem 1GB
      effective_cache_size от 50 до 75 процентов от RAM
      lc_monetary 'ru_RU.UTF-8'
      lc_numeric 'ru_RU.UTF-8'
      lc_time 'ru_RU.UTF-8'
      datestyle 'ISO, DMY'
      lc_messages 'ru_RU.UTF-8'
      Совет

      Для отображения системных ошибок на английском в свойстве lc_messages укажите 'en_US.UTF-8'.
      При этом необходимо убедиться в наличии указанной локали:

      locale -a
      

      Если в перечне отсутствует локаль 'en_US.UTF-8', её необходимо сгенерировать. Для этого добавляем локаль в список, открыв файл со списком и убрав знак комментария # в строке с нужной локалью.

      sudo nano -l /etc/locale.gen
      

      После сохранения файла, сгенерируем локаль:

      sudo locale-gen
      

      6.2. Сохраним файл.
      6.3. Перезагрузим сервер:

      sudo systemctl restart postgresql
      

    Просмотр журнала

    В случае ошибок запуска сервера PostgreSQL или необходимости просмотреть журнал можно открыть его в редакторе:

    sudo nano /var/log/postgresql/postgresql-12-main.log
    

    Отключение firewall

    Если сервер находится внутри защищённой сети возможно отключить фаервол:

    systemctl disable firewalld & systemctl stop firewalld
    

    Если фаервол отключать нельзя, то необходимо открыть порты для PostgreSQL.

    Восстановление БД из резервной копии

    1. Создадим новую базу данных, в которую будет восстановлена резервная копия:

      createdb --username postgres colibri_db
      

      Вместо colibri_db можно ввести любое другое название.

    2. После создания базы данных, требуется восстановить резервную копию:

      pg_restore --username postgres --no-owner --single-transaction --dbname "colibri_db" "~/colibri_db.backup"
      

      Где colibri_db — это имя базы данных, созданной на предыдущем шаге, в конце команды полный путь к файлу резервной копии.

    В начало страницы