Для CentOS/Fedora на сайте 1с есть почти готовый к использованию src.rpm, который при наличии некоторой сноровки без большого можно труда собрать и установить. Что же касается остальных систем – для них есть три пача 1c_FULL_90-0.19.patch, postgresql-1c-9.0.1.patch, applock-1c-9.0.1.patch и совершенно непонятно что же с ними делать. На какой PostgreSQL я не пытался их наложить без внесения имений в исходники он либо не собирается, либо не работает с 1с.

В данной статье описывается сборка и установка PostgreSQL-9.0.1 для работы с сервером 1С Предприятия 8, используемая операционная система Ubuntu 10.10 x64.

14.10.2012 Сейчас на сайте 1с появились готовые сборки PostgreSQL для Ubuntu/Debian, поэтому лобовая сборка из исходников с наложением патчей потеряла актуальность, новая статья “Установка 1c 8.2 и PostgreSQL на Ubuntu Server”.

1. Сборка PostgreSQL 9.0.1

Накладывание кривоватых пачей и перерывание файлов в поисках заветных строк не самое интересное занятие, поэтому выкладываю уже исправленные исходники PostgreSQL 9.0.1 для 1С.

Устанавливаем необходимые для сборки пакеты:

root@pgsrv# apt-get install libreadline-dev libicu-dev patch zlib1g-dev

Переходим в директорию /usr/local/src, скачиваем и распаковываем исходники:

root@pgsrv# cd /usr/local/src
root@pgsrv# wget http://www.alsigned.ru/?dl_name=postgresql-9.0.1-1C.tar.gz -O postgresql-9.0.1.tar.gz
root@pgsrv# tar xzvf postgresql-9.0.1.tar.gz

Переходим в каталог с исходниками, конфигурируем, собираем и устанавливаем:

root@pgsrv# cd postgresql-9.0.1
root@pgsrv# ./configure --disable-integer-datetimes --prefix=/usr
root@pgsrv# make && make install

Переходим в каталог contrib, собираем и устанавливаем:

root@pgsrv# cd contrib
root@pgsrv# make && make install

2. Настройка PostgreSQL 9.0

Создаем пользователя и группу postgres:

root@pgsrv# groupadd -r postgres
root@pgsrv# useradd -g postgres -r -d /var/lib/pgsql -s /bin/bash postgres

Создаем директорию для PostgreSQL

root@pgsrv# mkdir /var/lib/pgsql
root@pgsrv# chown postgres:postgres /var/lib/pgsql

Генерируем локали en_US и ru_RU.UTF-8 необходимые для работы PostgreSQL с 1с:

root@pgsrv# locale-gen en_US ru_RU.UTF-8

Инициализируем БД:

root@pgsrv# su postgres
postgres@pgsrv$ initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
 
The database cluster will be initialized with locale ru_RU.UTF-8.
The default database encoding has accordingly been set to UTF8.
The default text search configuration will be set to "russian".
 
. . . . .
. . . . .
 
Success. You can now start the database server using:
 
postgres -D /var/lib/pgsql/data
or
pg_ctl -D /var/lib/pgsql/data -l logfile start

Запускаем PostgreSQL:

postgres@pgsrv$ pg_ctl -D /var/lib/pgsql/data start
server starting

Задаем пароль пользователя БД:

postgres@pgsrv$ psql -U postgres -c "alter user postgres with password '123456';"
postgres@pgsrv$ exit

Делаем скрипт для запуска-остановки, для этого создаем файл /etc/init.d/postgresql следующего содержания.

#!/bin/sh
#  Скрипт запуска/остановки PostgreSQL-9.0-1C
 
DATADIR=/var/lib/pgsql/data
PGCTL=/usr/bin/pg_ctl
PGUSER=postgres
 
case $1 in
start)
sudo -u $PGUSER -H $PGCTL -D $DATADIR start
;;
stop)
sudo -u $PGUSER -H $PGCTL -D $DATADIR stop
;;
restart)
sudo -u $PGUSER -H $PGCTL -D $DATADIR stop
sudo -u $PGUSER -H $PGCTL -D $DATADIR start
;;
*)
echo start|stop|restart
return 1;
;;
esac

