Развертывание 1С:Предприятие 8.1 под Linux

Ни для кого не секрет, что программный комплекс "1С:Предприятие" является неотъемлемой составляющей информационных систем множества современных компаний. Именно поэтому настоящим событием стал выпуск редакции серверной части программного комплекса, работающей под управлением операционной системы Linux. Можно смело сказать, что компания "1С" дала Linux ещё один повод занять одну из важнейших позиций в современных бизнес-процессах. Ну что же, повод есть, и задача технических специалистов состоит в том, чтобы воспользоваться им с максимальной пользой как для себя, так и для предприятий, доверившихся свободному ПО.

В этой статье мы рассмотрим процедуру развёртывания сервера "1С:Предприятие 8.1" под управлением операционной системы Linux. За основу будет взят дистрибутив CentOS 5.3.

Необходимо сразу определиться с тем, что нам потребуется.

  1. Сервер с установленным дистрибутивом CentOS.
  2. Архиватор unrar, который можно получить на официальном сайте программы – http://www.rarlab.com/rar_add.htm.
  3. Дистрибутивы серверной части "1С:Предприятие 8.1" (setuprh.rar1) и СУБД PostgreSql (setuppln833.rar1), полученные с официального сайта компании "1C" – http://users.v8.1c.ru.
  4. Драйвер и менеджер HASP-ключей, полученный с официального сайта компании "Aladdin" и инсталлятор для него (HASP_SRM_LINUX_ 3.50_RedHat_RPM_Run-time_Installer.tar.gz2) – http://www.aladdin.com/support/hasp/vendor.aspx.
  5. Установите имя узла для вашей операционной системы. Здесь мы будем использовать buh.example.com.
  6. На время установки и настройки отключите сетевой фильтр.

1 Имена файлов могут различаться.

2 Применимо только для USB-ключей; имя файла может варьироваться в зависимости от версии продукта.

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

Установка и настройка

Как ни странно, но процедуру развёртывания информационной системы мы начнём именно с серверной части "1C:Предприятие". Для начала распакуем полученный архив и произведём установку:

	# mkdir /root/1c/tp && unrar x /root/1c/setuprh.rar /root/1c/tp
	# yum --nogpgcheck localinstall /root/1c/tp/*.rpm

 

Запустите сервер "1С:Предприятие" и добавьте его в автозагрузку:

	# service srv1cv81 start
	# chkconfig add srv1cv81

 

Теперь установите СУБД PostgreSql. При установке в "свежих" версиях дистрибутивов может возникнуть проблема с зависимостями, так как пакет postgresql-plpython требует наличия интерпретатора python версии 2.3, тогда как во многих дистрибутивах установлен 2.4. Существует множество вариантов решения этой проблемы, но наиболее рациональным является получение src.rpm-пакета с исходными кодами python-2.3 (http://www.python.org/download/releases/2.3.5/rpms/), его последующая сборка и установка. Немаловажным является и то, что пакет postgresql-plpython никак не влияет на работоспособность "1С:Предприятие" и может быть проигнорирован. Итак, распакуйте полученный архив и произведите установку:

	# mkdir /root/1c/psql && unrar x /root/1c/setuppln833.rar /root/1c/psql
	# yum --nogpgcheck localinstall /root/1c/psql/*.rpm

 

Добавьте PostgreSql в автозагрузку:

	# chkconfig postgresql on

 

Последний элемент, который необходимо установить, – это драйвер HASP-ключей, необходимый для того, чтобы сервер "1С:Предприятие" смог "увидеть" серверный HASP-ключ. На самом деле сервер "1С:Предприятие" не требует наличия серверного ключа в случае, когда число пользователей не превышает 12. В этой ситуации вам потребуется наличие только клиентских HASP-ключей. Однако, согласно правилам лицензирования, организация должна приобрести серверный ключ. Распакуем архивы и произведём установку с помощью предлагаемого установщика:

# cd /root/1c
	# tar xf HASP_SRM_LINUX_ 3.50_RedHat_RPM_Run-time_Installer.tar.gz
	# cd HASP_SRM_LINUX_3.50_RedHat_RPM_Run-time_Installer
	# yum localinstall aksusbd-redhat-1.14-3.i386.rpm

 

После этого произойдёт установка драйвера и менеджера ключей. Также будет произведён их запуск. Убедитесь в том, что служба aksusbd определена для запуска на всех необходимых вам уровнях загрузки:

	# chkconfig --list aksusbd

 

Убедитесь, что ключ определён менеджером ключей. Для этого с помощью браузера подключитесь к Web-интерфейсу менеджера ключей по адресу http://localhost:1947. На этой странице перейдите по ссылке HASP Keys и найдите в списке ваш USB-ключ.

Теперь, когда все необходимые элементы установлены, самое время заняться настройкой PostgreSql. И первое, что требуется сделать, – инициализировать кластер баз данных (man initdb). При инициализации кластера будут использованы текущие настройки локали (locale) пользователя postgres. Для работоспособности "1С:Предприятие" необходимо установить русскую локаль и кодировку UTF-8. Сделать это можно любым удобным способом. Например, можно добавить следующую строку в файл .bash_profile, находящийся в домашнем каталоге пользователя postgres (/var/lib/pgsql):

	LANG=ru_RU.UTF-8

 

После этого необходимо произвести инициализацию кластера баз данных:

	# service postgresql initdb

 

После завершения инициализации кластера баз данных можно приступать к его настройке. Все файлы кластера находятся в каталоге /var/lib/pgsql/data, в котором вы сможете обнаружить конфигурационные файлы pg_hba.conf и postgresql.conf. Первый файл предназначен для определения параметров аутентификации, а второй – для определения параметров функционирования кластера баз данных.

Первое, что необходимо сделать, – создать нового пользователя для доступа к базам данных и предоставить ему необходимые права доступа, а также настроить подсистему аутентификации кластера баз данных. Серверу "1C:Предприятие" необходимы права доступа, дающие возможность создавать новые базы данных; исходя из этого создаваемой учётной записи будет присвоена роль superuser. Для добавления пользователя переключитесь в учётную запись postgres и из-под неё выполните команду:

	$ createuser 1cadmin

 

Установите пароль для пользователя 1cadmin. Продолжая работать под учётной записью postgres, запустите консоль управления кластером баз данных PostgreSql с помощью команды psql и в ней дайте команду:

	alter user "1cadmin" with password 'password';

 

Вместо password укажите пароль, который должен быть установлен для учётной записи 1cadmin. Не пренебрегайте базовыми требованиями к паролю, ведь от его стойкости зависит защищённость важнейшей информации предприятия.

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

	host    all         all         0.0.0.0/0             md5

 

В частных случаях вы можете изменить эти параметры для ограничения возможностей подключения к кластеру баз данных PostgreSql. Подробное описание возможных параметров вы можете получить в документации PostgreSql (секция "Client Authentication").

Перейдём к настройке основных параметров, определяющих работу кластера баз данных. Здесь необходимо отметить, что перечень параметров огромен, и в этой статье мы рассмотрим лишь основные из них, которые наиболее сильно влияют на общий уровень производительности сервера "1С:Предприятие". Рассмотрим эти параметры.

shared_buffers. PostgreSql не читает данные и не записывает их напрямую на диск. Вся информация, необходимая PostgreSql, загружается в буфер сервера, который находится в разделяемой памяти (shared memory). Соответственно, работа с данными происходит путём обращения к разделяемой памяти. Если памяти будет недостаточно, то какие-то данные будут "сброшены" на диск для её высвобождения. Учитывая объёмы данных, с которыми обычно приходится работать серверу "1С:Предприятие", недостаток выделенной памяти может привести к существенному снижению производительности.

По умолчанию для параметра установлено значение 32MБ, что зачастую является недостаточным для достижения максимальной производительности. Но не забывайте, что выделение слишком большого объёма памяти может привести к её нехватке другим процессам, работающим в операционной системе.

Память выделяется при запуске PostgreSql, и в некоторых случаях вы можете получить в логах ошибку, сообщающую о невозможности создания буфера указанного размера из-за ограничений операционной системы. В этом случае вам необходимо увеличить значение параметра ядра kernel.shmmax, который определяет максимальный объём разделяемой памяти. Это можно сделать с помощью конфигурационного файла /etc/sysctl.conf.

При объёме оперативной памяти 2–4 ГБ имеет смысл установить значение:

	shared_buffers = 256 MБ

 

Для определения оптимальности выделенного объёма памяти используйте утилиту ipcs во время активной работы с сервером "1С:Предприятие". Эта утилита покажет объём разделяемой памяти, выделенной для кластера баз данных, Значение параметра shared_buffers установите в 2 раза большее.

effective_cache_size. Значением параметра является объём оперативной памяти, который используется операционной системой для кэширования файлов. Этот параметр является одним из наиболее важных, так как на его значение опирается планировщик запросов PostgreSql. Значение вычисляется как 50–75% от общего объёма оперативной памяти.

work_mem. Параметр указывает максимальный объём памяти, который может быть использован внутренними операциями сортировки и хэширования перед тем как будут использованы временные файлы. Важно помнить, что этот параметр лишь ограничивает объём памяти, потребляемый каждой операцией сортировки. Если в запросе параллельно выполняется несколько операций хэширования и сортировки, то и объём реально потреблённой памяти может оказаться существенно выше указанного значения.

При объёме оперативной памяти 2–4 ГБ имеет смысл установить значение:

	work_mem = 64 MБ

 

maintenance_work_mem. Параметр определяет объём памяти, выделяемый для таких операций, как VACUUM, CREATE INDEX, ALTER TABLE ADD FOREIGN KEY.

При объёме оперативной памяти 2–4 ГБ имеет смысл установить значение:

	maintenance_work_mem = 256 MБ

 

autovacuum. Один из наиболее важных параметров, отвечающий за автоматическое выполнение операции VACUUM, которая играет роль сборщика мусора. Для часто обновляемых баз данных, к которым относится "1С:Предприятие", включение данного параметра жизненно необходимо:

	autovacuum = on

 

В зависимости от характера работы "1С:Предприятие" необходимо определить параметры автоматического вызова команды VACUUM. Важно помнить о том, что операция VACUUM создаёт определённую нагрузку, совершая множество операций ввода/вывода; таким образом, она может существенно снизить общий уровень производительности.

Для решения обозначенной выше проблемы в PostgreSql определён ряд параметров, влияющих на поведение команды VACUUM

vacuum_cost_limit. Значение суммарной стоимости, при достижении которого процесс VACUUM должен "заснуть". По умолчанию установлено значение 200, используйте его в качестве начального. В дальнейшем, наблюдая за работой PostgreSql и сервера "1С:Предприятие", вы сможете более точно определить необходимое значение.

vacuum_cost_delay. Время в миллисекундах, по истечении которого процесс VACUUM должен "пробудиться" после "засыпания", вызванного достижением значения параметра vacuum_cost_limit. Устанавливайте значение, кратное 10, в зависимости от интенсивности изменения записей в базе данных.

fsync. Принцип, по которому PostgreSql осуществляет запись данных на диск, схож с принципом функционирования журналируемых файловых систем. Изменяемые данные помещаются сначала в журнал транзакций, из которого они принудительно перемещаются на устройство хранения информации. Естественно, что этот принцип приводит к временным издержкам, связанным с выполнением операций записи на диск. Установка параметра в значение No поможет существенно повысить производительность в случае, когда данные базы данных интенсивно изменяются, но есть и обратная сторона медали. В случае возникновения сбоя в работе операционной системы и/или оборудования целостность базы данных будет нарушена, что повлечёт за собой восстановление из резервных копий и соответствующий простой в работе предприятия. Учитывая, что в "1С:Предприятие", как правило, размещаются очень важные данные, рекомендуется устанавливать параметр в значение Yes.

Как говорилось ранее, данные записываются на диск не сразу, попадая сначала в журнал транзакций. Возникает вопрос, а по какому алгоритму PostgreSql определяет момент, когда необходимо записать данные из журнала на диск. Этот алгоритм зависит от контрольных точек, а контрольные точки определяются двумя параметрами: checkpoint_segments и checkpoint_timeout. Важно помнить, что запись данных на диск начинается либо при заполнении максимального количества сегментов (checkpoint_segments), либо по истечении времени, определяемого параметром checkpoint_timeout.

checkpoint_segments. Параметр определяет количество сегментов между контрольными точками. Размер каждого сегмента составляет 16 МБ, а общий объём дискового пространства, которое может занять журнал транзакций, определяется по формуле (checkpoint_segments * 2 + 1) * 16 МБ.

Во время работы вы можете обнаружить в файлах кластера баз данных подобные сообщения:

LOG: checkpoints are occurring too frequently (17 seconds apart)
HINT: Consider increasing the configuration parameter "checkpoint_segments".

 

Попробуйте плавно увеличивать значение параметра checkpoint_segments до тех пор, пока сообщение не исчезнет. Не устанавливайте слишком большое значение, это увеличит время восстановления после сбоев. Попробуйте использовать параметр checkpoint_timeout.

checkpoint_timeout. Параметр определяет время в миллисекундах, по истечении которого запускается процедура записи данных из журнала на диск.

max_locks_per_transaction. Параметр определяет максимально возможное количество блокировок за одну транзакцию. Для "1С:Предприятие" установите значение:

	max_locks_per_transaction = 400

 

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

Перенос журналов транзакций может быть осуществлён очень просто. Допустим, что мы подключили второй жесткий диск, отформатировали его в файловую систему ext3 и подключили в каталог /mnt/hdd2. Теперь вам необходимо выполнить всего несколько команд, и журналы транзакций будут перемещены:

	# service postgresql stop
	# mv /var/lib/pgsql/data/pg_xlog /mnt/hdd2
	# ln -s /mnt/hdd2/pg_xlog /var/lib/pgsql/data/pg_xlog
	# service postgresql start

 

Перенос баз данных необходимо осуществлять в крайнем случае. Например, когда нагрузка стала критической, и нет возможности провести модернизацию аппаратных ресурсов. Принцип такой же, как и в случае с журналами транзакций. Необходимо только знать, где хранятся файлы базы данных. Все базы данных размещены в каталоге /var/lib/pgsql/data/base, но каталог каждой базы называется не именем, а её идентификатором. Чтобы узнать идентификатор переносимой базы, переключитесь в учётную запись пользователя postgres и воспользуйтесь следующей командой:

	$ psql -A -q -t -c "select oid from pg_database where datname='DBNAME'"

 

Вместо DBNAME подставьте имя искомой БД.

Запуск

Теперь вы можете перезапустить Postgresql. Запустите клиентскую часть "1С:Предприятие". Перед вами появится окно со списком баз данных "1С:Предприятие" (если до этого вы не работали с программным комплексом, то список может быть пуст). Итак, далее выполняйте следующие действия.

  1. Нажмите кнопку Добавить.
  2. Выберите пункт "Создание новой информационной базы" и нажмите Далее.
  3. Если у вас установлены конфигурации "1С:Предприятие", выберите "Создание информационной базы из шаблона", в списке выберите нужный шаблон и нажмите Далее.
  4. Выберите "На сервере "1С:Предприятие".
  5. Перед вами форма для ввода реквизитов доступа к серверу "1С:Предприятие", давайте заполним их:
    • кластер серверов "1С:Предприятие" – buh.example.com;
    • имя информационной базы в кластере – testdb;
    • защищённое соединение – Выключено;
    • тип СУБД – PostgreSQL;
    • сервер баз данных – buh.example.com;
    • имя базы данных – testdb;
    • пользователь базы данных – 1cadmin;
    • пароль пользователя – password.
    Обязательно отметьте галочкой "Создать базу данных в случае её отсутствия".
  6. Нажмите кнопку Готово.

На этом установку и настройку сервера "1С:Предприятие" можно считать оконченной. Можете загружать необходимые вам конфигурации и работать с ними в обычном режиме.

В конце сентября 2009 года была выпущена новая версия платформы "1С:Предприятие 8.2". Из основных нововведений: поддержка Oracle и возможность работы посредством протокола HTTP, т. е. "через браузер". Будем надеяться, что это ещё один качественный шаг вперёд на пути к той диверсификации, которой так не хватает рынку программного обеспечения.

 

Источник: ibm.com

Ликбез

Kernel32.dll не найден

Kernel32 dll. За что отвечает и почему вылетает ошибка «не найден kernel32 dll»?

Форматирование флэшек, реанимация и ремонт

Мы привыкли к тому, что объектом восстановления информации чаще всего является жёсткий диск; твёрдотельные же накопители почему-то априори считаются надёжными. И если данные на флэшке всё-таки оказываются повреждены, то восстанавливать их даже не пытаются. В данной статье мы попытаемся развенчать подобное убеждение.

Горячие клавиши и клавиатурные сокращения Windows

В данном разделе представлены основные горячие клавиши Windows
Клавиши общего назначения, клавиши проводника, клавиши для работа с текстом, клавиши работы с окнами, клавиши работы в Internet Explorer и другие...

Файл hosts в Windows

Файл HOSTS используется в Windows для преобразования символьных имен доменов (google.com) в соответствующие им IP-адреса (64.233.167.99) и наоборот (точно такие же задачи в сетях TCP/IP выполняет и DNS - Domain Name System - система доменных имен).

Специальные страниц "about: Pages" в Google Chrome

Как и большинство других браузеров, Google Chrome имеет некоторые специальные страницы, которые показывают информацию об использовании памяти, файлов из кэша, плагины и многое другое...

Инструкция по переустановки Windows XP

Пошаговая инструкция по переустановки Windows XP

Как скачать видео из Вконтакте?

Скачать видео из Вконтакте можно используя разные специальные сервисы...

Спец. предложения

1. Установка и настройка программного обеспечения
2. Монтаж и настройка сети, Интернет, серверов
3. Установка и настройка оборудования, компьютерной техники, принтеров, модемов
4. Ремонт компьютеров, замена комплектующих, компьютеры на заказ, обновление компьютеров
5. Консультации при выборе компьютера, дорогие компьютеры, эксклюзивные предложения
6. Сервисное обслуживание предприятий, учреждений