adminguide_emodzi_nu-laaadno

Платные курсы

C промокодом ADMINGUIDE

emoji AdminGuide - Очень приятно

Бесплатное обучение

Видеоуроки повышенной чёткости

Saturday, December 14, 2024
adminguide_emodzi_nu-laaadno

Платные курсы

C промокодом ADMINGUIDE

emoji AdminGuide - Очень приятно

Бесплатное обучение

Видеоуроки повышенной чёткости

AdminGuide Patreon

Boosty

Поддержи автора! Стань спонсором.

Главная страница » Ubuntu 18.04 — Установка PostgreSQL 10 для 1С
Ubuntu + 1C + PostgreSQL

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

by Belfigor
17 838 views

Преподаю и разрабатываю лекции в Нетологии. Записывайтесь на обучение по моей ссылке.

Чтобы получить скидку 10% используйте промодкод:

ADMINGUIDE

Скидка суммируется со всеми действующими на Нетологии акциями

Таки уже больше чем пол года прошло с того момента как 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%

You may also like

Vkontakte Comments

Default Comments

6 комментариев

Bystander 17.06.2019 - 15:36

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

Reply
245324 18.06.2019 - 16:46

спасибо

Reply
Armani 03.07.2019 - 18:34

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

Reply
Valery 29.08.2019 - 19:31

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

Reply
Belfigor 29.08.2019 - 20:56

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

Reply
VALERY 06.09.2019 - 12:47

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

Reply

Добавить комментарий

%d такие блоггеры, как: