adminguide_emodzi_nu-laaadno

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

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

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

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

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

Tuesday, March 19, 2024
adminguide_emodzi_nu-laaadno

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

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

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

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

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

AdminGuide Patreon

Boosty

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

Главная страница » PostgreSQL 11 для 1С. Установка на Ubuntu 18.04
PostgreSQL 11 для 1С

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

by Belfigor
34 139 views

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

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

ADMINGUIDE

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

Совсем недавно 1С адаптировала PostgreSQL 11 для 1С. Необходимая версия платформы для этого должна быть не ниже 8.3.14.1565. Пакеты опубликованы на сайте ИТС под версией 11.5-1.1C. Можно сказать что с этого момента начнётся очередной новый виток переустановок и обновлений со старых версий PostgreSQL. Ведь даже если работает, и работает хорошо, почему бы не сделать еще лучшее? Особенно это касается таких вопросов PostgreSQL как параллелизация запросов.

Тоесть у нас может быть сколь угодно мощный сервер с частотой каждого ядра к примеру 5 GHz. Но в 1С запросы очень плохо оптимизированы под работу с PostgreSQL из коробки. Но в свою очередь, PostgreSQL регулярно допиливается и функционал расширяется от раза к разу. При релизе версии PostgreSQL 11, в ней уже был улучшен механизм прараллелизации запросов. Подробнее об изменениях 11й версии можно почитать тут: https://www.postgresql.org/docs/11/release-11.html . Так же стоит упомянуть про то что PostgreSQL это бесплатная СУБД, которая хоть и чутьчуть проигрывает по производительности перед MSSQL, она из коробки и абсолютно бесплатно имеет на борту прекрасный функционал касающийся резервного копирования и репликации работающих баз. Тот функционал, для получения которого в MSSQL если мне не изменяет память нужно покупать версию не ниже Enterprise.

Описание стенда:

  • 8 vCPU
  • 16GB Ram
  • 64GB SSD

 

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

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

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

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

    1. Добавляем репозиторий PostgreSQL

      Создаём файл /etc/apt/sources.list.d/pgdg.list

      sudo nano /etc/apt/sources.list.d/pgdg.list

      И добавляем следующую строку:

      deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

      Импортируем подписи и обновляем репозиторий

      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt-get update
    2. Обновляем систему

      sudo apt update && sudo apt dist-upgrade -y
    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

      После ввода последней команды появится похожее окно:

      Настройка locales

      Настройка locales

      можно промотать вниз и убедиться что локаль ru_RU.UTF-8 отмечена)

      Выбор локали по умолчанию

      Выбор локали по умолчанию

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

      ru_RU.UTF-8… done
      en_EN.UTF-8… done
    4. Загружаем файлы PostgreSQL 11 для 1С на будущий сервер

      Знаю, возможно кто-то сочтёт этот пункт излишним, но много много лет назад, когда я впервые в жизни увидел текстовую консоль линуксового сервера, вопрос передачи файлов между сервером и внешним миром встал для меня очень остро. Тогда, я даже поднял фтп сервер чтобы залить туда нужные мне пакеты. Поэтому для полноты инструкции, считаю должны упомянуть про такой протокол передачи данных как SFTP и соответствующую статью WinSCP работаем с файлами Linux сервера через SFTP
      Я буду загружать все файлы в папку home пользователя под которым подключился к серверу. Все инструкции далее будут приводиться исходя из этого момента. Чтобы попасть в home текущего пользователя достаточнот просто вбить в консоль команду cd . Я буду загружать версию 11.5-1.1C т.к. новее на сайте ИТС в данный момент нет.

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

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

      Поэтому с особенностями релиза мы определимся походу. Одна из таких особенностей — это использование репозитория PostgreSQL, т.к. в родном репозитории Ubuntu 18.04, максимальная имеющаяся на момент написания версия пакетов PostgreSQL — 190. Нам нужно 194+

    6. Готовимся к установке пакетов PostgreSQL 11 для 1C

      Так исторически сложилось что в особенностях релиза всегда фигурировали эти два пакета: libicu55 и postgresql-common. Почему их не указали сейчас мне неизвестно, но необходимость в них не отпала, при попытке установить пакеты 1C система будет жаловаться на их отсутствие. И в этот то момент нам и понадобится репозиторий PostgreSQL который мы добавили ранее. Т.к. те пакеты что мы сможем установить из родного, слишком старые и не подходят.

      1. libicu55

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

        Иииии, там ничего нет, как обычно.

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

            cd
        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
      2. postgresql-common

        Смотрим что нам покажет репозиторий

        apt search postgresql-common

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

        AdminGuide.Ru@1c-psql-s1:~$ apt search postgresql-common
        Сортировка… Готово
        Полнотекстовый поиск… Готово
        postgresql-client-common/bionic-pgdg 209.pgdg18.04+1 all
        управление несколькими клиентскими версиями PostgreSQL
        postgresql-common/bionic-pgdg 209.pgdg18.04+1 all
        PostgreSQL database-cluster manager
        

        В данный момент версии всех пакетов 209, что больше чем 194, версии которую запрашивают пакеты PostgreSQL 11 для 1C при попытке их установки без подготовки.

        Устанавливаем postgresql-common

        sudo apt install postgresql-common
        

        Попутно установочник подвезёт нам еще ряд необходимых пакетов.

      3. libllvm9
        Для PostgreSQL 11.5

        sudo apt install libllvm9
    7. Установка PostgreSQL 11 для 1С

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

        cd 
        tar -xvf ./postgresql_11.5_1.1C_amd64_deb.tar.bz2

        Из архива извлеклась папка postgresql-11.5-1.1C_amd64_deb

      2. Переходим в папку с установочными пакетами
        cd ./postgresql-11.5-1.1C_amd64_deb
      3. Устанавливаем пакеты PostgreSQL 11 для 1C
        sudo dpkg -i ./libpq5_11.5-1.1C_amd64.deb
        sudo dpkg -i ./postgresql-client-11_11.5-1.1C_amd64.deb
        sudo dpkg -i ./postgresql-11_11.5-1.1C_amd64.deb

        По окончании установки сервер запустится и с ним уже можно будет начинать работать.

        В процессе пригодятся следующие команды:

        sudo service postgresql start
        sudo service postgresql stop
        service postgresql status
    8. Блокируем обновления пакетов

      Дабы оградить собственную жопку от нападок со стороны агрессивно настроенной бухгалтерии, лучше всего ограничить количество встреч с бухгалтерами. Наилучшим для этого решением будет оргазнизация не только высокой производительности сервисов, но и их максимального аптайма. А этому очень сильно может помешать неожиданное обновление пакетов PostgreSQL 11. Пакеты модифицированные 1С будут просто заменены рассово верными пакетами из официального репозитория PostgreSQL, при этом всё уйдет в отказ, а юзеры будут бегать по зданию в папнике роняя кал. Как этого избежать?
      Пишем в консоль команду

      dpkg --list | grep 1C

      И видим следующее:

      ii  libpq5:amd64                          11.5-1.1C                          amd64        PostgreSQL C client library
      ii  postgresql-11                         11.5-1.1C                          amd64        object-relational SQL database, version 11 server
      ii  postgresql-client-11                  11.5-1.1C                          amd64        front-end programs for PostgreSQL 11

      [ii] — значит что вам пиздец. а если списочек окажется пустым — значит что пиздец уже пришел и вам надо ПОВТОРНО, ПОВЕРХ СУЩЕСТВУЮЩЕЙ УСТАНОВКИ НИЧЕГО НЕ УДАЛЯЯ снова установить пакеты которые вы качали с сайта ИТС. Именно поэтому мы их качали в папку home а не в tmp, откуда они после ребута бы исчезли. Возвращаемся к пункту 7 Установка PostgreSQL 11 для 1С
      Фиксируем только что установленные пакеты в системе:

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

       

    9. Настраиваем PostgreSQL 11 для 1С

      Настройка будет производится до момента когда к серверу можно будет подключить сервер 1С. Оптимизация, репликация и прочие моменты тут не рассматриваются. Она ничем кроме того что в пути к файлам цифра 10 заменилась на 11 не отличается. Привожу правленные с учётом современных реалий инструкции от PostgreSQL 10, чтобы всё было в одном месте.

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

        Более подробно о метода аутентификации можно посмотреть тут. Внизу страницы нужно будет потыкать ссылоки Пред и След

        1. Открываем файл pg_hba.conf
          sudo nano /etc/postgresql/11/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

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

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

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

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

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

        sudo nano /etc/postgresql/11/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/11/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 адрес интерфейса подключения.

 

Text.ru - 100.00%

You may also like

Vkontakte Comments

Default Comments

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

Juhani 14.11.2019 - 14:24

Добрый день.

А подскажите. В репах postgrespro.ru (после регистрации они дают свои репы для установки) есть Depends: libicu60 (>= 60.1-1~)
То есть если ставить из repo.postgrespro.ru то и libicu55 ставить не надо.

Вообще, что говорят по поводу репов именно postgrespro.ru? Стоит их использовать вместо apt.postgresql.org?

Reply
Belfigor 14.11.2019 - 14:54