Даем разрешения на запуск и добавляем сервис в автозапуск:

root@pgsrv# chmod u+x /etc/init.d/postgresql
root@pgsrv# update-rc.d postgresql defaults

3. Заключение

Я не большой любитель систем на базе Debian/Ubuntu, но иногда можно сделать исключение – хотя бы ради расширения кругозора. По крайней мере я не сожалею о потраченном на написание этой статьи времени и вполне уверен что она принесет пользу не только мне.

54 Коммент. : “Сборка 1c PostgreSQL 9.0 на Ubuntu 10 x64”

  1. Спасибо за статью!

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

  2. Alsigned пишет:

    @Alexey
    Как показывает практика при большом количестве действий описанных в статье, люди торопятся и пропускают одну-две незначительные детали или путают одну букву в слове, отсюда возникает куча ошибок. Именно поэтому я решил выложить уже пропаченные исходники, а не писать длинную историю…

    Кратко опишу последовательность:
    Берем PostgreSQL 9.0.1 из архива ftp://ftp-archives.postgresql.org/pub/source/v9.0.1/postgresql-9.0.1.tar.gz
    Пачи для PostgreSQL лежат на сайте 1с http://v8.1c.ru/overview/postgres_patches_notes.htm
    patch -p0 < 1c_FULL_90-0.19.patch
    patch -p1 < postgresql-1c-9.0.patch
    patch -p0 < applock-1c-8.4.0.patch
    Дальше берем из исходников с моего сайта следующие файлы и кладем их на соответствующие места:
    /src/backend/parser/gram.c
    /src/backend/parser/gram.h
    /src/interfaces/ecpg/preproc/preproc.c
    /src/interfaces/ecpg/preproc/preproc.h
    /src/interfaces/ecpg/preproc/preproc.y

    Если есть желание можно сравнить изменения в файлах при помощи diff, и выпустить к PostgreSQL-1С последний 4-ый и окончательный super-1c-9.0.patch :)

  3. Обязательно протестю, после того, как поиграюсь с CentOS+1С
    Alsigned, тебе однозначный респект.

  4. А вы не пробовали самостоятельно настроить PostgreSQL для работы с сервером 1С:Предприятие и собрать deb-пакеты дистрибутива на будущее? Очень хотелось бы увидеть данную статью. Если не собираетесь делать сами, может ресурсы посоветуете, на которых вышеуказанная ситуация рассмотрена. А то гугл по настройке связки PostgreSQL и сервер 1С:Предприятие 8 фактически выдает ссылки только на ваш блог. Заранее спасибо!..

  5. Alsigned пишет:

    @Nigelist
    Настроить PostgreSQL для работы с сервером 1с Предприятия 8.2 я пробовал – работает и очень даже не плохо ;)

    Для Fedora/CentOS у меня уже есть собранные с учетом всех особенностей rpm-пакеты в репозитории, для их установки достаточно сделать всего пару действий типа yum install и initdb.

    Собирать и тестировать PostgreSQL под большое количество разнобоких линуксов дело не самое простое. Поэтому в статье “Установка 1С 8.2 и Postgresql 9.0 на Linux” я предлагал помочь мне в развитии подобного репозитория, но не смотря на более чем 15 000 просмотров, не появилось ни одного желающего.
    Видимо людям это не нужно. А хорошая была идея… ;)

  6. Alsigned, я готов помочь, чем могу. Единственное временное препятствие, временное отсутствие знаний… :) Которые я и хочу приобрести…

    Сам уже писал статейку на linuxforum.ru, о использовании дистрибутива Etersofta… Но их продукты платные. Да и собирают их они на устаревших дистрибутивах, как и разработчики 1С. Их дистрибутивы нестабильны, требуют пакеты которые использовались в более старых пакетах. Вот и хотелось бы полностью разобраться в этом вопросе.

    В общем хочу разобраться с настройкой PostgreSQL 9 для 1С, без их (1С) патчей. Можно даже на примере стандартного PostgreSQL, входящего в поставку большинства дистрибутивов.

  7. Alsigned пишет:

    @Nigelist
    В плане Etersoft я согласен – у них очень много мелких недостатков. Но у них есть еще услуги внедрения и в этом случае они делают все как надо, и честно говоря цену дают достаточно низкую.

    Пачи 1с подходят только к конкретным версиям PostgreSQL 9.0.1/8.4.1/8.3.8 для остальных версий придется самому копаться в исходниках и пачить все вручную.

    PS: По поводу репозитория пиши в аську на странице о блоге, но скажу сразу есть у меня несколько причин недолюбливать debian и ubuntu ;)

  8. Alsigned, если можно сделать самому почему нет? Да интересно мне. А по поводу патчей 1С, именно процесс ручной оптимизации постгреса под нужды сервера 1С меня очень интересует…

  9. mboy пишет:

    Я тоже готов помочь

  10. Еще было бы хорошо заново пересобрать установочные пакеты сервера 1С, с соблюдением всех зависимостей для того или иного дистрибутива Linux.

  11. Alsigned пишет:

    @Nigelist
    Я пока не встречал исходники сервера 1c Предриятия, поэтому процесс пересборки пакетов превращается в распакуй готовый пакет, препиши установочный скрипт и запакуй обратно. Здесь следует озадачится вопросом насколько это легально? Не будет ли 1с против внесения изменений и распространения сервера 1с предприятия, который является закрытым для скачивания.

    Перечисли список дистрибутивов Linux для которых требуется пересборка сервера 1с предприятия?

  12. ennor пишет:

    Здравствуйте, сделал всё по инструкции – всё равно типичная ошибка на тип mvarchar при создании инфобазы.. :( ((

    P.S. Перерыл уже весь гугл – какие сброки postgresql только не ставил – не алё.

  13. Alsigned пишет:

    @ennor
    Привет.

    Ошибка mvarchar появляется при неправильно установленном postgresql-contrib.

    1. Если до сборки postgresql из исходников устанавливались какие-либо версии из репозитория – нужно удалить все что от них осталось.
    2. Проверить установку libicu и наличие библиотек libicuuc, libicui18n и libicudata – все они необходимы для правильной работы contrib.
    3. Проверить наличие ошибок во время make && make install при сборке contrib.
    4. Можно еще неправильно сделать initdb, тогда нужно удалить /var/lib/initdb/data и проделать инициализацию базы заново.

    Вроде все. ;)

  14. Alsigned, по поводу необходимой пересборки пакетов сервера 1С:Предприятия. Например: Имеется Ubuntu server 10.04.2 LTS, установлены Postgres@Etersoft 8.4.4 и сервер 1С:Предприятие 8.2. В комплект поставки входит утилита config_server, она предназначена проверить, все ли пакеты необходимые для корректной работы сервера 1С установлены. В общем она запрашивает непонятные пакеты ttf2afm или ttf2pt1, а они в репозитории Ubuntu 10.04 не входят. Последний раз ttf2pt1 упоминался в репах Debian Lenny.

    В общем было бы здорово собрать и скомпилировать дистрибутивы postgres’a и сервера 1С:Предприятие так, чтобы необходимые пакеты докачивались по мере установки. Как это происходит при установке какого либо пакета из репозиториев.

  15. Alsigned, если у вас нет времени и желания возиться с Ubuntu/Debian. То может ссылки на статьи по этой тематике знаете и поделитесь?

  16. Alsigned пишет:

    @Nigelist
    Тема установки 1с на Linux начала терять для меня актуальность, сегодня есть более интересная и насущная область – обновление RH/CentOS до 6 версии и последующий переход с xen на kvm.

    Будет новая версия PostgreSQL на сайте 1с – будет статья и возможно не только под Cent/RHEL/Fedora, но увы сейчас на установку 1с под Debian или Ubuntu фактически нет заказов :( Как результат – себе я жизнь упростил на сколько это возможно, для интернет сообщества тоже не большой вклад сделал, думаю не мало 1с-ок установлено по моим статьям.

    Самой проблемы о которой я говорил ранее по сути нет – установка 1с для Linux доступна только специалистам в этой области или людям с желанием разобраться, и это на мой взгляд очень правильно. Если человек ставит Linux по статье “Установка Linux со скриншотами”, а потом 1с и postgresql через apt-get или yum и после этого у него возникает проблема, как ты думаешь что он будет делать?
    1. Наберет в консоли shutdown -r now
    2. Напишет по всем форумам рунета “У мне проблема – ошибка соединения с базой”
    3. Через 2 недели простоя … (здесь могут быть варианты) ;)

    Поэтому есть идея предложить людям немножко заморочиться, что бы была возможность определиться, что им больше нужно 1с Linux или что-то другое.
    Пакеты ttf2afm и ttf2pt1 нужны в основном для работы Web-клиента, сервер 1с Предприятия 8.2 корректно работает и без них. Если вдруг они нужны – набираем в Яндексе “ttf2pt1″ и вот результат на первой странице http://es.archive.ubuntu.com/ubuntu/pool/universe/t/ttf2pt1/.

    PS: От себя лично желаю тебе успехов в это нелегком труде.

  17. Alsigned, та с ttf2pt1 уже разобрался нашел альтернативный пакет в действующем репозитории. Ну да ладно, буду дальше копать.

  18. Seerg пишет:

    слушайте, а разница в скорости то вообще есть между postgres 8 и 9?

  19. @Seerg
    Привет, разницы в скорости между PostgreSQL 8.4 и 9.0 фактически нет, по тесту Гилева попугаев получается приближенно одинаково. Но с PostgreSQL 9.0 база проводится быстрей процентов на 5. ;)

  20. Александр пишет:

    Спасибо за статью! Все получилось!

  21. Alexey пишет:

    Alsigned Нужна ваша помощь!

    по порядку, после скачивания и распаковки Postgresql и патчей – как их установить????

    Пачи для PostgreSQL лежат на сайте 1с http://v8.1c.ru/overview/postgres_patches_notes.htm
    patch -p0 < 1c_FULL_90-0.19.patch
    patch -p1 < postgresql-1c-9.0.patch
    patch -p0 < applock-1c-8.4.0.patch

  22. Alsigned пишет:

    @Alexey
    Привет. Спасибо за доверие ;)

    Чем не устраивает вариант установки предложенный в статье?

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

  23. Alexey пишет:

    Уважаемый Alsigned, извиняюсь немного не точно описал суть вопроса!

    порудок ввода команд в консоль:
    1. patch -p0 < 1c_FULL_90-0.19.patch
    2. patch -p1 < postgresql-1c-9.0.patch
    3. patch -p0 < applock-1c-8.4.0.patch

    Он точно таков? или возможно поменять их местами? (перепутал пункт 2 и 3 местами)

    Вы пишите: Дальше берем из исходников с моего сайта следующие файлы и кладем их на соответствующие места:
    /src/backend/parser/gram.c
    /src/backend/parser/gram.h
    /src/interfaces/ecpg/preproc/preproc.c
    /src/interfaces/ecpg/preproc/preproc.h
    /src/interfaces/ecpg/preproc/preproc.y

    где на вашем сайте найти эти файлы??? все пересмотрел :)

  24. Alsigned пишет:

    @Alexey
    Порядок правильный.

    Исходники лежат здесь http://www.alsigned.ru/?dl_name=postgresql-9.0.1-1C.tar.gz, в статье это ссылка “исходники PostgreSQL 9.0.1 для 1С” ;)

  25. Alexey пишет:

    Ну просто достала эта ошибка – Ошибка СУБД «Ошибка СУБД: DATABASE не пригоден для использования»
    как написано http://www.alsigned.ru/?p=1129
    пишут что не правильно пропатчен!!!

    Уже 2 раз сервер с нуля переустанавливаю и ни как!!!
    Помогите кто знает, делал всё по описанию

  26. Alsigned пишет:

    Привет, @Alexey

    Какая ОС?

    В большинстве случаев ошибка “Ошибка СУБД: DATABASE не пригоден для использования” говорит о не правильно проведенной инициализации БД, отсутствии необходимой локали или не пропаченном PostgreSQL. Кроме того есть “Ошибка СУБД type «mvarchar» not exist at character 31.” связанная с отсутствием lib-icu, которая может перерастать в “Ошибка СУБД: DATABASE не пригоден для использования”.

    Для начала нужно удалить все из каталога /usr/pgsql/data и преинициализировать БД, плюс внимательно посмотреть на все что напишет initdb – возможно здесь и кроется проблема ;)

    [root@localhost ~]# su postgres
    bash-4.1$ /usr/pgsql/bin/initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8
  27. Большое спасибо за статью, сделал ссылку с форума 1clinux.org
    Продублировал на всякий случай файл на том же форуме исходники PostgreSQL 9.0.1 для 1С.
    Ссылка статическая: http://1clinux.org/pub/postgresql-9.0.1-1C.tar.gz

  28. Виктор пишет:

    Alsigned :
    Для Fedora/CentOS у меня уже есть собранные с учетом всех особенностей rpm-пакеты в репозитории, для их установки достаточно сделать всего пару действий типа yum install и initdb.

    Alsigned, а есть статья, посвященная установке 1С под centos? Желательно как раз через yum install… Хоть и на Ubuntu вроде сервер поднял, но centos мне больше по душе… Сам не настолько хорошо знаю линукс, чтобы собирать пакеты вручную:(

  29. Alsigned пишет:

    @Виктор
    Статьи по установке 1c + PostgreSQL на CentOS нет, потому что она мало чем отличается от установки на Fedora http://www.alsigned.ru/?p=1129.

  30. Виктор пишет:

    @Alsigned

    А репозиторий-то есть? Хочется именно сделать пару действий…

  31. Den пишет:

    Добрый день!
    Сразу оговорюсь, что сравнительно недавно осваиваю Ubuntu Server. До этого работал на винде.
    Моя конфигурация:
    CPU Core i3 3.2 ГГц
    ОЗУ 4 ГГб
    HDD 3x500Gb
    ОС: Ubuntu 10.04 x64
    Платформа: 8.2.13.219

    Postgres ставил в точности по этой статье. Никаких ошибок не возникало. Единсвенный момент,к каталогу /var прикрутил отдельный хард.
    Запускаю тест Гилева (тест брал отсюда: http://gilev.ru/1c/tpc/tpc82.rar) – выдаёт 5 очей !!! Хотя перед сборкой реального сервера тестировал всё на виртуалбокс на ноуте (core i5 2.27/4GR RAM/Win7 Home Premium) тест выдавал 15 очей.
    “На ощупь” реальный сервер работает намного быстрее виртуалки, потестить на реальной базе, пока нет возможности.
    Я в замешательстве. Подскажите, в чём может быть причина такой низкой производительности? Или же тест Гилева не актуален?
    Спасибо, и надеюсь на оперативный ответ.

  32. Alsigned пишет:

    Привет.

    Тест Гилева не всегда дает стопроцентный результат. Показатель в 5 попугаев говорит о явно недостаточной производительности, на таком железе должно получаться 10-15.

    Проблема может быть в двух местах:
    1. CPU Core i3 3.2 ГГц – они бывают разными, можно купить сервер с i3, а работать он будет как со старым Dual Core ;)
    2. HDD 3x500Gb – в большинстве случаев на производительности 1с сказывается низкая скорость файловой системы. Какой RAID-контроллер? Диски SATA или SAS?

  33. Den пишет:

    Спасибо, что сразу ответили!
    Собственно сервер для небольшой совсем компании, и представляет из себя обычный компьютер с хорошим охлаждением. Пользователей совсем мало 2-3 и думаю, проблем с производительностью не будет. Меня просто вогнал в ступор результат теста.

    Процессор вот этот:
    Core i3-550 (http://ark.intel.com/products/48505)

    По-поводу RAID – то его нет. Т.е. я посчитал, что для такого количества пользователей и задач (стандартная конфигурация) он просто не нужен. Я решил (если изврат, сильно не кричите, а скажите как нужно, буду благодарен) сделать так:
    1 HDD (500 GB)
    – 485 GGb EXT4 монтируется в \
    – 15 GGb раздел подкачки
    2 HDD (500 GB)
    – 500GGb EXT4 монтируется в \var ‘на сайте Гилева есть некоторые рекомендации по установке, там написано, что базу лучше выносить на отдельный хард. Я так и сделал.
    3 HDD (500 GB)
    – 500 GGb EXT 4 монтируется в \backup ‘собственно на него планирую делать резервные кокпии базы и самой оси.

    До этого, я собирал сервера под UBUNTU для 1С с предыдущими версиями Postgres, но я тогда ещё не знал про тест Гилева. Позже собирал по различным хауту с целью саморазвития на виртуалке, тест показывал от 13 до 20 попугаев.
    Ещё раз, спасибо, за оперативный ответ, и очень надеюсь на дальнейшую помощь.

  34. Den пишет:

    Да, ещё один момент. Тест идёт очень долго. Точно не засекал, но минут двадцать.

  35. Den пишет:

    Ещё один момент упустил.
    Харды все Seagate 500 GB SATA-III Barracuda 7200.12 16MB

  36. Alsigned пишет:

    На мой взгляд причина низкой производительности на тестах в процессоре, i3-550 не очень-то быстрый. Нужно потестировать и посмотреть что загружено во время теста, если одно из ядер процессора загружается на 100% причина в нем.

  37. Den пишет:

    Извинте, что сразу не ответил. Совершенно не было времени.
    Сегодня посмотрю, что с ним. Скажите, может в таком случае проще использовать i386 дистрибутивы? Будет эффективнее?
    Спасибо!

  38. Den пишет:

    Добрый день! Я посмотрел загрузку CPU – всё нормально. Ни одно из ядер не загружено на 100%
    Вот вывод команды top:

    top – 14:52:44 up 2:24, 1 user, load average: 1.02, 0.86, 0.47
    Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie
    Cpu0 : 5.8%us, 1.0%sy, 0.0%ni, 93.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Cpu1 : 9.9%us, 2.1%sy, 0.0%ni, 85.9%id, 1.8%wa, 0.0%hi, 0.3%si, 0.0%st
    Cpu2 : 0.3%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
    Cpu3 : 8.7%us, 2.6%sy, 0.0%ni, 86.8%id, 1.6%wa, 0.0%hi, 0.3%si, 0.0%st
    Mem: 3790832k total, 879936k used, 2910896k free, 28712k buffers
    Swap: 14655480k total, 0k used, 14655480k free, 417100k cached

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    1062 usr1cv82 20 0 748m 306m 96m S 16 8.3 5:14.39 rphost
    1799 postgres 20 0 98.2m 32m 20m D 11 0.9 1:09.72 postgres
    930 usr1cv82 20 0 350m 32m 22m S 2 0.9 0:23.18 rmngr
    920 postgres 20 0 13896 720 288 S 1 0.0 0:02.72 postgres
    927 usr1cv82 20 0 225m 18m 11m S 0 0.5 0:01.86 ragent
    2107 root 20 0 19224 1404 1064 R 0 0.0 0:00.12 top
    1 root 20 0 23672 1876 1292 S 0 0.0 0:00.95 init
    2 root 20 0 0 0 0 S 0 0.0 0:00.01 kthreadd
    3 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
    4 root 20 0 0 0 0 S 0 0.0 0:00.01 ksoftirqd/0
    5 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0
    6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/1
    7 root 20 0 0 0 0 S 0 0.0 0:00.01 ksoftirqd/1
    8 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/1

  39. Alsigned пишет:

    Привет.

    Лучшую производительность дает 32-биная 1с на 32-битной системе и 64-битная 1с на 64-битной системе. Установка 64-битной системы на сервер с 4Гб ОЗУ не дает никаких преимуществ.

    Раз процессор во время теста почти не загружен, значит остается файловая система, правда для Ubuntu проблемы с контроллером на мамке под Core i3/i5 большая редкость.

  40. Alsigned пишет:

    Извиняюсь за предоставленные неудобства.

    Все ссылки на скачиваемые файлы восстановлены ;)

  41. Den пишет:

    Alsigned, добрый день!
    Я разобрался со своей бедой по производительности. Сейчас сервер выдаёт 18-20 очей, и я считаю, что это вполне нормально.
    Проблема заключалась в материнской плате – гнал контроллер SATA дисков. Сервисный центр решил эту проблему в пределах одного дня, за, что им спасибо.
    Так же сделал грубую настройку самого Postgres (файл postgresql.conf), следующего плана:
    fsync = off
    effective_cache_size = 2048MB
    work_mem = 16MB
    Более тонкую сделаю несколько позже.
    Сейчас всплыла другая проблема =) Есть несколько клиентов, которые коннектятся к серверу удалённо. На сервак приходит канал
    2 Mbit/s – ИСХОДЯЩИЙ
    4 Mbit/s – ВХОДЯЩИЙ
    Так вот, при соединении удалённо (не терминально, а посредством маршрутизации и dyndns сервиса) иногда падает вот этот процесс:
    usr1cv82 964 1.4 3.2 565916 124304 ? Sl 22:05 0:01 /opt/1C/v8.2/x86_64/rphost -range 1560:1591 -reghost server -regport 1541 -pid 771e0b26-02b3-11e1-7c89-1c6f65d2df24
    При вводе команды:
    service srv1cv82 start/restart
    выдаёт ошибку:
    Starting 1C:Enterprise 8.2 server: Error: service failed to start!
    FAILED
    После перезапуска машины всё работает адекватно. По моим наблюдениям такая ошибка случается только при удалённом коннекте, при работе внутри сети, сервер работает стабильно.
    Отсюда, да вопроса – что это может быть? И как можно включить логирование процессов отвечающих за работу 1С (ну или где лежат логи, а то я не нашёл)?
    Спасибо! Очень надеюсь на Ваш ответ!

  42. Alsigned пишет:

    Привет, Den. В 1с 8 в принципе нет адекватных логов. Что касается уделенного подключения, хорошо работает веб-клиент, а толстый/тонкий клиенты периодично срываются и не редко подвешивают процесс на сервере.

  43. Den пишет:

    Alsigned, приветсвую! Вроде бы как можно включить журналирование. В сети находил заметку, где это упомянуто. Там человеко создаёт xml файл следующего содержания:
    f0s@database:~$ sudo touch /opt/1C/v8.2/x86_64/conf/logcfg.xml
    f0s@database:~$ chown usr1cv82:grp1cv82 /opt/1C/v8.2/x86_64/conf/logcfg.xml
    f0s@database:~$ cat /opt/1C/v8.2/x86_64/conf/logcfg.xml

    Но, что, с ним делать, я честно говоря не понял. Вроде как сложить в каталог /var/log/1c
    Но лично у меня, это никакого эффекта не возымело.

    Взято отсюда:
    http://www.lissyara.su/archive/1c_8.2+postgresql/

    Если будет время и возможность – гляньте!
    В любом случае, спасибо за ответ!

  44. Александр пишет:

    в соответствии с этими командами файл создается пустой:

    f0s@database:~$ sudo touch /opt/1C/v8.2/x86_64/conf/logcfg.xml
    - командой touch создается файл с правами суперюзера (sudo)

    f0s@database:~$ chown usr1cv82:grp1cv82 /opt/1C/v8.2/x86_64/conf/logcfg.xml
    - созданному файлу назначается владелец и группа

    f0s@database:~$ cat /opt/1C/v8.2/x86_64/conf/logcfg.xml
    - команда cat тупо выводит на экран содержимое этого файла, вопрос – кто этот файл наполнял какими нибудь данными с момента создания?? а ведь это по названию – файл настроек ведения логов.

    касаемо производительности – безусловно файловая система имеет большое значение для СУБД по этому поводу имеет смысл погуглить на предмет оптимальной фс для работы postgres и отформатировать выбранный раздел в нужной фс и с рекомендованными параметрами.
    а вот на камень грешить надо в последнюю очередь (их серьезные лаборатории разрабатывают, там дураков не держат)
    для камня неплохо было бы сначала ядро настроить и пересобрать, а для postgres при сборке из исходников (раз уж вы умеете патчить ручками и собирать) имеет смысл указывать через переменные CFLAGS и CXXFLAGS все флаги оптимизации соответствующие вашему процессору, включая все медиа инструкции наподобие SSE, SSE2 и т.д. в зависимости от процессора (в спецификации к вашему процессору на сайте intel можно найти все поддерживаемые инструкции), так можно максимально оптимизировать код postgres для работы именно с вашим процессором и ядром.

  45. MegaBOOBLIK пишет:

    Перед пунктом “Инициализируем БД”
    пришлось выполнить

    3. Меняем параметр ядра linux SHMMAX на 128Мб, насколько я знаю делать это надо на 32-битной машине:

    Консоль:
    echo “kernel.shmmax = 134217728″ >> /etc/sysctl.conf
    echo “kernel.shmall = 134217728″ >> /etc/sysctl.conf

    Применяем изменения:

    Консоль:
    sysctl -p

    Иначе не работало…

  46. Ради частоты эксперимента попробовал установить постгрес на Убунту по Вашей инструкции и все получилось, проверить на стабильность нет времени, поставил на работе 1с + постгрес + Centos 6.0 по этой инструкции http://www.bestcatalog.hut4.ru/postgresql.php 1с работает нестабильно, удаленно к серверу подключение происходит через NX клиента, дальше браузер, проблема только в том, что подключение происходит через раз, даже, если пытаюсь подключится НХ клиентом установленном на самом сервере

  47. Проблема нестабильного подключения NX клиента решается небольшим изменением конфигурации клиента, http://www.bestcatalog.hut4.ru/index.php здесь же это написано!

  48. Александр пишет:

    Спасибо за статью! Прочитал не одну статью на подобную тему, а получилось все установить только по тому как тут описано, все заработало сразу. Немного от себя еще добавлю, по такой команде

    locale-gen en_US ru_RU.UTF-8

    Локаль установить не получилось, не ставится и все тут. Но если эту локаль включить сразу при установке системы то все нормально, конечно можно наверное как то и потом установить но у меня получилось только так

  49. eshkinkot пишет:

    http://www.alsigned.ru/?dl_name=postgresql-9.0.1-1C.tar.gz
    File does not exist.

    Где скачать????

  50. Проверяй, все должно заработать.

  51. eshkinkot пишет:

    Спасибо!

    Возникла следующая ошибка:
    vladimir@ubuntuserver:/usr/local/src/postgresql-9.0.1$ ./configure –disable-integer-datetimes –perfix=/usr
    configure: error: unrecognized option: –perfix=/usr
    Try `./configure –help’ for more information.

    Куда копать? и как решать?

    Если пропускаю этот шаг и перехожу к следующему, то выполнение команды заканчивается так:
    aration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv zic.o ialloc.o scheck.o localtime.o -L../../src/port -lpgport -lpam -lssl -lcrypto -lz -lreadline -ltermcap -lcrypt -ldl -lm -o zic
    /usr/bin/ld: cannot find -lpam
    collect2: ld returned 1 exit status
    make[2]: *** [zic] Ошибка 1
    make[2]: Выход из каталога `/usr/local/src/postgresql-9.0.1/src/timezone’
    make[1]: *** [all] Ошибка 2
    make[1]: Выход из каталога `/usr/local/src/postgresql-9.0.1/src’
    make: *** [all] Ошибка 2

    Заранее спасибо за ответы…

  52. Владимир, ты немного ошибся не perfix, а prefix.

  53. На сайте 1с появились уже готовые DEB-пакеты PostgreSQL, в результате сборка из исходников перестала быть единственным подходом к установке PostgreSQL на Ubuntu/Debian. Новая статья по установке http://www.alsigned.ru/?p=2693.

    ЗЫ: В 1с-овской сборке есть не мало недочетов, поэтому совсем не факт, что она будет работать лучше и быстрее, по сравнению ручной компиляцией из исходников.

Оставить комментарий