Ubuntu 18.04 — Установка PostgreSQL 10 для 1С

Таки уже больше чем пол года прошло с того момента как 1C научилась из коробки работать с PostgreSQL 10, да и вышла Ubuntu 18.04. Значит пришла пора обновить статью Установка PostgreSQL 9.6 для 1C на Ubuntu 16.04 и речь у нас пойдет о том, что установка PostgreSQL 10 для 1С на Ubuntu 18.04 хоть и имеет несколько нюансов, но до сих пор осуществляется легко и непринужденно.

Стенд будет у нас следующий:

  • 2 ядра
  • 16Gb Ram
  • 32GB SSD

Наши действия:

  • Установка Ubuntu Server 18.04

  • Ubuntu Server 18.04 — Установка статического IP

  • Ubuntu Server 18.04 — Изменение имени сервера

  • Установка PostgreSQL 10 для 1С на Ubuntu 18.04

    1. Обновляем систему

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

      sudo apt update && sudo apt dist-upgrade -y
    2. Скачиваем DEB PostgreSQL 10 для 1С

      Я скачал с users.v8.1c.ru следующий архив: PostgreSQL, версия 10.5-24.1C

    3. Ставим локали

      sudo locale-gen en_US.UTF-8
      sudo locale-gen ru_RU.UTF-8
      sudo update-locale LANG=ru_RU.UTF8
      sudo dpkg-reconfigure locales

      После ввода последней команды, появится следующее окно:

      Локали которые будут созданы

      Локали которые будут созданы

      Ничего не делаем, просто нажимаем <Ok> (можно промотать вниз и убедиться что локаль ru_RU.UTF-8 отмечена)

      Локаль по умолчанию

      Локаль по умолчанию

      В этом окне необходимо выделить ru_RU.UTF-8 и уже потом нажать <Ok>. Если в списке указанная локаль у вас отсутствует, значит что-то из вышеперечисленного в текущем пункте вы сделали не так. После успешного выполнения этого пункта в отчёте мы увидим строчку ru_RU.UTF-8… done и en_EN.UTF-8… done

      Generation complete

      Generation complete

    4. Загружаем файлы на наш будущий сервер

      Способов много, можно залить с помощью этой небольшой статьи: WinSCP работаем с файлами Linux сервера через SFTP
      Напомню что я загружаю в папку /tmp и все команды что я привожу ниже, будут запускаться из неё

    5. Смотрим особенности релиза.

      На странице загрузки пакета на users.v8.1c.ru, всё так же в обязательном порядке заглядываем в особенности релиза, где узнаем что написаны они только для Ubuntu 16.04 и выглядят они следующим образом

      libicu55 postgresql-common
    6. Готовимся к установке

      • libicu55

        Смотрим что есть в репозитарии относительно libicu55

        apt search libicu55

        На момент написания статьи там не было ничего :(.
        Поэтому идем по ссылке archive.ubuntu.com и там ищем libicu55 для своей архитектуры. Я ставлю на Ubuntu Server 18.04 64-bit, поэтому у меня это libicu55_55.1-7_amd64.deb
        Так же в данном случае можно скачать файл напрямую с помощью команды wget

        cd /tmp
        wget http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu55_55.1-7_amd64.deb

        После того как установочный пакет окажется на нашем сервере, устанавливаем его командой

        sudo dpkg -i libicu55_55.1-7_amd64.deb

         

      • postgresql-common

        Проверяем что есть в репозитарии

        apt search postgresql-common
        Результат apt search postgresql-common

        Результат apt search postgresql-common

        На данный момент в репозитории появился этот пакет версии >=182~. Раньше небыло и приходилось качать его из репозитория постгрес, с проделыванием излишних телодвижений.

        sudo apt install postgresql-common

         

    7. Установка PostgreSQL 10 для 1С

      1. Извлекаем из архива

        Файл с установочными пакетами скачанный с сайта ИТС называется postgresql_10.5_24.1C_amd64_deb.tar.bz2 и лежит в папке /tmp, поэтому перейдем в /tmp и вытащим содержимое из архива

        cd /tmp
        tar -xvf ./postgresql_10.5_24.1C_amd64_deb.tar.bz2

        Из архива извлеклась папка postgresql_10.5_24.1C_amd64_deb

      2. Переходим в папку с установочными пакетами

        cd ./postgresql-10.5-24.1C_amd64_deb

        Извлекаем пакеты из архива

        Извлекаем пакеты из архива

      3.  Устанавливаем пакеты PostgreSQL 10

        sudo dpkg -i libpq5_10.5-24.1C_amd64.deb
        sudo dpkg -i postgresql-client-10_10.5-24.1C_amd64.deb
        sudo dpkg -i postgresql-10_10.5-24.1C_amd64.deb

        Если после выполнения последней команды мы видим скрин следующего вида

        Завершение установки PostgreSQL 10

        Завершена установка PostgreSQL 10 для 1С

        А это значит Success! И возможность перейти к настройке PostgreSQL 10

        Success!

        Success!

  • Настраиваем PostgreSQL 10

    Стоит сразу же оговориться, что под словом «Настраиваем» я имею ввиду именно настройку, до состояния когда к Postgres можно будет подключить сервер 1С и начать создавать там базы, загружать туда базы через конфигуратор или еще что придет в голову. Вопросы именно «Оптимизации», репликации, потоковой, логической или чего-либо еще тут не рассматриваются.

    1. Меняем метод аутентификации с peer на trust

      Подробнее о методах аутентификации можно почитать тут

      1. Открываем файл pg_hba.conf

        sudo nano /etc/postgresql/10/main/pg_hba.conf
      2. Меняем административный вход

        Находим строку

        # Database administrative login by Unix domain socket
        local   all             postgres                                peer

        И меняем в ней peer на trust чтобы было

        # Database administrative login by Unix domain socket
        local   all             postgres                                trust

        Когда способом аутентификации указано trust, постгрес решит что подключающийся пользователь уже авторизован для работы и пустит его без пароля
        Сохраняем изменения нажав Ctrl+O

      3. Перезагружаем Postgres

        sudo service postgresql restart
    2. Устанавливаем пароль пользователя postgres

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

      psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'h4GiQn'"

      Снова повторюсь что пароль лучше сделать посложнее, и использовать для работы с базами не админскую учётку postgres, а создать другого пользователя, в идеале на каждую базу свой пользователь, подрядчикам обслуживающим базы тоже свой пользователь, с правами на конкретную базу.

    3. Меняем метод аутентификации с trust на md5

      Все как и выше где мы меняли peer на trust, только теперь мы меняем trust на md5, чтобы отключить беспарольный доступ

      sudo nano /etc/postgresql/10/main/pg_hba.conf

      Находим строку

      # Database administrative login by Unix domain socket
      local   all             postgres                                trust

      Меняем её на

      # Database administrative login by Unix domain socket
      local   all             postgres                                md5

       

    4. Настраиваем postgresql.conf

      sudo nano /etc/postgresql/10/main/postgresql.conf

      Там находим строку listen_addresses. Можно воспользоваться поиском, он включается сочетанием Ctrl+W. Находим следующее:

      listen_addresses = '*'          # what IP address(es) to listen on;
                                              # comma-separated list of addresses;
                                              # defaults to 'localhost'; use '*' for all
                                              # (change requires restart)
      port = 5432                             # (change requires restart)

      При желании можно настроить ограничение на подключение только через localhost указав его вместо ‘*’. Пока стоит ‘*’ сервер принимает подключение на все интерфейсы на порт указанный в пареметре port. А можно ничего и не менять, всё по желанию и вашему уровню паранойи.
      Если у вас 1С будет жить на одном сервере с PostgreSQL, то оставьте localhost, если он будет работать на другом компьютере, установите * или же IP адрес интерфейса подключения.

    5. Блокируем обновления пакетов

      Может случиться так что убунту автоматически обновит пакеты PostgreSQL 1C, что приведет СУБД в нерабочее состояние. Да чего греха таить, какой-нибудь эникей подключившийсь к терминалу с командой «Обнови все линуксовые сервера!» может запустить обновление и тогда повесят вас. Поэтому обязательно вводим следующие команды для блокироваки обновления постгрес: sudo apt-hold <Имя вашего пакета>

      sudo apt-mark hold libpq5
      sudo apt-mark hold postgresql-client-10
      sudo apt-mark hold postgresql-10

      Это те пакеты, которые мы скачивали с сайта 1С

       

P.S. В pg_hba.conf можно настроить различными способами, этот файл отвечает за авторизацию пользователей, источники откуда они могут подключаться, базы с которыми могут работать. Но это тема целой отдельной статьи, а то и двух если рассказывать подробно. Поэтому тут лишь скажу что это можно и нужно использовать чтобы повысить безопасность своей базы. Но по стандарту, если использовать пользователя postgres, всё будет работать и так.

Text.ru - 100.00%

Related

Jupyter Notebook и Anaconda для удаленной разработки на отдельном Ubuntu Server, нужны для облегчения себе жизни. А так же чтобы не таскать с места на место свои проектики или не работать с jupyter notebook через удалённый рабочий стол. Еще распространена ситуация, когда у вас дома, в офисе, на даче. Continue reading

PostgreSQL 10 - Потоковая репликация с отработкой фейловера. Данная запись посвящается исключительно "Потоковой репликации", не архивированию, не логической репликации, не восстановлению из бэкапа. Тут описывается потоковая репликация, настройка одного мастера, одного слейва. Continue reading

PostgreSQL 10 FATAL: could not access file "online_analyze" - Ничего не предвещало беды да? Всё шло своим чередом, сервер PostgreSQL 10 для 1C работал в штатном режиме, бухгалтера стадами набигали на 1Сные сервера, делали свои грязные дела, а жалоб никаких не было?. И вот ты уже сидишь обтекая потом гуглишь что. Continue reading

Установка Zabbix 4.0 из репозитория на Ubuntu 18.04 происходит настолько просто что ненужно никаких статей вообще. Признаться честно, у кого у кого, а у Zabbix проблем с установкой нету от слова совсем. Особенно это касается апплаенса или же репозитория. Тем не менее необходимость. Continue reading

JOIN THE DISCUSSION

Comments

  • Bystander 17.06.2019 at 15:36

    пока лучший гайд из виденых мною 🙂

    Reply
  • 245324 18.06.2019 at 16:46

    спасибо

    Reply
  • Armani 03.07.2019 at 18:34

    Прекрасно. С удовольствием прочитал и сделал

    Reply
  • Valery 29.08.2019 at 19:31

    А что нельзя сделать репликацию и файловер через repmgr или patroni для postgresql от сборки от 1с?

    Reply
    • Belfigor 29.08.2019 at 20:56

      Можно если есть время \ желание \ необходимость
      И в зависимости от масштабов это скорее всего окажется решением из разрядка «пушкой по воробьям»

      Reply
      • VALERY 06.09.2019 at 12:47

        Кстати говоря, использование repmgr, patroni не нарушается лицензионные соглашения для сборки postgresql-1c. Вы случайно не знаете? (также буду благодарен, за информацию по поводу экстеншенов pg_repack, pg_bloat_check в базе от postgresql-1c ?

        Reply