Использовались материалы найденные в интернете – спасибо их авторам…
Общие сведения
Сервер предприятия 8.1, а также SQL сервер могут работать на операционной системе Linux (Fedora, CentOS). В качестве SQL сервера в этом случае может использоваться PostgreSQL.
Не стоит устанавливать сервер 1C предприятия и Postgresql с установочных дисков 1С – там обычно устаревшие версии.
Установка операционной системы
1. Убедитесь, что устанавливаемая сборка Linux поддерживает имеющееся оборудование (особенно сетевую плату и RAID-контроллеры)
2. Для нормальной работы некоторых Linux (например CentOS 5.0) необходимо подключение к интернету.
3. Установку RPM пакетов удобно выполнять из графической оболочки, поэтому при установке выберите GNOME
4. Установите также клиент «Самба», если необходим доступ к сети Microsoft.
5. При установке не стоит устанавливать СУБД «PostgreSQL», входящую в дистрибутив (из раздела «Server»). Эта версия не подходит для 1С. Необходима специальная с патчами (можно взять с официального сайта 1С).
6. Обязательно выберите для установки midnight commander (mc) – удобно для тех кто на ВЫ с консольными командами Linux.
7. После установки Linux первым делом настройте сетевое подключение и подключение к интернету. Убедитесь что сетевое подключение и подключение к интернету работает (Система – Администрирование - Сеть).
8. Установите сетевое имя компьютера (Система – Администрирование – Сеть - DNS)
Установка защитного ключа
До двенадцати пользователей могут работать без ключа! Справедливо для версии 1С 8.1.11
Новые драйвера и менеджер лицензий: http://www.aladdin.ru/support/download/detail.php?ID=260
Установка сервера приложений
До установки необходимо установить имя сервера в настройках сети на закладке DNS (Система/Администрирование/Сеть)
Если вы залогинены как обычный пользователь, но при каждом административном действии вводите пароль от root в ответ на запрос ОС, то в данном случае этот пароль запрошен не будет. Запрос пароля нужно самостоятельно инициировать командой консоли:
[CODE]su root[/CODE]
Если на сервере уже стояла предыдущая версия сервера 1С, то её следует удалить из системы. Для этого в главном меню Приложения войдите в Установка/удаление программ, перейдите на вкладку List, снимите флажки со всех пунктов, начинающихся на 1C_Enterprise, и нажмите Применить. Если переустановка выполняется полностью (если необходимо удалить информацию о кластере), то необходимо удалить пользователя «srvr1cv81», утвердительно ответив на вопрос об удалении вместе с ним его домашнего каталога в /home. Также необходимо удалить каталоги /opt/1C/ и /root/.srvr1cv81
Теперь откройте папку с дистрибутивом и двойным щелчком запускайте установки в следующей последовательности:
· 1C_Enterprise-common…
· 1C_Enterprise-common-nls…
· 1C_Enterprise-server…
· 1C_Enterprise-server-nls…
· 1C_Enterprise-ws…
· 1C_Enterprise-ws-nls…
· 1C_Enterprise-crs
· 1C_Enterprise-crs-nls
Не бойтесь устрашающих предупреждений – это нормальное явление.
Теперь нужно запустить агент сервера ragent в режиме демона. Для этого запустите консоль bash из меню Приложения – Стандартные – Терминал и введите следующие команды:
/etc/rc.d/init.d/srv1cv81 stop
/opt/1C/v8.1/i386/ragent -daemon
Для 64-х разрядных серверов вместо «i386» надо применять «x86_64».
/etc/rc.d/init.d/srv1cv81 restart
По команде «top – u usr1cv81» или «ps -aux» процессы сервера приложений в списке называются «ragent», «rmngr» и «rphost» - запущены от имени «usr1cv81».
По команде netstat -na|grep tcp в списке должны бать строки:
tcp 0 0 0.0.0.0:1540 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1541 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1560 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1561 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1562 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1563 0.0.0.0:* LISTEN
Проверьте возможность подключения к серверу с клиентского компьютера с помощью консоли кластера.
В следующих каталогах хранятся данные кластера: файл srvribrg.lst, каталог REG_:
/root/.1cv81/1C/1cv81
/home/usr1cv81/.1cv81/1C/1cv81
Если после установки сервера 1С изменили сетевое имя сервера, то в этих файлах его также надо изменить!
Если сервер 1С автоматически не запускается при загрузке системы, то необходимо выполнить:
chkconfig --add srv1cv81
chkconfig srv1cv81 on
chkconfig --list для проверки
Установка SQL сервера
Проверено для версии 8.2.4
Для нормальной работы сервера 1С необходима особая версия PostgreSQL, пропатченная. Поэтому если на сервере уже установлена обычная версия PostgreSQL, придётся её деинсталлировать! Для этого в главном меню Приложения войдите в Установка/удаление программ, найдите слева пункт Серверы и снимите птичку рядом с пунктом База данных PostgreSQL. Потом нажмите кнопку Применить и дождитесь завершения операции.
SELinux надо отключать: «Система-Администрирование-Уровень безопасности и межсетевой экран», закладка «Настройка SELinux»
Откройте папку и запускайте установки двойным щелчком в следующей последовательности:
postgresql-libs…
postgresql-…
postgresql-server…
postgresql-pl…
postgresql-contrib…
Следующие компоненты являются опциональными:
postgresql-docs…
postgresql-devel…
postgresql-debuginfo…
postgresql-jdbc…
postgresql-test…
В терминале запустите следующую команду консоли (перед этим команда su root должна уже быть исполнена):
LANG=ru_RU.utf-8 /etc/init.d/postgresql start
Если эта команда не выполнилась и в комментарии что-то написано про команду «InitDB», то
1. Удалите каталог /var/lib/pgsql/data/ (если он существует с помощью mc)
2. Переключитесь на пользователя «postgres» надо выполнить: su postgres
3. Выполните команду initdb –D /var/lib/pgsql/data/
Эта команда помимо прочего заполнит папку /var/lib/pgsql/data/ умолчальными настройками.
Исполните команду:
gedit /var/lib/pgsql/data/postgresql.conf или «F4» в mc
Откроется редактор. Найдите по Ctrl-F или F7 и измените там следующие параметры:
default_with_oids = on
stats_row_level = off
listen_addresses = '*'
Не забудьте раскомментировать эти строки, убрав символ комментария #. Если этих параметров нет, то вам придётся ввести их вручную.
Рекомендуется увеличить значение параметра effective_cache_size в конфигурационном файле postgresql.conf. Значение этого параметра рекомендуется устанавливать не менее половины объема оперативной памяти установленной на компьютере.
Сохраните файл и закройте редактор.
В файле, открываемом командой
gedit /var/lib/pgsql/data/pg_hba.conf
указаны допустимые параметры подключения к PostgreSQL-серверу. Проверьте, чтобы было указано (снят комментарий # с соответствующих строк):
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
Эти параметры вы сможете отконфигурировать позднее (имеет смысл в целях безопасности ограничить подключения, например, только локальным хостом localhost), когда убедитесь, что всё (включая клиента 1С) работает.
Теперь перезапустите сервер PostgreSQL:
/etc/init.d/postgresql restart
Если сервер PostgreSQL не стартует, то проблемы следует искать в лог-файле. Лог-файлы PostgreSQL находятся в каталоге /var/lib/pgsql/data/pg_log. Просмотр лог-файлов можно выполнять с помощью команды «cat», формат: cat имя_файла
Войдите в консоль PostgreSQL командой:
psql -h localhost postgres postgres или psql -h 127.0.0.1 postgres postgres
(Формат команды psql –h имя_хоста имя_базы имя_пользователя)
Если будет выдано сообщение об ошибке, отсылающее вас к файлу pg_hba.conf, то, скорее всего, хост localhost не прописан в файле /etc/hosts. Откройте его командой
gedit /etc/hosts
и добавьте строку:
127.0.0.1 localhost
Теперь консоль должна запуститься. Введите пароль postgres (ввод пароля не отмечается ни буквами, ни звёздочками).
Если Вам не удается подключиться к консоли PostgreSQL по причине того что не подходит пароль, то в файле /var/lib/pgsql/data/pg_hba.conf для строки:
host all all 127.0.0.1/0 md5
необходимо «md5» поменять на «trust» (убедитесь что строка раскомментирована) и перезапустить сервер PostgreSQL
Теперь консоль должна запуститься без требования пароля.
При первом запуске PostgreSQL создаётся учётная запись postgres с паролем postgres. Первое, что надо сделать в консоли – сменить этот пароль командой:
ALTER USER postgres PASSWORD 'your_new_password';
В версии 8.2 PostgreSQL пароль по умолчанию уже почему-то не «postgres», поэтому что бы не путаться лучше изменить его на «postgres»:
ALTER USER postgres PASSWORD 'postgres';
Обращаем ваше внимание, что точка с запятой в консоли PostgreSQL обязательна и означает окончание текста команды. На что должно быть выдано сообщение:
ALTER ROLE
По окончании работы с консолью PostgreSQL следует выполнить команду:
\q
Если в файле /var/lib/pgsql/data/pg_hba.conf Вы меняли «MD5» на «trust», то можно выполнить обратную замену, (если доступ к консоли сервера ограничен, то можно не делать) перезапустить сервер PostgreSQL и проверить подключение к консоли с помощью измененного Вами пароля
По команде «ps -aux» процесс в списке называется «postmaster», запущен от имени «postgres».
По команде netstat -na|grep tcp в списке должны быть строка:
tcp 0 0 0.0.0.0: 5432 0.0.0.0:* LISTEN
Проверьте подключение к серверу PostgreSQL с другого компьютера сети с помощью «PGAdmin»
Для автоматического запуска SQL сервера при старте системы необходимо выполнить команды:
chkconfig --add postgresql
chkconfig postgresql on
chkconfig --list для проверки
Создание базы данных
Установите на клиентскую Windows-машину клиента 1С v8.1 со средствами доступа к серверу предприятия 1С.
Если для опредения URL адресов в локальной сети используется сервер DNS, то в его базу необходимо внести информацию о сервере, иначе пропишите сервер на каждом клиенте в файл %SYSTEMROOT%\system32\drivers\etc\hosts. Его можно отредактировать, например, блокнотом, добавив строку, подобную этой:
192.168.1.1 centos
где 192.168.1.1 – это IP-адрес линукс-сервера, а centos – его имя. Не пренебрегайте этим шагом, так как доступ к серверу из оснастки просто по IP-адресу весьма затруднителен.
Проверьте что сервер доступен по имени. С клиентского компьютера выполните команду:
Ping Centos
Также проверьте что выполняется обратное определение для имени сервера. С клиентского компьютера выполните:
Tracert 192.168.1.1
В заголовке результата этой команды должно быть имя сервера «Centos».
Запустите оснастку управления серверами предприятия из меню Пуск – 1С Предприятие 8.1 – Серверы 1С Предприятия. Создайте центральный сервер правым щелчком.
Создайте пустую БД из консоли кластера
Если при создании базы возникает ошибка «11004»:
Ошибка соединения с рабочим процессом
server_addr=tcp://localhost.localdomain:1563 descr=Ошибка сетевого доступа к серверу
(Windows Sockets-11004(0x00002AFC). Затребованное имя допустимо и оно найдено в базе данных, но для имени отсутствуют связанные с ним данные, которые были разрешены для него.) line=546 file=.\scr\DataExchangeTcpClientImpl.cpp
То решения следующие:
1. Проверить имя сервера: Центральные серверы 1С Предпрития – Сервер – Кластеры – 1541 – Рабочие серверы – Имя сервера. Если имя сервера 1С отличается от сетевого имени сервера, то необходимо изменить имя сервера 1С. (описано в конце установки сервера 1С)
2. IP-адреса имени и . выполняется по разному. Проверить:
- как задано имя сервера 1С:Предприятия при регистрации ИБ на клиентском приложении?
- выполняется ли ping по этому имени и определяется ли IP адрес?
- совпадает ли IP адрес с тем, который выдает ping из того же домена?
3. Отстутствует имя компьютера центрального сервера в DNS или в файле C:\WINNT\system32\drivers\etc\hosts
- попробуйте имя сервера внести в файл hosts на проблемном компьютере, указав ему IP адрес, вырываемый ping-ом с компьютера, на котором 1С:Предприятие стартует нормально.
4. Нет прав на сервер
Войдите в конфигуратор пустой базы и загрузите *.dt
Если при загрузке *.dt в пустую базу возникли проблемы связанные с региональными установками, то в исходной базе необходимо изменить региональные установки «Администрирование – Региональные установки информационной базы» и выгрузить *.dt еще раз.
Резервное копирование и восстановление
Выполнить резервное копирование и восстановление можно из консоли «pgAdmin III». В контекстном меню на выделенной базе данных есть пункты «Резервная копия…» и «Восстановить…»
Postgres обеспечивает две утилиты для резервного копирования системы: pg_dump для резервного копирования индивидуальных баз данных и pg_dumpall для резервного копирования установки за один шаг.
Для отдельной базы данных можно сделать резервную копию с помощью следующей команды:
% pg_dump dbname > dbname.pgdump
и восстановить с помощью
cat dbname.pgdump | psql dbname
Эта техника может быть использована для перемещения базы данных в новое место, и для переименования существующих баз данных.
Т.к. Postgres позволяет таблицы больше чем максимальный размер файла в системе, может быть проблематично сбросить таблицу в файл, вероятно, что результирующий файл окажется больше, чем максимальный размер файла, разрешенной в системе.
Так как pg_dump пишет в stdout, ты можешь использовать стандартные утилиты *nix для работы над этой возможной проблемой:
Используй сжатие при сбросе:
% pg_dump dbname | gzip > filename.dump.gz
восстановив с помощью
% createdb dbname
% gunzip -c filename.dump.gz | psql dbname
или
% cat filename.dump.gz | gunzip | psql dbname
Используй разбиение:
% pg_dump dbname | split -b 1m - filename.dump.
восстановив с помощью
% createdb dbname
% cat filename.dump.* | pgsql dbname
Конечно, имя файла (filename) и содержимое вывода pg_dump не нужно сравнивать с именем базы данных. Также, восстановленная база данных может иметь произвольное новое имя, так что этот механизм также подходит для переименования базы данных.
Для резервного копирования по расписанию я рекомендую следующий код:
pg_dump dbname > /путь/dbname.pgdump
tar czf /путь/pgdump-`date +%d.%m.%y`.tgz /путь/dbname.pgdump
вторая строчка отвечает за создание архива, с именем pgdump -текущая_дата.tgz
таким образом вы получаете ежедневную копию баз Postgres и можете откатится на любой день.
Этот код можно добавить в cron двумя путями:
1) создать текстовый файл в директории /etc/cron.daily/ , скопировать туда код и сделать его исполняемым (chmod +x имя_файла)
2) использовать crontab -e для редактирования расписания cron.
туда нужно ввести:
0 0 * * * pg_dump dbname > /путь/dbname.pgdump;tar czf /путь/pgdump-`date +%d.%m.%y`.tgz /путь/dbname.pgdump
и сохранить файл.
Стандартное расположение резервных копий PostgreSQL:
/var/lib/pgsql/backups/
Если необходимо выполнять резервное копирование сразу нескольких баз (например двух), то в каталог /etc/cron.daily/ можно поместить текстовый файл с именем «pgdump» следующего содержания:
pg_dump --host=localhost --username=postgres ZUP > /var/lib/pgsql/backups/ZUP.pgdump;tar czf /var/lib/pgsql/backups/ZUP-`date +%y.%m.%d`.tgz /var/lib/pgsql/backups/ZUP.pgdump;pg_dump --host=localhost --username=postgres BU > /var/lib/pgsql/backups/BU.pgdump;tar czf /var/lib/pgsql/backups/BU-`date +%y.%m.%d`.tgz /var/lib/pgsql/backups/BU.pgdump
Если команда просит ввести пароль, то в файле /var/lib/pgsql/data/pg_hba.conf для строки:
host all all 127.0.0.1/0 md5
измените «md5» на «trust» (не забудьте убрать комментарий) и перезапустите сервер Postgres
Назначить этот файл исполняемым для владельца, членов группы и прочих пользователей.
Каждые сутки будет выполняться резервное копирование баз ZUP и BU в каталог /var/lib/pgsql/backups/. Также резервные копии будут архивироваться в файлы с именами, содержащими дату резервного копирования.
Расписание выполнения файлов из каталогов /etc/cron.*/ находится в файле /etc/crontab
Восстановление базы из резервной копии выполняется с помощью следующих команд:
Если необходимо восстановить в новую базу, то необходимо ее сначала создать:
cd /var/lib/pgsql
su postgres
createdb –h localhost dbname
Ввестипарольдля postgres…
su
Собственно команды для восстановления:
Распаковать архив:
% tar xzf filename.tgz
В результате будет распакован файл: «dbname.pgdump». Будьте внимательны! Архив может быть распакован с учетом путей, начиная с текущего каталога. Если так случилось, файл «dbname.pgdump» надо переместить в текущий каталог.
% cat dbname.pgdump | psql –h localhost dbname postgres
Ввести пароль для postgres…
Должно появиться множество сообщений типа: «CREATE TABLE», «ALTER TABLE» и после некоторого времени (зависит от размера базы) восстановление будет закончено.
Выполнения регламентных операций на SQL-сервере
Основным средством физического и аналитического сопровождения баз данных в PostgreSQL является команда SQL VACUUM и ее аналог — сценарий vacuumdb. Оба средства выполняют две общие функции:
· удаление всех данных, оставшихся в результате отмены транзакций и других операций, оставляющих временные данные;
· анализ операций с базами данных, по результатам которого PostgreSQL конструирует более эффективные запросы.
Для баз данных, работающих в условиях реальной эксплуатации, команду VACUUM рекомендуется выполнять каждую ночь. Хотя команда может выполняться параллельно с обращениями к данным, это замедляет работу сервера. По этой причине сопровождение рекомендуется запланировать на время с минимальным количеством операций с базой данных.
Создать текстовый файл с именем «vacuumdb» в директории /etc/cron.daily/ , скопировать туда код:
vacuumdb –h localhost –U postgres –W postgres –a –z -v
vacuumdb –h localhost –U postgres –a –z -v
Сделать этот файл исполняемым (chmod +x имя_файла)
Каждую ночь будет выполняться оптимизация всех баз данных
Эту команду можно дописать в конце файла, предназначенного для автоматического создания резервных копий:
pg_dump --host=localhost --username=postgres ZUP > /var/lib/pgsql/backups/ZUP.pgdump;tar czf /var/lib/pgsql/backups/ZUP-`date +%y.%m.%d`.tgz /var/lib/pgsql/backups/ZUP.pgdump;pg_dump --host=localhost --username=postgres BU > /var/lib/pgsql/backups/BU.pgdump;tar czf /var/lib/pgsql/backups/BU-`date +%y.%m.%d`.tgz /var/lib/pgsql/backups/BU.pgdump;vacuumdb -h localhost -U postgres -a -z -v
Для работы Autovacuum в файле /var/lib/pgsql/data/postgresql.conf убрать комментарий «#» со строки с параметром:
Stats_start_collector = on
Приложения
Приложение 1. Некоторые команды консоли Linux
Запуск консоли осуществляется: «Приложения – Стандартные - Терминал»
«cd» - переход по каталогам
«ls» просмотр содержимого каталога
«cat имя_файла» просмотр содержимого текстового файла (удобно просматривать файлы логов)
gedit – редактирование текстового файла
Вместо этих команд удобней использовать «mc» - аналог «Norton Commander»
«su» - переключение между пользователями или вход в режим root
«top –u ИмяПользователя» выводит список процессов пользователя, показывает использование процессора и памяти
«ps -aux» выводит список всех процессов
«kill НомерПроцесса» убивает указанный процесс
«uname –a» – покажет версию ядра
«cat /proc/version» - покажет версию дистрибутива Linux
«cd /media/имя_флешки» - переход в каталог флешки
/etc/grub.conf – файл конфигурации загрузчика GRUB – можно указать чтобы по умолчанию загружался Windows, если установлено две системы.
Приложение 2. Назначение IP портов
1540 – порт центрального сервера кластера, процесс «ragent»
1541 – порт первого рабочего сервера кластера, процесс «ragent»
5432 – порт сервера PostgreSQL
Приложение 3. Полезные ссылки
http://life.screenshots.ru/the-code-inside/php-platform/linux-1c-setup/ - вопросы/ответы установки 1С на сервер Linux
http://users.v8.1c.ru/Platform_8_2_4_31C.aspx - Последняя версия PostgreSQL для 1С
http://www.kb.mista.ru/article.php?id=290 – обзорная информация о PostgreSQL и ссылки