Я не тестировал postgres pro т.к. для его получения необходимо производить лишние действия. И насколько я понимаю они пошли по пути ухудшения функциональности бесплатных версий, чтобы вынудить людей покупать энтерпрайзные сборки у 1С.

Reply
Juhani 14.11.2019 - 16:16

Ясно, просто тестирую и обратил внимание что они все в кучу запихнули и базы и конфиги, то есть просто взять и поменять пути для папки с конфигурациями можно только через /etc/default/postgrespro-std-11 в котором будет указана папка в которой лежат конфигураций…потому как пути типа /etc/postgresql/10/main/postgresql.conf банально нет =)
Посмотрим что дальше будет.

Спасибо.

Reply
Juhani 15.11.2019 - 11:08

И да. Есть оказывается бесплатная сборка с репами от postgrespro но без лицензий и ценников.
https://1c.postgres.ru/
Придет письмо с примерно таким содержанием:
[code]
Вы получили это письмо, поскольку запрашивали инструкции по установке postgreSQL для 1с на сайте 1c.postgres.ru/.

Используйте инструкции для установки postgreSQL для 1с. Обратите внимание, что команды должны выполняться от пользователя с правами суперпользователя.

apt-get update -y
apt-get install -y wget gnupg2 || apt-get install -y gnupg
wget -O — http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | apt-key add —
echo deb http://repo.postgrespro.ru//pg1c-archive/pg1c-11.5/ubuntu/ bionic main > /etc/apt/sources.list.d/postgrespro-1c.list
apt-get update -y
apt-get install -y postgrespro-1c-11-server postgrespro-1c-11-contrib
/opt/pgpro/1c-11/bin/pg-setup initdb
/opt/pgpro/1c-11/bin/pg-setup service enable
service postgrespro-1c-11 start
[/code]
Возможно кому то пригодится.

Reply
Zeliboba 08.01.2020 - 09:26

Здравствуйте. А Вы бэкапы на постгресе настраивали ?

Reply
Belfigor 15.06.2020 - 19:00

Я пользуюсь потоковой репликацией

Reply
Verm 24.01.2020 - 09:33

Спасибо. Делал тестовый серв на 19.10 убунту сервере с postgresql_11.5_7.1C и 8_3_16_1148. Отличия только в том что не ставится libpq5_11.5-7.1C_amd64.deb без libssl1.0.0 . Нужно скачать и установить :
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu6.2_amd64.deb

sudo apt install ./libssl1.0.0_1.0.2n-1ubuntu6.2_amd64.deb

Остальное все совпадает

Reply
Evgeny 14.02.2020 - 12:55

Отличный сайт и статья! Мануалов на эту тему много, но качество отвратительное.

Reply
IGOR 26.02.2020 - 13:10

psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'rptzjnarDhTp3AYdCEi2l0u8Q7uhApDg'" не прокатило, прокатило psql -U postgres -d template1 -c "ALTER USER postgres WITH PASSWORD 'rptzjnarDhTp3AYdCEi2l0u8Q7uhApDg'"

Reply
Андрей 27.02.2020 - 17:16

Добрый день!
Все работает однако в логах постгрес пишет — «не полный стартовый пакет». У вас есть такое сообщение?

Reply
Belfigor 28.02.2020 - 16:07

А как выглядит запись и в каком конкретно файле такая запись?

Reply
Андрей 02.03.2020 - 14:41

Запись в текущем лог файле в директории pg_log — выглядит так (при старте сервера) : система готова принимать подключения и следом запись : н/д н/д сообщение неполный стартовый пакет. Все тесты и 1с работают. НО смущает это сообщение. Поиск в сети толком ничего не дал.

Reply
Belfigor 15.06.2020 - 18:59

Можно скриншот?

Reply
Алекс 15.06.2020 - 17:59

папка /etc/postgresql пустая, хотя postgres работает
устанавливаю на Ubuntu Server 20.04

Reply
Belfigor 15.06.2020 - 18:59

sudo find / -name postgresql.conf
Что выводит эта команда?

Reply
АЛЕКС 26.06.2020 - 18:09

с этим разобрался
/usr/lib/tmpfiles.d/postgresql.conf

второй раз ставлю postgres на другой сервер и опять затык на этапе

uadm@test1:~/postgresql-11.5-1.1C_amd64_deb$ sudo dpkg -i ./libpq5_11.5-1.1C_amd64.deb
Selecting previously unselected package libpq5:amd64.
(Reading database … 70960 files and directories currently installed.)
Preparing to unpack ./libpq5_11.5-1.1C_amd64.deb …
Unpacking libpq5:amd64 (11.5-1.1C) …
dpkg: dependency problems prevent configuration of libpq5:amd64:
libpq5:amd64 depends on libssl1.0.0 (>= 1.0.2~beta3); however:
Package libssl1.0.0 is not installed.

