Как установить патч postgresql для 1с

Обновлено: 05.07.2024

1. texlive-binaries — вполне вероятно, что необходимости в установке этого пакета нет.

2. «Да, платформа для Linux работает не всегда стабильно, часто возникает «падение» сервера, версии разные толком никто ничего не пишет.
Причина то известна — фрагментация памяти. Замечательно помогает ограничение времени жизни одного рабочего процесса/ограничение памяти на один рабочий процесс (в районе 1.6G). Внезапно! Рабочих процессов может быть (и должно быть) больше одного.»

3. «Да, и без описания тюнинга постгреса или хотя бы отсылки на любую статью по этому вопросу — смысла в настройке данной связки никакого.

Etersoft продают поддержку PostgreSQL.

UPD 2 Start

1.
После того, как изменили
kernel.shmmax = 143217728
kernel.shmall = 143217728
Необходимо применить их коммандой:
sysctl -p

2.
Вполне возможно, что потребуется создать
симлинки на
libreadline.so.6

ln -s /lib/libreadline.so.6 /lib/libreadline.so.5

3.
texlive-binaries не нужны, достаточно установить

aptitude install t1utils libt1-5

Поэтому не судите строго, если кто не любит Ubuntu или 1С или „и то и другое“.

данная поделка является дополненнием и исправленнием.

Так же персональный „respect и уважуха“ Игорю Вершинину ( Igor Vershinin ) из того же Ailant.

А так же тому парню, который сделал сборку под i386 по описанию Ailant'a, скорее всего его имя Валерий.

Материал по locale.gen взят из базы знаний 1С.

  1. Ubuntu Server 10.04 LTS .
  2. 1C Server.
  3. PostgreSQL сервер, собранный специально под 1С.
sudo -i
apt-get install mc
apt-get install ntp
apt-get update
apt-get upgrade
apt-get dist-upgrade
echo kernel.shmmax = `echo 128*1024*1024 | bc` >> /etc/sysctl.conf
echo kernel.shmall = `echo 128*1024*1024 | bc` >> /etc/sysctl.conf

Не знаю, надо или нет, просто проследовал рекомендациям в [2], на всякий случай поставил.
echo en_US ISO-8859-1 >> /etc/locale.gen
locale-gen
Generating locales…
ru_RU.UTF-8… done
en_US.ISO-8859-1… done
Generation complete.

Сделаем две символических ссылки, без которых «1С: Предприятие» не сможет работать с СУБД:

ln -s /usr/lib/locale/en_US.utf8 /usr/lib/locale/en_US
ln -s /usr/share/locale/en /usr/share/locale/en_US

Теперь установка PostgreSQL
Ещё немного зависимостей:

apt-get install postgresql-common postgresql-client-common libicu42 libossp-uuid16
  • 1c_FULL_84-0.19.2.patch -- патч содержит дополнительные модули расширения и необходимые изменения к СУБД,
    добавляющие функциональность, необходимую для работы с сервером 1С: Предприятия 8.1 и 1С: Предприятия 8.2.
  • postgresql-1c-8.4.patch патч модифицирующий скрипт запуска/останова и конфигурационных файлов PostgreSQL для повышения производительности при работе с сервером 1С: Предприятия 8.1 и 1С: Предприятия 8.2.
  • applock-1c-8.4.1.patch патч устраняющий проблему блокировок при использовании AUTOVACUUM.
bison, flex, docbook-utils, openjade, docbook, libicu-dev

И последний файл «postgresql-contrib-8.4.install». В него необходимо добавить строки с именами 1С-овских модулей: mchar, fulleq и fasttrun. После строк:

usr/lib/postgresql/8.4/lib/pg_stat_statements.so
usr/lib/postgresql/8.4/lib/citext.so
usr/lib/postgresql/8.4/lib/btree_gin.so
usr/lib/postgresql/8.4/lib/mchar.so
usr/lib/postgresql/8.4/lib/fulleq.so
usr/lib/postgresql/8.4/lib/fasttrun.so

Обновляем сборочный стенд (желательно каждый раз перед компиляцией):

Переходим в каталог, где лежат наши исходники PostgreSQL и «говорим»:

