Меню Рубрики

Установка postgresql с патчами от 1с

Методика сборки дистрибутива СУБД PostgreSQL 9.6 c патчами для работы с 1С:Предприятие

Готовые пакеты с применением всех патчей публикуются на сайте фирмы «1С» в составе релиза каждой версии СУБД «Postgres».

Данная методика предназначена для тех, кто хочет применить патчи выборочно либо внести другие изменения в исходный код Postgres, но при этом собрать версию для работы с платформой 1С:Предприятие.

Для сборки дистрибутива СУБД PostgreSQL 9.6 применением патчей для оптимизации работы с платформой 1С:Предприятие из исходного кода необходимо скачать с сайта фирмы «1С» публикуемый в составе релиза версии PostgreSQL пакет для требуемой операционной системы:

Данная версия поддерживает дистрибутивы: RPM — CentOS 7 и Redhat 7, Debian — Ubuntu 16.04.

Для корректной сборки и установки необходимо наличие дополнительных модулей и библиотек:

  • readline
  • libtermcap
  • krb5-libs
  • openssl
  • libicu50
  • libicu-devel (для целей сборки)

Сборка для Debian на примере Ubuntu 16.04 Server (x86_64)

Сборка в данном примере будет осуществляться с помощью Pbuilder – инструмента, который осуществляет сборку пакетов с учетом зависимостей в «чистом» окружении, создаваемом индивидуально для каждой сборки (что особенно актуально в случае, если сборка осуществляется не в целевой среде и нет необходимости в реальной установке всех пакетов зависимостей).

1. Подготовка исходного пакета

Создадим в домашнем каталоге директорию /Postgres, переместим в нее загруженный пакет и распакуем:

/Postgres mv …/Patch_SUBD_PostgreSQL_9.6.3_1.1C.tar.bz2

/Postgres tar xfv Patch_SUBD_PostgreSQL_9.6.3_1.1C.tar.bz2

/Postgres появится каталог Patch_SUBD_PostgreSQL_9.6.3-1.1C, содержащий архив с оригинальными исходными файлами PostgreSQL (.orig.tar.bz), патчами (.patch), архив с правилами сборки (.deb.xz) и файл .dsc с описанием пакета. Перейдем в него:

2. Подготовка сборочного окружения

Выполним установку Pbuilder. Для этого можно использовать следующую команду:

sudo apt-get install pbuilder debootstrap devscripts

Далее нужно создать сборочное окружение (chroot).

В простейшем сценарии, когда сборка осуществляется в среде, аналогичной целевой по архитектуре (x86_64 для x86_64 в нашем примере), для формирования сборочного окружения (chroot) выполняем команду:

либо, если у пакета существуют зависимости, находящиеся в репозиториях, не поддерживаемых по умолчанию (как нашем случае), например, universe:

sudo pbuilder —create —components “main universe”

В случае, если необходимо выполнить компиляцию для архитектуры, отличной от архитектуры сборки (или задать отличные от дефолтных целевые каталоги, адрес основного и дополнительного репозитория и др.) необходимо выполнить настройку pbuilder с помощью конфигурационного файла /etc/pbuilderrc (его лучше скопировать в домашний каталог —

/.pbuilderrc) либо использовать опции команды create (или для последующих сборок update) при создании сборочного окружения. Например, если бы мы хотели собрать пакет для x86:

sudo pbuilder create —debootstrapopts —arch —debootstrapopts i386

(подробно о возможностях использования и настройке pbuilder можно прочитать: https://wiki.ubuntu.com/PbuilderHowto).

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

sudo pbuilder —update —components “main universe” —override-config

3. Сборка

Если мы хотим выполнить компиляцию с применением всех патчей, выполняем команду:

pbuilder —build postgresql-9.6_9.6.3-1.1C.dsc

sudo ARCH=i386 linux32 pbuilder —build postgresql-9.6_9.6.3-1.1C.dsc

Если же патчи нужно применить выборочно, распакуем для удобства архив с правилами сборки debian в отдельный подкаталог :

/Postgres/Debian
tar xfv postgresql-9.6_9.6.3-1.1C.debian.tar.xz -С

/Postgres/ Debian/ postgresql-9.6_9.6.3-1.1C.debian/debian/patches находятся сами патчи и файл series , определяющий их состав и порядок наложения – оставляем только необходимые патчи (важно: патчи, начинающиеся с цифры 9, являются штатными для сборки debian и должны быть применены в любом случае). Проверяем состав файлов .patch в соответствии со списком в файле series . Распакуем также оригинальный ар хив в

/Postgres/ Debian/ postgresql-9.6_9.6.3-1.1C.debian/debian и перейдем в этот каталог:

tar xfv postgresql-9.6_9.6.3.orig.tar.bz2 -С

После этого выполним команду:

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

Если она завершена без ошибок и предупреждений, тесты пройдены, готовые пакеты .deb можно будет найти в директории:

(если в конфигурационном файле не указывался иной целевой каталог). Перед началом сборки необходимо предоставить пользователю права на запись в целевой каталог.

По умолчанию в сборочном окружении имеется только локаль «C», с которой тесты после сборки PostgreSQL не могут запуститься, а сборка разваливается.

Для этого необходимо войти в сборочное окружение в режиме сохранения результатов после выхода Копировать в буфер обмена

sudo pbuilder login —save-after-login

и сгенерировать нужные локали

locale-gen en_US.UTF-8 ru_RU.UTF-8

Список доступных для генерации локалей можно посмотреть так: Копировать в буфер обмена

Сборка для RPM на примере CentOS 7 x86_64

Сборка пакетов rpm будет в данном примере выполняться с помощью утилиты rpmbuild.

1. Подготовка сборочного окружения

Для удобства установим пакет расширений rpmdevtools с помощью команды:

sudo yum install -y rpmdevtools

Создадим дерево каталогов для сборки:

Данная команда создаст каталог rpmbuild и подкаталоги BUILD, BUILDROOT, RPMS, SOURCES, SPECS, SRPMS с расположением «по умолчанию» в домашнем каталоге пользователя. Эти каталоги можно создать самостоятельно в другой директории с помощью команды mkdir:

(в этом случае необходимо будет также создать файл конфигурации rpmmacros с помощью команды $ echo ‘%_topdir %(echo $HOME)/rpmbuild’ >

2. Подготовка исходного пакета

Создадим в домашнем каталоге директорию Postgres, переместим в нее загруженный пакет и распакуем:

/Postgres
mv …/Patch_SUBD_PostgreSQL_9.6.3_1.1C.tar.bz2

/Postgres
tar xfv Patch_SUBD_PostgreSQL_9.6.3_1.1C.tar.bz2

В полученных исходных файлах нас будет интересовать rpm-пакет postgresql96-9.6.3-1.1C.src.rpm

Переместим его в отдельный подкаталог и распакуем:

/Postgres/Rpm
rpm2cpio postgresql96-9.6.3-1.1C.src.rpm | cpio —extract —make-directories –verbose

/Postgres/Rpm будет находиться архив с оригинальными исходниками postgresq -9.6.3. tar . bz 2 , патчи (.patch), прочие источники для формирования rpm-пакета и файл postgresql-9.6.3.spec – «главный» конфигурационный файл, инструкция для сборки. В нем указывается информация об исходных файлах (Source), патчах (Patch) и зависимостях сборки (BuildRequires и Requires). Необходимо убедиться, что все файлы, перечисленные в разделе Source, присутствуют в каталоге

/Postgres/Rp m , переместим их с помощью команды mv в каталог

Откроем для редактирования файл postgresql-9.6.3.spec и откорректируем пути к источникам, например:

Раздел Patch необходимо редактировать только в том случае, если нужно применить только часть из них: для этого в postgresql-9.6.3.spec нужно оставить только необходимые и удалить информацию об остальных. Патчи накладываются в порядке, определенном в файле.

Указанные в spec-файле патчи перемещаем в дерево исходных текстов в каталог

Если Вы решили применить не все патчи, во избежание возникновения сообщения о найденных, но не упакованных файлах (присутствующих в каталоге SOURCES, но не перечисленных в файле .spec), а также ошибок, связанных с обратной ситуацией, необходимо добавить начало файла .spec макроопределения:

%define _unpackaged_files_terminate_build 0
%define _missing_doc_files_terminate_build 0

Установим пакеты зависимостей сборки при помощи команд:

3. Cборка

Запустим сборку следующей командой:

Если нужно выполнить сборку под архитектуру x86, выполняем:

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

/rpmbuild/ RPMS , пакет postgresql96-9.6.3-1.1C.src.rpm – в

Сборка для Windows 32/64-bit на примере Windows 7 64-bit


1. Подготовка сборочного окружения

Сборка в данном примере выполняется инструментами, входящими в среду разработки Microsoft Visual Studio.

Подробное описание процесса компиляции в среде Windows приведено здесь: https://postgrespro.com/docs/postgresql/9.6/install-windows-full, в этой же инструкции приведен перечень необходимого программного обеспечения и источников его загрузки, нам необходимы из них:

  • Microsoft Visual Studio 2015 + Microsoft Windows SDK 7.1 со всеми инструментами Visual C++
  • ActiveState Perl
  • ActiveState TCL
  • Python
  • MIT Kerberos
  • ossp-uuid

Дополнительно необходимо скачать библиотеку ICU:

  • ICU 4.6 – для сборки 64- bit необходимо скачать 64-битную версию, для 32 – 32-битную http://site.icu-project.org/download/46
  • GnuWin32 ( в составе данной утилиты будут также установлены требуемые Bison, Flex, Diff, Gettext, libxml2, libxslt, openssl, zlib) http://gnuwin32.sourceforge.net/

После установки проверяем, что все компоненты прописались в переменной среды PATH. Выполняем в командной строке:

Будет выведено значение переменной. В нем должны присутствовать пути ко всем установленным компонентам. Если для каких-то утилит они отсутствуют, добавляем их к значению и с помощью команды SET устанавливаем новое значение.

2. Подготовка исходного пакета

Распаковываем загруженный архив Patch_SUBD_PostgreSQL_9.6.3_1.1C.zip в директорию C:\Patch_SUBD_PostgreSQL_9.6.3_1.1C .

Переходим в директорию C:\Patch_SUBD_PostgreSQL_9.6.3_1.1C\PostgreSQL\9.6.3-1.1C\Patch_SUBD_PostgreSQL_9.6.3-1.1C. Нам необходимо извлечь архив postgresql-9.6_9.6.3.orig.tar. Сделаем это в одноименный каталог.

Скопируем из директории, куда была установлена ранее ICU (в нашем примере это C:\ICU) каталоги C :\ ICU \icu\icu-4.6\include\layout и C :\ ICU \icu\icu-4.6\include\unicode с их содержимым в директорию C: \Patch_SUBD_PostgreSQL_9.6.3_1.1C\PostgreSQL\9.6.3-1.1C\Patch_SUBD_PostgreSQL_9.6.3-1.1C\postgresql-9.6_9.6.3.orig\postgresql-9.6.3\src\include.

Откроем каталог C:\Patch_SUBD_PostgreSQL_9.6.3_1.1C\PostgreSQL\9.6.3-1.1C\Patch_SUBD_PostgreSQL_9.6.3-1.1C\postgresql-9.6_9.6.3.orig\postgresql-9.6.3\src\tools\msvc. В нем находятся необходимые для сборки в среде Windows скрипты.

Если существует необходимость изменить пути (указать отличные от содержащихся в PATH) к сторонним библиотекам, объявленным в файле config_default.p l , необходимо в этой директории создать файл config.pl и в нем объявить пути к переменным:

– в примере указан путь к python.

Также нужно с помощью команды SET в командной строке (либо вспомогательного файла buildenv . pl , который также необходимо создать по аналогии с config.pl ) объявить переменные:

SET ICU46_LIB64= C:\ICU\icu\icu-4.6\lib

SET ICU46_LIB= C:\ICU\icu\icu-4.6\lib64

Откроем файл C:\Patch_SUBD_PostgreSQL_9.6.3_1.1C\PostgreSQL\9.6.3-1.1C\Patch_SUBD_PostgreSQL_9.6.3-1.1C\postgresql-9.6_9.6.3.orig\postgresql-9.6.3\src\tools\msvc\ Mkvcbuild . pm и укажем в нем соответствующие переменные:

my $contrib_extralibs= <'mchar' =>[‘$(ICU46_LIB64)\icuin.lib’, ‘$(ICU46_LIB64)\icuuc.lib’]>;
my $frontend_extralibs = <
‘initdb’ => [‘ws2_32.lib’],
‘pg_restore’ => [‘ws2_32.lib’],
‘pgbench’ => [‘ws2_32.lib’],
‘mchar’ =>[‘$(ICU46_LIB64)\icuin.lib’, ‘$(ICU46_LIB64)\icuuc.lib’],
‘psql’ => [‘ws2_32.lib’] >;

3. Сборка

Компиляция будет производиться из командной строки MS Visual Studio. Если мы хотим собрать 64-битную версию, необходимо запустить командную строку x64, если 32-битную – x86.

В ней выполним переход к исходному каталогу сборки:

Для применения к исходному пакету патча нужно выполнить следующую команду:

сat C:\Patch_SUBD_PostgreSQL_9.6.3_1.1C\PostgreSQL\9.6.3-1.1C\Patch_SUBD_PostgreSQL_9.6.3-1.1C\00001-1c_FULL_96- 0.23.patch | patch -p1 —fuzz=0

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

(запускаем build.bat), и начинается компиляция.

В случае ее успешного окончания (сборка должна закончиться без предупреждений и ошибок с соответствуем сообщением в командной строке VS) скомпилированные исполняемые файлы будут находится в директории …/release.

источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Куда пропали бесплатные сборки Postgres Professional для 1С?

Сборки PostgreSQL для 1С от команды Postgres Professional пользовались заслуженной популярностью. И это вполне понятно, разработчики являются видными участниками международной команды Postgres и авторами патча для 1С. Но некоторое время назад все бесплатные сборки пропали с их официального сайта и для работы с 1С:Предприятие стали предлагаться коммерческие версии Postgres Pro Standard и Enterprise. Раздача синих слонов закончилась и все перешли на коммерческие рельсы? Но не все так просто и если вы хотите получить бесплатную сборку от Postgres Professional — то это статья для вас.

Действительно, если мы сейчас посетим сайт Postgres Professional, то в разделе для 1С увидим только предложения коммерческих сборок, которые бесплатно можно использовать только в очень ограниченных сценариях:

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

Одновременно пошла волна слухов и домыслов, что Postgres Professional сделали сборку для 1С платной и поэтому неясно как быть дальше всем, кто успел ее скачать и поставить. Поспешим развеять туман и внести ясность. Следует понимать, что PostgreSQL открытое программное обеспечение под свободной лицензией The PostgreSQL Licence. Лицензия очень простая и весь ее смысл можно передать одним абзацем:

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

Ниже идут два параграфа об отказе от ответственности. В общем все достаточно стандартно.

Таким образом никто не может вас ограничить в использовании, изменении и распространении сборки, которую вы получили легальным путем. Поэтому пользователям бесплатных сборок от Postgres Pro волноваться не о чем. Они могут использовать их далее, не опасаясь нарушения лицензии.

Скажем больше, компания Postgres Professional никогда не выкладывала в свободном доступе сборки Standard и Enterprise, она просто убрала бесплатную сборку. Поэтому никаких нарушений лицензии со стороны ее пользователей нет и не может быть.

Но куда же пропали бесплатные сборки? Тем более, что бесплатные репозитории продолжают работать в штатном режиме. И если я знал этот адрес раньше, но скачаю и установлю оттуда PostgreSQL сейчас, то буду ли я нарушителем?

Нет. Не будете. Бесплатные сборки Postgres Professional для 1С никуда не делись, просто их перенесли на другой сайт. Почему на него нет ссылок с сайта Postgres Pro — вопрос отдельный, но мы не располагаем достоверной информацией и, поэтому, воздержимся от выводов.

Искомый адрес мы обнаружили при внимательном просмотре доклада Олега Бартунова (ведущий разработчик PostgreSQL и глава Postgres Professional) на конференции Infostart Event 2019:

На данном сайте представлен интерактивный скрипт, который поможет выбрать вам нужную сборку и пришлет параметры доступа к ней на почту, примерно в таком виде:

Для тех, кто с Linux на «ты» — этого достаточно, остальные могут следовать нашей статье: Установка Postgres Pro 10 для 1С:Предприятие на Debian / Ubuntu. В ней мы подробно описали алгоритм действий, а все необходимые данные вы получите в письме в сайта 1c.postgres.ru.

Как видим, бесплатная сборка Postgres Professional для 1С никуда не делась, просто оказалась хорошо спрятана, потому что поисковики не выдают данный сайт в выдаче по релевантным запросам, хотя это, может быть, дело времени.

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

источник

PostgreSQL и 1С Предприятие

«Да, забудьте Вы об SQL Express» говорю я многим своим клиентам последние так года два.

Отчасти сам виноват, в 2015-ом опубликовал видео «1С 8.3 и SQL Server 2014 Express».

И это видео для многих почему-то сработало как сигнал на внедрение версии Express.

Несмотря на то, что в этом уроке я говорю о серьёзных ограничениях этой версии СУБД, да, собственно как и Microsoft, прямо пишет, — «Эту бесплатную версию стоит использовать только для теста и ознакомления».

(Цель видео в том, чтоб показать ограничения файлового варианта работы в 1С, как перейти на клиент-сервер и показать ограничения версии Express).

И лишь в некоторых случаях, когда база 1С совсем малая и с базой работает пара пользователей, нет нагрузок, тогда, может быть смысл использовать эту СУБД для реальной работы в 1С.

Но большинству конечно ограничения не позволят работать «нормально» в клиент-сервере.

Как минимум нужна версия Standard.

Альтернативой MS SQL всегда был и остается PostgreSQL.

Конечно, данная тема также подымается и на курсе: Администратор 1С!

Абсолютно бесплатная* СУБД с реализацией как под Linux, так и на Windows.

Бытует мнение, что PostgreSQL нормально работает только на Linux.

Но это ужа давно не так (Хоть изначально он и разрабатывался под UNIX-подобные платформы).

Сегодня PostgreSQL можно смело использовать и на Windows , (Пользователей 50-70- одновременно работающих в 1С будет держать нормально, до 15-ти, даже не нужно никаких доп. настроек!).

Если у Вас пользователей будет больше, тогда лучше брать MS SQL.

Конечно, в сети можно встретить примеры, (особенно в последнее время) когда PostgreSQL работает на сотнях пользователей в 1С, но я такого в живую не видел (чтоб без косяков, при большом количестве запросов) чтоб СУБД работала также быстро и хорошо, как и на MS SQL standard, например.

Вот одна из причин: PostgreSQL не умеет работать многопоточно!

Иногда в интернете, можно наткнуться на статью что PostgreSQL грузит только одно ядро на 100%, и мол не работает с многоядерными архитектурами.

Знайте, что это не так! (Вернее не совсем так!)

PostgreSQL грузит все ядра, только если есть соответствующее количество запросов .

Один большой запрос действительно может на 100% загрузить одно ядро вашего сервера так как

1 запрос = 1 поток! (На этой СУБД).

Но если запросов будет много, соответственно и все ядра будут задействованы также.

PostgreSQL способен задействовать все ядра вашего сервера!

Каждое ядро может дать нам несколько потоков, например как минимум два, и уже, чтоб задействовать 2 ядра (4 потока) будет достаточно отправить на СУБД 3 — 4 запроса.

Другими словами, не распараллеливается выполнение одного запроса.

Нет многопоточности! в рамках одного запроса — это одна из причин, почему PostgreSQL работает медленнее MS SQL.

Один большой запрос может стать «узким местом» в производительности вашей 1С на этой СУБД.

Есть, конечно, еще много вопросов по «бєкапу», настройке и оптимизации PostgreSQL в том числе и под крупные внедрения, но это все подробно мы будем обсуждать уже на курсе: Установка и настройка 1С 2017.

Как известно без специальных «патчей» от компании 1С СУБД-шка работает не стабильно, вылетает + есть проблемы с производительностью.

Но с «пропатченой» таких серьезных проблем обычно не возникает.

Дело в том что в 1С часто используются временные таблицы, а PostgreSQL плохо сними дружит.

«Патчи» как раз правят эти и другие «косяки 1С» в официальном релизе.

Теперь о главном!

В феврале 2015 года наиболее известные российские разработчики PostgreSQL основали компанию «Постгрес Профессиональный» (Postgres Professional), целью которой стало развитие СУБД PostgreSQL и оказание полного спектра связанных с ней услуг.

И если раньше я скачивал PostgreSQL на сайте 1С (Поддержка пользователей), то сегодня

Я беру дистрибутив на сайте postgrespro.ru (Как для Windows так и для Linux).

Внимание Важно!

PostgresPro Standard и Enterprise — платные!

Качайте просто «пропатченую 1С» по ссылке ниже:

Enterprise — действительно очень дорогой продукт, а вот Standard на момент написания статьи, приобретается как годовая поддержка.

Другими словами Вы покупаете поддержку на год и получаете версию Standard в *подарок*.

Второй способ получить PostgreSQL бесплатно:

Для этого нужно скачать на сайте поддержки пользователей 1С, нужный Вам дистрибутив PostgreSQL со всеми патчами для 1С, и работать бесплатно на этой СУБД.

На момент написания статьи, доступна версия PostgreSQL 9.6.5 для 1С Предприятия.

Все в *свободном доступе*, можно скачать и установить у себя.

Дело в том, что Postgres Pro (основанный на PostgreSQL) уже содержит все нужные «патчи» для 1С Предприятия.

И Вы не «паритесь» поиском каких-то критически важных «патчей» все уже включено в эту сборку, это удобно.

Даже для Windows включены дополнительные «патчи» повышающие отказоустойчивость еще не успевшие войти в стабильный релиз, например, включены «патчи», которые исправляют проблему с правами доступа и критический баг с остановкой Postgres.

Качаем инсталлятор на сайте по ссылке выше.

Конечно я рекомендую ставить СУБД на Windows Server 2016.

Установка PostgreSQL на Windows совсем не сложная, но во избежание каких-то возможных проблем, смотрите ниже в скриншотах весь процесс пошагово:

Как видно уже на скрине, сборка действительно под 1С-ку. «PostgresPro 1C 9.6».

Принимаем условия лицензионного соглашения «Принимаю».

И установим все нужные компоненты.

Укажем каталог где будет установлен сам PostgresPro (Можно оставить каталог по умолчанию).

Теперь нужно указать каталог для наших баз данных.

На вкладке параметров порт 5432 можно оставить по умолчанию (Если у Вас он свободный на момент установки).

Затем птичку «Подключение с любых IP адресов» убираем если Сервер 1С и СУБД будут располагаться на одном сервере.

Иначе оставляем все как есть.

Супер пользователя можно оставить по умолчанию «postgres».

И обязательно создадим пароль для него.

Птичку возле «Провести оптимизацию параметров» оставляем по умолчанию.

И клик по кнопке «Установить».

Все готово! можно создавать базу используя утилиту администрирования серверов 1C.

Для удобства администрирования, рекомендую еще установить дополнительно и PGAdmin 4.

Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>

источник

Читайте также:  Установка 1дин магнитолы в гранту

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

Adblock
detector