dpkg-reconfigure locales
Установка 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. Подготавливаем сервер
надо проверить что есть необходимые локали
отмечаем эти 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