>> Сборка началась. В первый раз по зависимостям будет вытянуто около 500 мегабайт, надо быть к этому готовым. Либо собирать на unlim-канале (дома, например). В дальнейшем пакеты кешируются. У нас используется пакет apt-proxy, который также умеет это делать. Для предприятий, где работает не один сервер, очень рекомендую.
Сборка проходит ровно и спокойно. По окончанию в каталоге "/var/cache/pbuilder/result" будут лежать собранные пакеты.
Все так и есть.
Берем полученые пакеты куда-нибудь из /var.
Под root (sudo -i) делаем установку.
И, собственно, установка PostgreSQL, последовательность имеет значение, если использовать кнопку TAB для автодополнения то набрать эти длинные имена очень просто:
dpkg -i libpq5_[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb
dpkg -i libpgtypes3_[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb
dpkg -i postgresql-client-[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb
dpkg -i postgresql-8.4_[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb
dpkg -i postgresql-contrib-8.4_[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb

Всё, PostgreSQL установлен, запущен он был на четвертом пакете.

Проверим, чтобы PostgreSQL всегда запускался после перезагрузки:

System start/stop links for /etc/init.d/postgresql-8.4 already exist.

Проверяем что PostgreSQL встал «как надо», смотрим существует ли:

Заодно поправим pg_hba.conf, так, чтобы PostgreSQL был легко «виден по сети».

С точки зрения безопасности это, конечно, неверно, зато — работает.
Теперь поправим пароль на PostgreSQL, ведь мы его пока не знаем?

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

Теперь, собственно, установка 1С.
Первоначальная подготовка включает в себя:

apt-get install imagemagick msttcorefonts libgsf-1-114 texlive-binaries
1c-enterprise82-common_8.2.12-92_i386.deb
1c-enterprise82-common-nls_8.2.12-92_i386.deb
1c-enterprise82-server_8.2.12-92_i386.deb
1c-enterprise82-server-nls_8.2.12-92_i386.deb
1c-enterprise82-ws_8.2.12-92_i386.deb
1c-enterprise82-ws-nls_8.2.12-92_i386.deb
1c-enterprise82-crs_8.2.12-92_i386.deb
1c-enterprise82-crs-nls_8.2.12-92_i386.deb
update-rc.d srv1cv82 defaults
service srv1cv82 start
ps aux | grep 1c

От имени пользователя «usr1cv82» должно быть запущено три процесса. Если процесса не три, а один (такое почему-то иногда бывает, но только при первоначальном запуске), то грохаем всё в каталоге /home/usr1cv82:

service srv1cv82 stop
грохаем
service srv1cv82 start
ps aux | grep apache
ps aux | grep post
ps aux | grep 1c

Теперь разберемся с web сервисом:
Обычно, каждое клиентское подключение хочет ключик, это же касается и web-сервиса, каждый web-клиент забирает 1 «свободную лицензию».
Заморачиваться с установкой HASP LM даже под Ubuntu у меня не было никакого желания, т.к. на сайте Alladin только TAR.
Я пошел в обход. С Windows компьютера, на котором установлена платформа 8.2 берется файл:

;;NH_TCPIP = Enabled or Disabled ; Use the TCP/IP protocol

это примерно 24 строка.

;;NH_SERVER_ADDR = <Addr1>, <Addr2> ; IP addresses of all the NetHASP
NH_SERVER_ADDR = IP компьютера, на котором установлен HASP LM

После этого web сервис начнет видеть лицензии.

Теперь сам web.
Я создал папку "/1c/web/".
Положил в неё файл default.vrd следующего содержания:

  1. <? xml version ="1.0" encoding ="UTF-8" ? >
  2. < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system"
  3. xmlns:xs ="http://www.w3.org/2001/XMLSchema"
  4. xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
  5. base ="/unf"
  6. ib ="Srvr=&quot;[имя сервера]&quot;;Ref=&quot;[имя БД сервера]quot;;" >
  7. < ws enable ="false" />
  8. </ point >
  1. Alias /1с "/1c/web"
  2. < Directory "/1c/web/" >
  3. AllowOverride None
  4. Options None
  5. Order allow,deny
  6. Allow from all
  7. SetHandler 1c-application
  8. ManagedApplicationDescriptor "/1c/web/default.vrd"
  9. </ Directory >

Важно, чтобы и apache и 1С имели доступ к папке "/1c/web/".
Я поступил топорно:


Т.к. задолго перед этим уже успел «убить» безопасность вещью типа:
[share]
comment = All Share
browseable = yes
path = /1c/share
guest ok = yes
read only = no
create mask = 0777
directory mask = 0777

В /etc/samba/smb.conf.
Да, платформа для Linux работает не всегда стабильно, часто возникает «падение» сервера, версии разные толком никто ничего не пишет.
Для того, чтобы этого избежать применяем типичный костыль:
  1. Полная шара типа описанной выше, это для конфигурирования.
  2. Соответственно, сама конфигурация в этой шаре.
  3. Сами настройки Apache не меняются, меняется default.vrd:
  1. <? xml version ="1.0" encoding ="UTF-8" ? >
  2. < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system"
  3. xmlns:xs ="http://www.w3.org/2001/XMLSchema"
  4. xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
  5. base ="/new"
  6. ib ="File=&quot;[путь до шары типа /1c/baza]&quot;;" >
  7. < ws enable ="false" />
  8. </ point >

На этом, вроде как, все.

Замечу, что все в консоли: используем простую истину, что «GUI для слабых духом», а машинка у нас на виртуалке :).

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

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

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

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

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

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

  • libicu55
  • postgresql-common
  • libicu-dev
  • 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) выполняем команду:

sudo pbuilder --create

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

sudo pbuilder --create --components “main universe”

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

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

sudo pbuilder create --debootstrapopts --arch --debootstrapopts i386

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

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

3. Сборка

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

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

либо для сборки x86:

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 и откорректируем пути к источникам, например:

(для всех файлов source).

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

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

%define _unpackaged_files_terminate_build 0
%define _missing_doc_files_terminate_build 0

Помещаем файл в каталог

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

3. Cборка

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

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

rpmbuild -bb --target i386

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

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

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

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

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

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

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

После установки проверяем, что все компоненты прописались в переменной среды 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

- для архитектуры 32 бита

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

– для архитектуры 64 бита

Откроем файл 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 и укажем в нем соответствующие переменные:

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), и начинается компиляция.

Дано: Кластеры PostgreSQL 9.6.7-1.1C и 1С, где "9.6.7-1.1C" - это версия установленного старого кластера, а "10.5-24.1C" - это версия нового кластера.

Задача: обновить 9.6.7-1.1C до 10.5-24.1C.

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

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

2. Копируем файлы настроек доступа к хосту pg_hba.conf и настроек кластер postgresql.conf из C:\Program Files\PostgreSQL\9.6.7-1.1C\data в любое место, в нашем случае в D:\temp. Файлы нам понадобятся для внесения изменений в новые файлы настроек от 10.5-24.1C, если таковые у вас есть.

3. Заходим в cmd под администратором и вводим
C:\Program Files\PostgreSQL\9.6.7-1.1C\bin\pg_dumpall -U postgres > D:\temp\db.out

Где db.out - файл дампа всего кластера (всех баз). Во время процесса будет запрошен пароль от пользователя PostgreSQL postgres, который вы вводили при установке 9.6.7-1.1C.

Полученный файл будет сжат. Если у вас совсем мало места, тогда можно через команду | и gzip или 7zip заархивировать файл D:\temp\db.out.

Рассмотрим 3 варианта обновления кластера

I вариант через pg_dumpall и psql

4. Останавливаем службы сервера 1С и службу от 9.6.7-1.1C

5. Устанавливаем 10.5-24.1C (установка по умолчанию в каталог 10.5-24.1C), пароль postgres оставляем прежним для удобства. Если установка происходит на тот же самый порт, то нет необходимости менять правила брендмауэра Windows. Я заведомо не деинсталирую 9.6.7-1.1C и не удаляю файлы баз PostgreSQL, т.к. я могу в любой момент вернуться к старому кластеру и запустить его без проблем.

Для кого-то критично место на диске, тогда следует на данном этапе деинсталировать кластер 9.6.7-1.1C и удалить файлы баз.

6. Файлы настроек из п. 2 мы сравниваем с аналогичными файлами из в C:\Program Files\PostgreSQL\10.5-24.1C\data и переносим необходимые изменения в новый файл. Не забываем сделать копию изначальных файлов 10.5-24.1C. Если у вас не было изменений в файлах 9.6.7-1.1C, то этот пункт делать не нужно.

7. Перезапускаем службу 10.5-24.1C, для применения новых настроек конфигурационных файлов.

8. Заходим cmd под администратором и проходим в
C:\Program Files\PostgreSQL\10.5-24.1C\bin\psql -U postgres -f D:\temp\db.out

Для минимизации времени отключения кластера можно сделать следующим образом:

- в п.5, устанавливая 10.5-24.1C мы ставим новый порт 5433 и службы кластеров должны быть запущены

- далее в cmd запускаем:

C:\Program Files\PostgreSQL\9.6.7-1.1C\bin\pg_dumpall -U postgres -p 5432 > D:\temp\db.out |

C:\Program Files\PostgreSQL\10.5-24.1C\bin\psql -U postgres -p 5433 -f D:\temp\db.out

Возможно, придется настроить брендмауэр для порта 5433

Во время процесса восстановления периодически нужно вводить пароль от пользователя postgres.

11. Стартуем службу сервера 1С.

10. После восстановления необходимо сделать переиндексацию в конфигураторе 1С или с помощью команды reindex database <имя базы> или с помощью PGAdmin 4.

Если у вас не работает PGAdmin 4, одно из решений, установить его отдельно с сайта разработчика

PostgerSQL заточен под Linux и в своей среде он будет работать лучше и быстрее (как рыба в воде), но есть и адаптированный под Windows, требующий чуть больших настроек для оптимизации, чем просто "далее-далее-далее" в MSSQL. Хотя на небольших БД на первых этапах хватает и стандартной настройки задаваемой при установке.

Тесты о работе и производительности на разных системах разных продуктов MS SQL, PostgerSQL, под Linux, Windows легко можно найти в интернете, тут же мы рассмотрим простую установку и базовую настройку для работы 1С 8 на PostgerSQL 11.5 под Windows Server 2008 R2.

Постановка задачи:

1С Предприятие 8.3.16.1063, 1С БД Бухгалтерия 3.0.75.58 – размер файла

Сервер: i5-9400, ОЗУ DDR4 16 Гб, SSD 256, ОС Windows Server 2008R2 x64

Установка и настройка PostgreSQL:

1. Подготовка:

Перед установкой и настройкой рекомендуется отключить протокол IPv6, иначе это может затруднить дальнейшую настройку.


Также необходимо установить Microsoft Visual C++ 2015 (на сайте 1С он идет в комплекте)


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


2. Процесс установки



Далее указываем путь установки программы (его не меняем) и путь, где будут располагаться БД (его рекомендуется сменить, чтобы БД хранились не на системном диске)



Если вы не запустили службу "Вторичный вход в систему" то у вас будет ошибка, ее можно включить на этапе установки и продолжить:





После установки запускаем консоль администратора "Пуск-PostgreSQL 11.5-7.1C(x64)-pgAdmin 4"




На этом установка PostgreSQL закончена.

3. Установка 1С сервера:

Запуститься помощник установки системы «1С:Предприятия». На первой странице жмем «Далее».

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

  • Сервер 1С:Предприятия — компоненты сервера «1С:Предприятия»
  • Администрирование сервера 1С:Предприятия 8 — дополнительные компоненты для администрирования кластера серверов «1С:Предприятия»

ustanovka-servera-1spredpriyatie-8_03

Если сервер «1С:Предприятия» устанавливается как служба Windows рекомендуется сразу создать отдельного пользователя, из под которого будет запускаться служба "Агент сервера 1С Предприятия", либо можно выбрать существующего пользователя для запуска сервера. Для создание нового пользователя необходимо:

  • Выбираем флаг «Установить сервер 1С:Предприятие как сервис Windows (рекомендуется)»;
  • Выбираем «Создать пользователя USR1CV8» и задаем его пароль (пароль должен отвечать политики паролей Windows).

Также пользователю обязательно следует дать необходимые права на каталог служебных файлов сервера (по умолчанию C:\Program Files\1cv8\srvinfo для 64-х разрядного и C:\Program Files (x86)\1cv8\srvinfo для 32-х разрядного сервера). Созданный автоматически пользователь USR1CV8 будет обладать всеми перечисленными правами.

Заполнив соответствующие параметры, жмем «Далее».

ustanovka-servera-1spredpriyatie-8_05

Далее идет установка всех необходимых файлов и служб. После чего следует убедиться что появилась и запущена соответствующая служба.

ustanovka-servera-1spredpriyatie-8_11

На этом установка Сервера 1С Предприятия закончена.

4. Создание 1С БД для PostgreSQL

После установки 1С Сервера запускаем "Администрирование серверов 1С Предприятия x86-64", переходим в список "Информационные базы" и создаем новую БД. Заполняем основные поля:

  • Имя - имя БД на сервере 1с
  • Сервер баз данные - имя сервера где будет располагаться БД 1С SQL
  • Тип СУБД - выбор на какой платформе у вас будет работать ваша база (MSSQL, PostgeSQL, IBM DB2, Oracle DateBase)
  • База данных - имя базы которое будет создано в SQL
  • Пользователь и пароль БД - пользователь в SQL
  • Создавать базу данных в случае ее отсутствия - Создает БД в SQL если ее нет.


Если вы не отключили протокол IPv6 то у вас при создании будет ошибка:



можно отключить протокол IPv6 и продолжить создание, либо можно указать IP адрес сервера без отключение протокол IPv6:



Все на этом этапе БД готова, в принципе ее можно подключать загружать в SQL и работать. Но рекомендуется сделать настройку самого Postgre сервера для оптимизации и более стабильной работы базы 1С на PostgreSQL. Делается это в 1 файле расположенном в каталоге с базами (путь который вы указывали при установке для баз по умолчанию C:\Program Files\PostgreSQL\11.5-7.1C\data). Файл postgresql.conf

5. Настройка PostgreSQL под 1С 8

ВАЖНО. Перед любыми изменения в этом файле обязательно сделайте его копию, в противном случаем если какой то параметр указан не верно у вас не запустится служба PostgreeSQL:

Перед тем как вносить изменения в файл postgresql.conf необходимо остановить службу



Изменение параметров в postgresql.conf:

После чего запускаем службу PostgreSQL и можно работать.

Так же иногда по какой то причине после загрузки в PostgreSQL в базе отключается "Полнотекстовый поиск", поэтому после настройки рекомендуется проверить и включить если выключено и обновить индексы (все функции-стандартные-управление полнотекстовым поиском).

На данной странице представлены для ознакомления собранные компанией Postgres Professional установочные пакеты новейшей версии PostgreSQL (9.4.4) под Windows 64bit и различные дистрибутивы Linux. В установочные пакеты включены изменения, предоставленные компанией 1C.

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

(1) как минимум репозиторий создали, это получше чем в 1с сделано.

1. В нашей компании работают все разработчики ВСЕХ патчей 1С. Мы используем свежие, исправленные патчи.

2. Повышенна отказоустойчивость - Передоставляем более свежие пакеты, наша компания является Российским вендором PostgreSQL.

3. Обновляемый , свежий репозиторий, как уже сказали :)

(0) Ваша сборка не ставится на Ubuntu 14.04 LTS, ругается на locales-all, которого в репах Ubuntu нет.
Вы бы еще, следуя тренду, docker-контейнер замутили бы.
(3) обновляемый репозитарий - это не преимущество. Я не знаю, на каких версиях 1с вы проверили эту сборку перед тем как обновить пакеты. Есть unit тесты на 1с патчи? Есть интеграционные тесты - обновили postgres, запустили базу 1С и прогнали пару отчетов, любимые запросы к регистрам сведений? На сайте об этом нигде не написано, соответственно скорей всего имеется простая сборка для n платформ. Молодцы конечно, что освоили сборку и авосоздание реп, но этого в современном мире не достаточно.

>> Ваша сборка не ставится на Ubuntu 14.04 LTS, ругается на locales-all, которого в репах Ubuntu нет.

(12) я шо похож на человека работающего в 1с?
Тем более в (0) заявляют, что они есть разработчики патчей этих.

>>Вы бы еще, следуя тренду, docker-контейнер замутили бы.

>> Есть интеграционные тесты - обновили postgres, запустили базу 1С и прогнали пару отчетов, любимые запросы к регистрам сведений?

>>Тем более в (0) заявляют, что они есть разработчики патчей этих.

функциональное тестирование нам проводили пара организаций, в дальнейшем постораемся это автоматизировать и опубликовать.
пока не получили зеленый свет со стороны 1С :)

(14) Если исходить, что 1С тестирует свои патчи со своей платформой перед публикацией (ведь мы все надеемся на это?), то логично предположить, что эти патчи будут работать, если их наложит кто-то другой.
(15) trusted builds будет, ни или хоть сам Dockerfile?
Ато, сравните документацию на запуск официального postgres и то что на hub лежит, docker pull уже не достаточно.
>> А чего для винды только 64-разрядные сборки?
искали человека, которому 32 бита нужны :)
>> для тестов подойдет, но для compose , trust - нет
docker годится для чего-то кроме тестов? покажите мне организацию, которая не тратит времени на поддержку этих костылей в проде?
Проблемы с libicu46-52, я надеюсь решили? Из-за которых пересобирать пакет с сайта 1с приходилось, для установки на ubuntu
+(26). Я кривой, запятую пропустил. И убунту имелась в виду 14.04
(0)(30) Куда лучше фидбыки писать? Мы извращенцы, обычно ломаем неломаемое. :)
(27) Добрый день! Для убунту починили (следует сгенирировать ru_RU.UTF-8 и en_US.UTF-8 локали). Обновлять сборки до 9.4.5 мы не будем пока, так как есть критичный баг, из-за которого будет общее обновление всех бранчей.
(38) у нас при ответе можно просто номер ставить в скобки. Движок распознает.
(40) Честно? ничем не круче. MSSQL имеет нативную поддержку, PostgreSQL постольку поскольку. Но работа со стороны 1С сделать движок более дружелюбному к PostgreSQL есть. Плюс со своей стороны мы пытаемся сделать более умный планер запросов (генетические алгоритмы уже в каком то виде реализованы). Основная фича - стоимость.
(42) postgresql под windows будем исправлять.
есть много откровенных багов, пользователи windows по привычке считают это нормой. есть проблема с разделяемой памятью, но думаю если заказчики появятся на винде - будет заинтерисованость - будут новый патчи на перфоманс.
А поделитесь пожалуйста конфигом для постгреса для 1С :)
(44) а вас не спонсируют? Мне кажется странным, что государство на поддержку СПО не кошелится.
(42) А зачем postges на windows? Сервер на CentOS/Debian поднимается с нуля за пару часов, в виртуальной среде еще быстрее, лицензий не просит.
(52) Дебиан поднят тоже, хочу для сравнения проверить производительность и заодно поиграться с конфигами
Первый тест показал проведение документов в винде быстрее :(

>"c:\Program Files\PostgreSQL\9.4\bin\pg_ctl.exe" -D "c:\Program Files\PostgreSQL\9.4\data" start
server starting
LOG: parameter "effective_io_concurrency" cannot be changed
2015-10-15 10:31:48 AST FATAL: configuration file "c:/Program Files/PostgreQL/9.4/data/postgresql.conf" contains errors

документация говорит нам о

Asynchronous I/O depends on an effective posix_fadvise function, which some operating systems lack. If the function is not present then setting this parameter to anything but zero will result in an error. On some operating systems (e.g., Solaris), the function is present but does not actually do anything.

в windows нет документированого вызова, который подсказал планировщику о том, что можно прочитать не только несколько страниц данных с диска, но вперед будет читаться еще N блоков.

в windows 8 появилось что-то, надо будет попросить программистов попатчить, попробовать :)

(50) нет, пока не спонсирует.

15 июня, 18:00
Минкомсвязь России назвало победителей среди заявок по импортозамещению программного обеспечения

Cистемы управления базами данных (СУБД). Победитель — «Постгрес профессиональный», «Диасофт», «1С». Второе место — отечественная СУБД «Линтер»: «Релэкс», «Диасофт Платформа», «Техносерв».

Читайте также: