Сервер 1С Предприятия. Часть 4 Установка PostgreSQL (Ethersoft) на платформe Linux (Ubuntu).

  • Автор:
1cv82-ubuntu-pgsql-install-000.jpg
Сервер СУБД является важной составляющей частью сервера 1С, но при этом является полностью самостоятельным узлом. Один и тот-же сервер 1С может (с небольшими ограничениями) работать с любой из поддерживаемых СУБД. На платформе Linux заслуженной популярностью пользуется бесплатная СУБД PostgreSQL и сегодня мы поговорим об ее установке.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Вначале, как всегда, немного теории. Следует помнить, что в силу особенностей реализации платформы 1С Предприятие PostgreSQL в версии "из коробки" работать не будет. Основная проблема заключается в различных механизмах блокировки, используемых СУБД и 1С. Подробнее об этом можно узнать из комментария сотрудника 1С Дмитрия Русанова:

"Применение табличных блокировок в PostgreSQL в автоматическом режиме не является искусственным. 1С:Предприятие 8 в автоматическом режиме блокировок реализует подход неизменности прочитанных в рамках транзакции данных. PostgreSQL, как типичный версионник, не накладывает никаких блокировок на прочитанные данные (в отличие от DB2 или SQL Server - блокировочников), то для обеспечения идентичной функциональности приходится использовать эти самые табличные блокировки.

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

Для того, чтобы PostgreSQL умел накладывать табличные блокировки 1С выпускает набор специальных патчей и уже готовые сборки СУБД для Windows и RedHat-совместимых систем. Пользователям Debian-совместимых систем лучше всего использовать альтернативную сборку PostgreSQL от компании Etersoft, которую можно взять на их FTP-сервере. На текущий момент последней версией является 9.0.4 которая доступна в версиях для 32-битных и 64-битных систем.

ВАЖНО! Мы не рекомендуем использовать сборки PostgreSQL от Ethersoft новее, чем 9.0.x, так как они содержат ошибку в библиотеке fasttrun.so, что деалет невозможной работу с платформой 1С:Предприятие. На настоящий момент ошибка наблюдается в версиях 9.1.x и 9.2.x.

Будем считать что необходимые пакеты скачаны и расположены на сервере, а читатель обладает базовыми навыками работы в командной строке Linux. Для установки СУБД мы будем использовать Ubuntu Server 10.04.4 64-бита.

Прежде всего создадим нужные локали:

locale-gen en_US
locale-gen ru_RU

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

update-locale LANG=ru_RU.UTF8

Теперь переконфигурируем локали:

dpkg-reconfigure locales

И перезагрузим систему.

Затем перейдем в каталог с пакетами PostgreSQL (в нашем случае директория pgsql904 в домашней папке) и установим их:

cd ~/pgsql904
dpkg -i *.deb

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

apt-get install -f

После чего система сама найдет и установит недостающие пакеты. На этом установку PostgreSQL можно считать законченной, но, перед тем как его использовать, необходимо внести некоторые изменения в настройки системы. В файл /etc/sysctl.conf необходимо добавить две строки, отвечающие за размер разделяемого сегмента памяти:

kernel.shmall=134217728
kernel.shmmax=134217728

Сохраним файл и применим настройки:

sysctl -p

Теперь можно попробовать запустить PostgreSQL:

service postgresql start

Если все сделано правильно произойдет запуск и начальная инициализация сервера баз данных. Теперь зададим пароль суперпользователю СУБД postgres. Для этого в конфигурационном файле PostgreSQL /var/lib/pgsql/data/pg_hba.conf найдем следующую строку:

local  all  all  ident

и заменим ident на trust. Сохраним файл и перезапустим СУБД:

service postgresql restart

и выполним следующую команду:

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

где password - желаемый пароль. После чего снова заменим trust на ident и еще раз перезапустим PostgreSQL.

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

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

1cv82-ubuntu-pgsql-install-001.jpg

Затем укажем расположение серверов 1С и СУБД, а также желаемое имя базы данных и параметры доступа к серверу БД.

1cv82-ubuntu-pgsql-install-002.jpg

В результате этих несложных действий получим информационную базу работающую на указанном кластере серверов 1С и использующую наш сервер БД под управлением PostgreSQL.

1cv82-ubuntu-pgsql-install-003.jpg

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

Дополнительные материалы:

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments