[an error occurred while processing this directive]

Опыт настройки связки PostgreSQL и 1С в Oracle Linux
Потребовалось сделать сервер 1С для чего была выбрана связка OracleLinux 6.1 +
1C82 (8.2.14.519) + Postgres 9.0.4.

Собрал следующее железо для тестов:

   MB: Asus P5
   CPU : Intel(R) Pentium(R) D CPU 3.20GHz 2 ядра
   MEM : 8G
   HDD : 1x160G 7200 (старый нового не нашлось)

hdparm -Tt /dev/sda
/dev/sda:
 Timing cached reads:   2670 MB in  2.00 seconds = 1335.62 MB/sec
 Timing buffered disk reads:  220 MB in  3.00 seconds =  73.30 MB/sec

При установке выделил под SWAP 10G, остальное под корень, получилось что-то вроде:

   /dev/sda1   *           1       18152   145803264   83  Linux
   /dev/sda2           18152       19458    10484736   82  Linux своп / Solaris

ставил все без LVM, разбивка руками. Выбрал минимальную установку

Прицепил RPM-репозитории:

   cd /etc/yum.repos.d
   touch public-yum-ol6.repo

добавил в файл public-yum-ol6.repo:

   [ol6_ga_base]
   name=Oracle Linux 6 GA - $basearch - base
   baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/0/base/$basearch/
   gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
   gpgcheck=1
   enabled=1

   [ol6_u1_base]
   name=Oracle Linux 6 U1 - $basearch - base
   baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/1/base/$basearch/
   gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
   gpgcheck=1
   enabled=1

затем все как обычно

   yum update

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

cat /etc/sysctl.conf

   # Kernel sysctl configuration file for Red Hat Linux
   # Controls IP packet forwarding
   net.ipv4.ip_forward = 0

   # Controls source route verification
   net.ipv4.conf.default.rp_filter = 1

   # Do not accept source routing
   net.ipv4.conf.default.accept_source_route = 0

   # Controls the System Request debugging functionality of the kernel
   kernel.sysrq = 0

   # Controls whether core dumps will append the PID to the core filename.
   # Useful for debugging multi-threaded applications.
   kernel.core_uses_pid = 1

   # Controls the use of TCP syncookies
   net.ipv4.tcp_syncookies = 1

   # Disable netfilter on bridges.
   net.bridge.bridge-nf-call-ip6tables = 0
   net.bridge.bridge-nf-call-iptables = 0
   net.bridge.bridge-nf-call-arptables = 0

   # Controls the maximum size of a message, in bytes
   kernel.msgmnb = 65536

   # Controls the default maxmimum size of a mesage queue
   kernel.msgmax = 65536

   # Controls the maximum shared segment size, in bytes
   kernel.shmmax = 68719476736

   # Controls the maximum number of shared memory segments, in pages
   kernel.shmall = 4294967296
   vm.overcommit_memory=2

неплохо
добавим на всякий случай

   kernel.panic=5
   kernel.panic_on_oops=5
   kernel.panic_on_io_nmi=5
   kernel.panic_on_unrecovered_nmi=5

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

   chkconfig ip6tables off
   chkconfig iptables off
   chkconfig netfs off
   chkconfig postfix off
   chkconfig saslauthd off

затем отключим SELinux, так как с ним не работает 1C.

vi /etc/selinux/config

   SELINUX=disabled

и reboot

Приступим к настройке 1C и PostgreSQL. Прочитал  статью
http://www.alsigned.ru/?p=1129 про установку 1С 8.2 в связке с Postgresql 9.0.
Сделал все как в статье, единственно подменил в конфигурации PostgreSQL 9.0.4 и
патчи взял для версии 9.0.3 (http://v8.1c.ru/overview/postgres_patches_notes.htm).

Краткое изложение процесса:

Загружаем необходимые пакеты:
   yum install rpm-build gcc make glibc-devel bison flex python-devel tcl-devel readline-devel \
      zlib-devel openssl-devel  krb5-devel  e2fsprogs-devel gettext pam-devel openldap-devel icu libicu libicu-devel

Патчим PostgreSQL
   wget http://v8.1c.ru/overview/postgresql_patches/9-0-4/postgresql-9.0.4-1.1C.src.rpm
   rpm -i postgresql-9.0.4-1.1C.src.rpm

В файле /usr/lib/rpm/macros в параметре %_default_patch_fuzz заменяем 0 на 2.
В файле /root/rpmbuild/SOURCES/postgresql.init прописываем:

   PGENGINE=/usr/pgsql/bin
   PGDATA=/var/lib/pgsql/data
   PGLOG=/var/lib/pgsql/pgstartup.log

В spec-файле /root/rpmbuild/SPECS/postgresql-9.0-4C.spec меняем  postgresql-9.0
на postgresql, получится примерно так:

   525 chkconfig --add postgresql
   530 sbin/service postgresql condstop >/dev/null 2>&1
   531 chkconfig --del postgresql
   537 /sbin/service postgresql condrestart >/dev/null 2>&1

Собираем пакет с пропатченным PostgreSQL:
    rpmbuild -ba --define 'runselftest 0' /root/rpmbuild/SPECS/postgresql-9.0-4C.spec

Устанавливаем пакет:
   rpm -i /root/rpmbuild/RPMS/x86_64/*.rpm

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

    su postgres
   /usr/pgsql/bin/initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8

Запускаем postgresql:

   service postgresql start

Устанавливаем 1С:


Указываем имя хоста в /etc/hosts (имя должно совпадать с именем HOSTNAME,
указанным в файле /etc/sysconfig/network):

127.0.0.1       localhost 1csrv 1csrv.mydomain.local
192.168.1.1     1csrv 1csrv.mydomain.local


Устанавливаем пакеты с 1С:

   rpm -i 1C_Enterprise82-common-8.2.13-205.x86_64.rpm 1C_Enterprise82-server-8.2.13-205.x86_64.rpm \
      1C_Enterprise82-ws-8.2.13-205.x86_64.rpm 1C_Enterprise82-common-nls-8.2.13-205.x86_64.rpm \
      1C_Enterprise82-server-nls-8.2.13-205.x86_64.rpm 1C_Enterprise82-ws-nls-8.2.13-205.x86_64.rpm 

далее активируем сервисы 1c и postgresql:

   chkconfig srv1cv82 on
   chkconfig postgresql on

В .bash_profile правим "PGDATA=/var/lib/pgsql9/data" на "PGDATA=/var/lib/pgsql/data".

Далее запустил 1С-клиента, создал базу TEST и запустил тест Гилева (gilev.ru)
...ждал минут 20 !!!! набрал 9.1 !!! балов явно мало для комфортной работы.
Гилев рекомендует включить блокировки вручную .... что и делаем через конфигуратор
снова тест ..... уже 14 баллов.

Пробуем  оптимизировать postgresql.conf:

   shared_buffers = 1024MB                 # min 128kB
   work_mem = 400MB                                # min 64kB
   maintenance_work_mem = 2048MB           # min 1MB
   fsync = off                             # turns forced   synchronization on or off
   wal_sync_method = fdatasync             # the default is the first option
   commit_delay = 50                       # range 0-100000, in microseconds
   commit_siblings = 7                     # range 1-1000
   cpu_tuple_cost = 0.001                  # same scale as above
   cpu_index_tuple_cost = 0.0005           # same scale as above
   effective_cache_size = 4096MB

далее

   /etc/init.d/postgresql restart
   /etc/init.d/srv1cv82 restart

Следующее тестирование показало 20.4 баллов.... неплохой результат.
Поставил две конфигурации кадрыКОРП  + бухгалтерияКОПРП. В конфигураторе сменил
блокировки на управляемый режим блокировок.

Написал скрипт для чистки логов и бекапа БД и поместил его в cron:

   #!/bin/bash

   set +x

   /bin/rm -rf /backups/1c/*.log
   /bin/touch /backups/1c/1c8_bkp.log

   BKPDIR=/backups/1c

   TIME=`date +%d-%m-%Y_%H:%M:%S`  # год,месяц,день,часы,минуты
   DATE_ARC=`date +%d%m%Y`

   LOG=/backups/1c/1c8_bkp.log

   dl() {
     $* >> $LOG 2>&1
   }

   dl echo $TIME
   
   dl /etc/init.d/srv1cv82 stop
   dl /bin/sleep 10


   /bin/find /backups/1c -type f -mtime +1 -print | /usr/bin/xargs  /bin/rm -f
   /bin/find /var/lib/pgsql/data/pg_log/ -type f -mtime +1 -print |  /usr/bin/xargs /bin/rm -f

   /usr/pgsql/bin/pg_dump -U postgres -Fc -Z9 -c -f /backups/1c/buh.$DATE_ARC.sql buh
   /usr/pgsql/bin/pg_dump -U postgres -Fc -Z9 -c -f /backups/1c/hrm.$DATE_ARC.sql hrm
   /usr/pgsql/bin/pg_dump -U postgres -Fc -Z9 -c -f /backups/1c/test.$DATE_ARC.sql test

   dl echo $TIME
   dl /etc/init.d/srv1cv82 start

Вот пожалуй и все
 
06.09.2011 , Автор: alexpn , Источник: http://www.alsigned.ru/?p=1129...
Ключи: oracle, linux, postgresql, 1c
Раздел:    Корень / Администратору / Система / Установка и синхронизация времени

[an error occurred while processing this directive]

[an error occurred while processing this directive]