1c windows db2 linux

Установка и настройка DB2 под Linux для работы с 1С:Предприятием 8.1/8.2


Краткое содержание:

В статье даны подробные инструкции по установке и конфигурированию IBM DB2 при развертывании на операционной системе Linux для работы с 1С:Предприятием 8.1/8.2

Общие рекомендации:


  • Если возникли какие-то вопросы, загляните в документацию, вероятней всего там вы найдете ответ на свой вопрос. Особенно это актуально, если продукт для вас новый, или вы начинаете работать с новой версией продукта.
  • При возникновении проблем имеет смысл анализировать логи (как лог-файлы DB2 , так и технологический журнал 1С), т.к. они содержат массу полезной информации: например, сообщения об ошибках или текст исполняемого запроса.
  • Подавляющее большинство проблем можно решить при помощи логов, документации и поиска (особенно по кодам ошибок). Например, посмотрев код ошибки в лог-файле, и сделав поиск в документации по этому коду, вы найдете рекомендации по устранению ошибки.
  • Если хочется побыстрей что-то настроить в операционной системе Linux, попробуйте открыть существующий конфигурационный файл. Как правило, там много комментариев и большинство параметров уже прописаны. Или посмотрите, нет ли в каталоге файла xxx.sample, который предоставляется в качестве примера.
  • При работе с DB2 не надо бояться командной строки. В ней можно в несколько раз быстрей сделать все то же самое, что и в графическом интерфейсе.

Инструкция по установке DB2 под Linux

Все действия выполняются под пользователем root, если не сказано иное.

Сначала необходимо настроить параметры ядра Linux для работы DB2. Согласно документации для этого необходимо отредактировать /etc/sysctl.conf, чтобы он содержал следующие строки:

kernel . msgmax = 65535
kernel . msgmnb = 65535

Также немаловажно сконфигурировать параметр kernel . shmmax , который отвечает за максимальный размер сегмента выделяемой памяти. Практика показала, что для приложений на базе платформы 1С:Предприятие критичным является размер оперативной памяти, использьзуемый в качестве кэша базы данных, т.е. занимаемый буферпулами. (Об устройстве и табличных пространств и буферпулов см. статью на developerWorks. Также рекомендуется прочитать статью о модели памяти DB2). В свою очередь, рост буферпулов приводит к тому, что при перезапуске базы данных DB2 для размещения буферпулов может запрашивать сегмент памяти большого объема, что значительно превосходит параметры конфигурации, указанные в документации.

# Параметры конфигурации ядра, рекомендованные в документации

# Это значение для Linux 64 — bit
kernel . shmmax = 1073741824
# Это значение для Linux 32 — bit
kernel . shmmax = 268435456

Рекомендуется установить значение максимального размера сегмента памяти равное 2Гб, т.е.

kernel . shmmax =2147483648

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

После редактирования файла необходимо запустить

Внесенные изменения вступили в силу.

Приведенные выше значения — рекомендованны в документации по DB2. Опыт инсталляций 1С на DB2 показал, что размер сегмента памяти, который может запрашиваться разово, может превосходить рекомендованные значения.

Рекомендации, независимо от разрядности операционной системы, выставить максимальный размер сегмента памяти равный 2Гб, т.е.следующие

kernel . shmmax =2147483648

Данные настройки были проверены для следующих версий Linux:

  • Ubuntu 9.0
  • FedoraCore 6 x86
  • FedoraCore 6 x86_64
  • RedHat 4 PPC
  • RedHat 4 s390x (IBM System z — мэйнфрейм)

После этого можно приступать к установке DB2.

Прежде чем начать инсталляцию, убедитесь, что у вас установлены пакеты обратной совместимости для libstdc++. В частности, для FC6 необходимы пакеты

compat-libstdc++-33-3.2.3-61
compat-libstdc++-296-2.96-138

Можно также при установке Linux для «разработчика» выбрать поддержку старых программ, в этот раздел входят указанные пакеты.

Берем архив с дистрибутивом DB2 и распаковываем его. Например :

tar xfz db 2 exc_ 912 _ 1 Cspecial 17705 _LNX_x 86 _ 64 . tar . gz
cd exp/disk 1

Принимаем по-умолчанию каталог установки (/opt/ibm/db2/V9.1)

После чего ставим сам продукт (пишем в строке вопроса: EXP — т.е. DB2 Express)

Создаем пользователей, необходимых для работы DB2

useradd das
useradd db 2 inst
useradd db 2 fenc

Внимание! При использовании Ubuntu по-умолчанию команда useradd не создает домашний каталог пользователя. Необходимо в командной строке указать ключ -m, чтобы этот каталог создавался автоматически:

useradd -m das
useradd -m db 2 inst
useradd -m db 2 fenc cd /opt/ibm/db 2 /V 9 . 1 /instance

Создаем DB2 Administration Server (DAS).

Сервер автоматически запустится от имени пользователя das

Создаем экземпляр DB2, настроенный на работу через порт 50000 (порт DB2 по-умолчанию)

. /db 2 icrt — u db 2 fenc — p 50000 db 2 inst

su — db 2 inst

Конфигурируем DB2 для работы с 1С

db 2 set DB 2 _WORKLOAD = 1 C

Запускаем экземпляр DB2

Возвращаемся в root через Ctrl-D (logout)

Если необходимо, чтобы DB2 запускалась автоматчески при старте системы, выполняем команду:

/opt/ibm/db 2 /V 9 . 1 /instance/db 2 iauto — on db 2 inst

Установка и конфигурирование сервера 1С:Предприятия

Для начала необходимо установить 1С:Предприятие:

После этого необходимо добавить пользователя usr1cv81 в группу доступа, которая является основной для запущенного экземпляра DB2. Основную группу доступа можно получить при помощи команды:

При этом будет получена, например, следующая информация:

uid = 501 ( db 2 inst ) gid = 501 ( db 2 inst ) groups = 501 ( db 2 inst ) , 500 ( das )

Это означает, что основной группой доступа для запущенного экземпляра DB2 является группа db2inst с идентификатором 501.

Добавляем пользователя usr1cv81 в эту группу:

usermod — G 501 usr 1 cv 81

На этом конфигурирование закончено.

Запуск 1С:Предприятия

После того, как вы установили сервер 1С:Предприятия под Linux, при каждом перезапуске системы он будет стартовать автоматически. Но сразу после инсталляции сервер еще не запущен. При запуске системы автоматически запускается скрипт /etc/rc.d/init.d/srv1cv81 с параметром start, т.е. выполняется команда

Выполнив данную команду (от имени пользователя root), получаем примерно следующее:

Starting 1C:Enterprise 8.1 server: [ OK ]

Сервер запущен, и можно приступать к работе.

Однако при попытке создания базы данных в DB2 появляется следующая ошибка:

Получается, что сервер 1С:Предприятия не видит динамических библиотек DB2 и нам надо их как-то добавить в пути поиска.

На этой проблеме остановимся более подробно, нежели просто опишем решение.

Есть 2 варианта решения данной задачи.

Вариант 1. Использовать файл /etc/ld.so.conf

Вариант 2. Использовать переменную среды LD_LIBRARY_PATH (в подразделе Быстрая настройка используется именно этот вариант)

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

Если не хотите забивать себе голову подробностями, то подраздел «Быстрая настройка» это ваше все 🙂

Быстрая настройка

Все параметры настройки среды для работы с DB2, в т.ч. и настройки LD_LIBRARY_PATH прописываются для каждого инстанса автоматически в файле

db2inst/sqllib/db2profile, который и используется для настройки среды.

Все, что вам надо сделать, чтобы настроить сервер 1С на тот или иной инстанс, добавить строку

После чего надо перезапустить сервер 1С.

Таким образом, если у вас в системе (например, тестовой) есть 2 инстанса DB2, то перенастройка сервера 1С на тот или иной инстанс заключается в подключении соотвествующего файла db2profile, в профиль пользователя usr1cv81.

Подсказка! Проще всего будет, если в качестве имени пользователя инстанса DB2 вы укажите не ‘db2inst’, a ‘usr1cv81’. Почему? Догадайтесь сами! 🙂

А теперь более подробное рассмотрение вариантов.

Вариант 1.

Файл /etc/ld.so.conf служит для указания динамическому линковщику путей поиска динамических библиотек. Посмотрим на его содержимое.

]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/ofed/lib64
[root@rhel41c

]#
Видим, что помимо самого ld.so.conf пути могут быть прописаны в файлах c расширением .conf в каталоге /etc/ld.so.conf.d/

Нам надо добавить к путям поиска два каталога (один, в случае 32 битной установки). Занесем эти каталоги в новый файл /etc/ld.so.conf.d/db2.conf и сохраним его

Для того, чтобы динамический линковщик обновил пути поиска, необходимо выполнить команду ldconfig .

Теперь достаточно перезапустить сервер 1С:Предприятия и убедиться, что данный подход работает.

Останавливаем сервер, используя уже известный нам скрипт

]# /etc/rc.d/init.d/srv1cv81 stop
Stopping 1C:Enterprise 8.1 server: ragent [ OK ]
[root@rhel41c

И запускаем заново. Хотя можно было бы воспользоваться и командой скрипта restart

]# /etc/rc.d/init.d/srv1cv81 restart
Stopping 1C:Enterprise 8.1 server: ragent [ OK ]
Starting 1C:Enterprise 8.1 server: [ OK ]
[root@rhel41c

Проверяем, как функционирует сервер 1С:Предприятия.

Но что будет, если в рамках системы установлено два экзеспляра DB2? Какие пути прописывать в данном случае?

Давайте вернем конфигурацию системы в исходное положение (удалим /etc/ld.so.conf.d/db2.conf и запустим ldconfig, чтобы исключить пути к библиотекам DB2 из глобального поиска) и рассмотрим вариант 2.

Вариант 2.

Задание путей поиска динамических библиотек через /etc/ld.so.conf имеет один недостаток — пути поиска являются глобальными. Например, если у вас установлены DB2 9.1 и DB2 9.5, то настроить два экземпляра сервера 1С:Предприятия для работы с разными версиями DB2 через /et/ld.so.conf не получится.

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

Казалось бы, что проще всего добавить строчку

LD_LIBRARY_PATH= /opt/ibm/db2/V9.1/lib32: /opt/ibm/db2/V9.1/lib64

в скрипт запуска сервера 1С /etc/rc.d/init.d/srv1cv81

Однако этот способ не проходит, поскольку при запуске сервера сбрасываются все настройки перменных окружения.

Единственный правильный способ установки LD_LIBRARY_PATH — это добавление в профайл пользователя, т.е. скрипт .bash_profile, расположенный в домашнем каталоге пользователя usr1cv81 (пользователя, от имени которого запускается сервер 1С:Предприятие).

LD_LIBRARY_PATH= /opt/ibm/db2/V9.1/lib32 : /opt/ibm/db2/V9.1/lib64

Перезапускаем сервер 1С. Теперь все готово к работе.

Источник

Особенности работы с СУБД IBM DB2


Используемые версии IBM DB2

Может быть использован вариант поставки IBM DB2 Express-C, который является бесплатной версией IBM DB2 9.

1С:Предприятие 8.1 работает со следующими версиями DB2:

  • Windows 32 IBM DB2 Express-C for Windows (9.1.19840). Скачать (только для зарегистрированных пользователей 1С:Предприятия 8).
  • Linux 32 IBM DB2 Express-C for Linux (9.1.19840). Скачать (только для зарегистрированных пользователей 1С:Предприятия 8).
    Установка данной версии IBM DB2 для Linux должна производиться при помощи сценария установки db2_install. После чего обязательно должно быть выполнено конфигурирование установленного экземпляра IBM DB2.
    Инструкция по установке IBM DB2 для Linux на русском языке (сайт компании IBM).
    Инструкция по конфигурированию серверов IBM DB2 для Linux после установки вручную на русском языке (сайт компании IBM)

Особенности установки СУБД IBM DB2


  • Для нормальной работы 1С:Предприятия 8.1 с IBM DB2 на платформе Windows рекомендуется увеличить значение параметра AGENT_STACK_SZ используемой копии DB2 до 64. Для этого:
    • запустить центр управления ( Старт — Программы — IBM DB2 — DB2COPY1 (По умолчанию) — Общие инструменты управления — Центр управления );

    • открыть диалог изменения параметров текущего экземпляра DB2. Для этого в дереве объектов выбрать текущий экземпляр ( Центр управления — Все системы — — Экземпляры — ) и выполнить команду контекстного меню Конфигурировать параметры ;
    • установить необходимое значение параметра AGENT_STACK_SZ (в категории Производительность );
    • перезпустить используемый экземпляр DB2 (в контекстном меню команды Остановка и Запуск ).

Особенности установки компоненты 1С:Предприятия 8.1 для работы с IBM DB2


  • Операционная система Windows.
    Если сервер 1С:Предприятия запущен как сервис, необходимо выполнить следующие действия:
    • включить пользователя, от имени которого запускается сервер 1С:Предприятия (по умолчанию USR1CV81) в группу DB2ADMNS;
    • для используемой копии DB2 установить параметр SYSADM_GROUP в значение DB2ADMNS. Для этого:
      • запустить центр управления ( Старт — Программы — IBM DB2 — DB2COPY1 (По умолчанию) — Общие инструменты управления — Центр управления );
      • открыть диалог изменения параметров текущего экземпляра DB2. Для этого в дереве объектов выбрать текущий экземпляр ( Центр управления — Все системы — — Экземпляры — ) и выполнить команду контекстного меню Конфигурировать параметры ;
      • установить необходимое значение параметра SYSADM_GROUP (в категории Управление );
      • перезпустить используемый экземпляр DB2 (в контекстном меню команды Остановка и Запуск ).

  • Операционная система Linux.
    Установку компоненты необходимо выполнять от имени пользователя root .
    Для установки следует выполнить следующую команду: rpm -i

Администрирование

При создании информационной базы необходимо выбрать в качестве типа СУБД — IBM DB2.

Имя базы данных в IBM DB2 должно содержать только английские буквы и цифры и не должно быть длиннее 8 символов.

В качестве имени сервера баз данных необходимо указать имя компьютера, а если на нем имеются экземпляры сервера баз данных, отличные от установленного по умолчанию, то и имя установленного экземпляра IBM DB2, заданное при его установке через «/». Например, computer/db2name.

Длина имени пользователя базы данных не должна превышать 8 символов.

В остальном, администрирование работы 1С:Предприятия 8.1 с IBM DB2 не отличается от работы с другими СУБД.

Особенности 1С:Предприятрия 8.1 при работе с IBM DB2


  • Нетипизированный NULL . Тип колонки, являющейся результатом запроса ВЫБРАТЬ NULL, является самым общим составным типом, а не простым типом, совместимым с любым другим. Поэтому такая колонка не может использоваться в операциях, в которых не могут использоваться поля составных типов. Например, ВЫБРАТЬ ЕСТЬNULL(f1 + 1, 1) FROM (ВЫБРАТЬ NULL f1) t1 при работе с DB2 приведет к ошибке, поскольку операндом операции «+» не может быть поле составного типа;
  • Чувствительность к регистру букв при сравнении строк. В неявных сравнениях строк, выполняемых в процессе отработки РАЗЛИЧНЫЕ (DISTINCT), СГРУППИРОВАТЬ ПО (GROUP BY), ОБЪЕДИНИТЬ (UNION) языка запросов, большие и маленькие буквы различаются;
  • Максимальная длина числовых данных – 31 знак (а не 38);
  • Максимальная длина ресурсов регистров накопления и бухгалтерии – 25 знаков (а не 32);
  • Максимальное количество колонок в списке выборки оператора не может превышать 1012. При определении количества колонок нужно учитывать, что для полей составного типа 1С:Предприятие создает несколько колонок в таблице СУБД;
  • Отличные от других СУБД правила определения точности результата при выполнении арифметических операций;
  • Правым операндом операции сравнения ПОДОБНО (LIKE) может быть только литерал (параметр) или выражение над литералами. Шаблонными символами являются только ‘_’ – любой символ и ‘%’ – последовательность любых символов.

Поддержка

Замечания по работе 1С:Предприятия 8.1 с IBM DB2 следует направлять в фирму 1С по адресу testplatform@1c.ru.

С информацией по администрированию IBM DB2 можно ознакомиться на сайте компании IBM (на русском языке).

Партнеры фирмы 1С и пользователи 1С:Предприятия 8.1 могут обращаться за поддержкой по вопросам администрирования IBM DB2 в форум на сайте компании IBM (на русском языке).

Источник

Читайте также:  Типы атрибутов файлов windows
Оцените статью