Закрыть
Profit for professionals
+7 495 648 69 49

Установка 1с сервера с базой postgres на debian 64 бита

 

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

1. Скачиваем дистрибутивы postgres и серверной части 1с  с официального сайта www.users.v8.1c.ru.

Технологическая платформа 1с 1.8 для linux 64 бита.

1c-enterprise82-common_8.2.19-83_amd64.deb
1c-enterprise82-common-nls_8.2.19-83_amd64.deb
1c-enterprise82-server_8.2.19-83_amd64.deb
1c-enterprise82-server-nls_8.2.19-83_amd64.deb
1c-enterprise82-ws_8.2.19-83_amd64.deb
1c-enterprise82-ws-nls_8.2.19-83_amd64.deb

и 

Дистрибутив СУБД PostgreSQL для Linux x86 (64-bit) одним архивом (DEB) 

postgresql_9_1_2_deb_x86_64_tar.gz

 

Добвьте эти зеркала в /etc/apt/sources.list  

deb http://mirror.yandex.ru/debian/ squeeze main
deb-src http://mirror.yandex.ru/debian/ squeeze main
 
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
 
# squeeze-updates, previously known as 'volatile'
deb http://mirror.yandex.ru/debian/ squeeze-updates main
deb-src http://mirror.yandex.ru/debian/ squeeze-updates main
 

 

Ставить надо именно эту версию постгреса т.к. на момент написания статьи (05.03.2014), версия 9.2 с сайта 1с, не работает,  как должна и ее придётся перекомпилировать. (она скопилина без опции --disable-integer-datetimes)

В этой версии 9.1.2 версии всего пару доделок до работоспособности, если вам требуется стабильность.

После распаковки архива, советую удалить 

rm postgresql-plpython-9.1_9.1.2-1.1C_amd64.deb postgresql-plpython3-9.1_9.1.2-1.1C_amd64.deb

т.к. он требует python 3.2, а инсталировать его и эти пакеты не имеет смысла для работы сервера. 

 

2. Подготавливаем сервер

 надо проверить что есть необходимые локали

 
dpkg-reconfigure locales
 

 

отмечаем эти 3

 
en_US.ISO-8859-15
en_US.UTF-8
ru_RU.UTF-8
 

и на всякий случай выполняем 

 
locale-gen en_US ru_RU ru_RU.UTF-8
 
export LANG="ru_RU.UTF-8"
 

 

 

 

Меняем значение kernel.shmmax для успешного создания кластера размер указан 6 гигабайт если у вас меньше то исправьте соответственно

 
sysctl kernel.shmmax=6442450944
 
echo "kernel.shmmax=6442450944" >>/etc/sysctl.conf
 

Скачиваем и ставим отсутствующий пакет, для него понадобятся следующие зависимости:

 
apt-get install cabextract xfonts-utils defoma libfontenc1 libxfont1 x11-common xfonts-encodings
 
wget "http://ftp.us.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.3_all.deb"
 
dpkg -i ttf-mscorefonts-installer_3.3_all.deb
 

 

далее устанавливаем пакеты которые  потребуеются для успешного выполнения скрипта конфигурации 1с 

 

 
apt-get install libicu-dev libxslt1.1 libxml2 libossp-uuid16 imagemagick libglib2.0-dev libgsf-1-114 texlive-base unixodbc libssl0.9.8 ssl-cert libossp-uuid16 libxslt1.1
 

 

Преходим собственно к самой установке постгреса , к сожалению в сборке от 1с осутствует компоненты postgresql-common, postgresql-client-common для установки он потребует версию выше 115, в стабильных репозиториях только 113, так что ставим руками 

 
wget "http://ftp.de.debian.org/debian-backports/pool/main/p/postgresql-common/postgresql-client-common_134wheezy4~bpo60+1_all.deb"
 
wget "http://ftp.de.debian.org/debian-backports/pool/main/p/postgresql-common/postgresql-common_134wheezy4~bpo60+1_all.deb"
 
dpkg -i postgresql-client-common_134wheezy4~bpo60+1_all.deb
 
dpkg -i postgresql-common_134wheezy4~bpo60+1_all.deb
 

 

 затем устанавливаем всё из скаченного пакета должно быть 

 
dpkg -i libecpg-compat3_9.1.2-1.1C_amd64.deb
dpkg -i libecpg-dev_9.1.2-1.1C_amd64.deb
dpkg -i libecpg6_9.1.2-1.1C_amd64.deb
dpkg -i libpgtypes3_9.1.2-1.1C_amd64.deb
dpkg -i libpq-dev_9.1.2-1.1C_amd64.deb
dpkg -i libpq5_9.1.2-1.1C_amd64.deb
dpkg -i libpython3.2_3.2.3-7_amd64.deb
dpkg -i postgresql-9.1-dbg_9.1.2-1.1C_amd64.deb
dpkg -i postgresql-9.1_9.1.2-1.1C_amd64.deb
dpkg -i postgresql-client-9.1_9.1.2-1.1C_amd64.deb
dpkg -i postgresql-client-common_134wheezy4~bpo60+1_all.deb
dpkg -i postgresql-common_134wheezy4~bpo60+1_all.deb
dpkg -i postgresql-contrib-9.1_9.1.2-1.1C_amd64.deb
dpkg -i postgresql-doc-9.1_9.1.2-1.1C_all.deb
dpkg -i postgresql-plperl-9.1_9.1.2-1.1C_amd64.deb
dpkg -i postgresql-pltcl-9.1_9.1.2-1.1C_amd64.deb
dpkg -i postgresql-server-dev-9.1_9.1.2-1.1C_amd64.deb
 

Если всё прошло удачно установщик сам создаст кластер main, если нет , то сделаем вручную

 
pg_createcluster 9.1 srv1c --start
 

  

дальше маленькая доделка, надо подправить конфигурационный файл,

иначе при загрузке базы получим :

“syntax error at or near “SECOND” at character 127″ или “syntax error at or near “SECOND” at character 227″.

Исправляем в файле конфигурации следующие параметры.  

 
nano /etc/postgresql/9.1/main/postgresql.conf
 

 

 или

 
nano /etc/postgresql/9.1/srv1c/postgresql.conf 
 

 

 

Для успешного исправления надо именно исправить, а недобавить 

 
backslash_quote = on
 
escape_string_warning = off
 
standart_conforming_strings = off
 
Сразу рекомендую поставить значения памяти для вашей системы,  указаны в части от полной памяти 
  • shared_buffers = 1/8  или больше (но не более 1/4);
  • work_mem в 1/20;
  • maintenance_work_mem в 1/4 ;
  • fsync = on;
  • wal_sync_method = fdatasync;
  • commit_delay = от 10 до 100;
  • commit_siblings = от 5 до 10;
  • effective_cache_size =1/4;
  • random_page_cost = 2 для быстрых cpu, 4 для медленных;
  • cpu_tuple_cost = 0.001 для быстрых cpu, 0.01 для медленных;
  • cpu_index_tuple_cost = 0.0005 для быстрых cpu, 0.005 для медленных;
  • autovacuum = on;
  • autovacuum_vacuum_threshold = 1800;
  • autovacuum_analyze_threshold = 900;
 
 

 И закрываем с сохранением: Ctrl+x, Y

 

На всякий случай выравниваем права на папку с 1с


 
chown -R usr1cv82:grp1cv82 /opt/1C
 

 

возможно не будет хватать симлинка 


 
ln -s /usr/lib/libgsf-1.so.114 /usr/lib/x86_64-linux-gnu/libgsf-1.so
 

 Теперь скофигурим сам 1с чтобы не возникало ошибки 

Ошибка инициализации графической подсистемы

 

 
nano /opt/1C/v8.2/x86_64/utils/config_server
 

 

В начало функции getLibPath добавить пути к 64-х битным библиотекам 


 
checkPath lib/x86_64-linux-gnu $ARCH && { echo /usr/lib/x86_64-linux-gnu; return; }
 

 

там получится что-то вроде 

 
############################################################
function checkInstalledLibs {
 ########################################################
 # checking ARCH environment variable
 [ -z "$ARCH" ] && ARCH=64
 ARCH=${ARCH}-bit
 [ "$ARCH" != "32-bit" -a "$ARCH" != "64-bit" ] && { echo "$MSG_UNKNOWN_ARCH"; exit 1; }
 #-------------------------------------------------------
 
 ########################################################
 # checking nessessary libraries
 checkLib MagickWand Wand || checkLib Wand || askToInstall ImageMagick
 checkLib freetype || askToInstall FreeType
 checkLib gsf-1 || askToInstall libgsf
 checkLib glib-2.0 || askToInstall libglib
 checkLib odbc || askToInstall UnixODBC
 #-------------------------------------------------------
}
 
 

 Затем выполняем саму конфигурацию с указанием папки, где лежат шрифты 

 

 
/opt/1C/v8.2/x86_64/utils/config_server /usr/share/fonts/truetype/msttcorefonts/
 

 

Ставим пароль на постгрес 

 
su postgres
 
psql -U postgres -c "alter user postgres with password 'mysecretpassword';"
 

 

На всякий случай отключаем обновление пакетов постгреса

 
echo "libpq5" hold | dpkg --set-selections
 
echo "postgresql-9.1" hold | dpkg --set-selections root@srv1c:~# echo "postgresql-client-9.1" hold | dpkg --set-selections
 
echo "postgresql-contrib-9.1" hold | dpkg --set-selections
 

 

 

Ну и собственно момент истины  

 
/etc/init.d/postgresql start
 
/etc/init.d/srv1cv82 start
 

 

 

Подать заявку

Поля, отмеченные знаком * — обязательны.

например: +7 495 123 0000
например: ivanov@yandex.ru