dpkg: error processing package libpq5:amd64 (—install):
dependency problems — leaving unconfigured
Processing triggers for libc-bin (2.31-0ubuntu9) …
Errors were encountered while processing:
libpq5:amd64
uadm@test1:~/postgresql-11.5-1.1C_amd64_deb$

выше был совет установить библиотеку libssl1.0.0_1.0.2n-1ubuntu6.2_amd64.deb
но она теперь недоступна

прошлый раз лазил по форумам и как то обошёл, но уже не помню

Reply
Qwe 28.06.2020 - 12:09

А версия ОС какая? Я буквально на той неделе развернул 2 сервера PostgreSQL 11 на Ubuntu Server 18.04 по этому мануалу без каких либо проблем.

Reply
Алекс 28.06.2020 - 12:27

Ubuntu 20.04
Думал ставить сразу на свежую ОС
Попробую установить на 18.04

Reply
Belfigor 28.06.2020 - 18:06

Ubuntu 20.04 не поддерживает PostgreSQL 11 из коробки. Ubuntu 20.04 в репозиториях имеет только пакеты PostgreSQL 12. А т.к. PostgreSQL 11 от 1C для работы так же требует пакеты из репозитория и системные пакеты, тоесть установить PostgreSQL 11 на Ubuntu 20.04, не подвергнув прекрасную новую ось буквально сказать экзекуции — невозможно. Получившийся в итоге монстр работать то будет, но от Ubuntu 20.04 там останется разве что название. Таки я крайне не рекомендую ставить PostgreSQL 11 на Ubuntu 20.04.

Reply
rusmuzhik 29.06.2020 - 14:58

есть ещё одна проблемка
у нас база Управление торговлей, редакция 11 (11.4.6.207)

при пролистывании больших списков идут фризы
я нарыл в инете рекомендацию поправить одну позицию в postgresql.conf
сделать join_collapse_limit=1

К этой рекомендации была пояснение
(Следует использовать этот метод, если вы уверены в правильности порядка соединений таблиц в проблемном запросе)

Фризы проходят, но не вылезут ли косяки в другом месте?

Reply
Belfigor 29.06.2020 - 15:33

Ооооо, это таки скорее всего вопрос к программистам 1С, а не сисадминам. Я если честно ни в одну конфигурацию изнутри даже не пытался смотреть, на то есть профильные специалисты 🙂

Евгений 08.07.2020 - 09:47

Установил все по инструкции все встало без проблем, Postgres запускается, 1с сервер тоже, администрирование серверов 1с видит сервер, но при попытки создать на нем базу выходит ошибка: 0x0000274D сервер отверг запрос на подключение!! Хосты прописаны, Фаервол отключен! Подскажите нубу куда копать!!

Reply
Belfigor 08.07.2020 - 13:00

А сервер 1с — отдельный независимый сервер или это кластер серверов?

Reply
Игорь 09.12.2020 - 11:15

Добрый день
а делать analyze и vacuume на линукс сервере надо? Индексацию рас в неделю
И есть ли ограничения для БД ?

Reply
Belfigor 09.12.2020 - 17:40

Делать можно и нужно, противопоказаний не замечал. Ограничений для БД так же не встречал ни разу и не упирался в них.

Reply
Сергей 07.02.2021 - 02:14

Все вроде норм до пункта «sudo chown -R usr1cv8:grp1cv8 /opt/1C» каталог не найден.
так же sudo service srv1cv83 start сервис не найден

Reply
Belfigor 08.02.2021 - 06:22

Я таки даже инструкцию повторно перечитал, но не нашёл в ней команды
sudo chown -R usr1cv8:grp1cv8 /opt/1C
Если не работает через service, попробуй через systemctl

Reply
Mike 19.06.2021 - 12:57

Доброго дня!
Смотрю в ОС список пакетов на обновление, там их 4, а заблокировали мы 2 (postgresql-11 и postgresql-client-11).
Стоит ли блокировать обновление
postgresql-client-common
postgresql-common
или можно их обновлять?

Reply
Belfigor 19.06.2021 - 19:58

Привет! Чисто теоретически блокировать надо только те пакеты которые предоставляет сама 1Ска, чтобы они небыли заменены пакетами из репозитория. Но для спокойствия души, чтобы обновление стандартных пакетов из репозитория не привело к каким-то непредвиденным последствиям можно и заблокировать (я не блокирую)

Reply

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

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