В Google можно найти кучу статей на вышеуказанную тему. Но в комментариях к этим статьям пишут, что у многих установленная по инструкции связка не работает. Решил попробовать сам, устанавливал сервер 1C:Предприятие 8.2 + Postgres@Etersoft 8.4.4 на базе Ubuntu Server 10.04.* i386. Во избежание проблем, новичкам советую, при установке сервера, выбирать русскую локаль по-умолчанию. У меня все завелось... smile
Для тех кто плохо разбирается в линуксе, настоятельно рекомендую устанавливать все по инструкции. И очень-очень внимательно... Если что-то не получается максимально подробно описывайте вашу проблему. В ином случае вы не дождетесь нормального ответа.
Подготовка сервера
[console]sudo apt-get update
sudo apt-get dist-upgrade[/console]
2. Дистрибутивы можно скачать из интернета сразу на сервер или скопировать заранее скачанные дистрибутивы через самбу. Я предполагаю, что самба может быть настроена не у всех, потому воспользуемся флешкой. Берем флешку, закидываем в нее заранее скачанные дистрибутивы в отдельные папки:
[console]1с
postgres
hasp[/console]
Перед этим заранее распаковав дистрибутивы из архивов.
3. Создаем директорию, к которой будем монтировать флешку:
[console]sudo mkdir /opt/1cinstall[/console]
4. Подключаем флешку к серверу, просматриваем как она подключилась:
[console]sudo fdisk -l[/console]
У меня это sdb1, теперь монтируем флешку сразу в папку 1с:
[console]sudo mount /dev/sdb1 /opt/1cinstall/1c[/console]
5. Проверяем что намонтировали:
[console]ls /opt/1cinstall[/console]
Т.к. на моей флешке ничего не было кроме папок с дистрибутивами, отобразились только они:
[console]1с
postgres
hasp[/console]
Установка PostgreSQL@Etersoft 8.4.4
[console]sudo -i[/console]
2. На данный момент последняя стабильная версия от Etersoft это 8.4.4, ее то мы и будем устанавливать. Переходим в папку postgres:
[console]cd /opt/1cinstall/postgres[/console]
Проверяем что есть в папке:
[console]ls[/console]
Должно быть четыре пакета:
[console]libpq5.2-8.4eter_8.4.4-eter1.1ubuntu_i386.deb
postgresql-8.4eter-contrib_8.4.4-eter1.1ubuntu_i386.deb
postgresql-8.4eter-server_8.4.4-eter1.1ubuntu_i386.deb
postgresql-8.4eter_8.4.4-eter1.1ubuntu_i386.deb[/console]
3. Меняем параметр ядра linux SHMMAX на 128Мб, насколько я знаю делать это надо на 32-битной машине:
[console]echo "kernel.shmmax = 134217728" >> /etc/sysctl.conf
echo "kernel.shmall = 134217728" >> /etc/sysctl.conf[/console]
Применяем изменения:
[console]sysctl -p[/console]
4. Далее нам необходимо добавить группу postgres, но проблема в том, что необходимый нам id -26, занят группой tape. В данном случае я решил назначить группе postgres необходимый id и сделать ее первичной, а группу tape сделать вторичной. Итак, приступим:
[console]nano /etc/group[/console]
Находим строку:
[console]tape:x:26:[/console]
Приводим ее к виду:
[console]postgres:x:26:tape[/console]
5. Для нормально работы PostgreSQL, требуется библиотека libreadline.so.5. Но у нас будет установлена более новая библиотека. Просмотрим библиотека какой версии стоит у нас:
[console]ls -l /lib[/console]
Ниже приведу часть выхлопа, который нам необходим:
[console]...
lrwxrwxrwx 1 root root 18 2012-01-22 15:39 libreadline.so.6 -> libreadline.so.6.2
-rw-r--r-- 1 root root 204856 2011-02-24 06:53 libreadline.so.6.2
...[/console]
Итак мы выяснили, что у нас стоит библиотека версии 6.2. На нее то мы и будем создавать сим-линк:
[console]cd /lib
ln -s libreadline.so.6.2 libreadline.so.5[/console]
6. Устанавливаем дополнительные библиотеки:
[console]apt-get install libicu-dev libxslt1.1 libxml2 libossp-uuid16[/console]
7. Переходим в папку с дистрибутивом постгреса:
[console]cd /opt/1cinstall/postgres[/console]
8. Устанавливаем постгрес:
[console]dpkg -i *.deb[/console]
9. Даем права на папку pgsql пользователю и группе postgres:
[console]chown postgres:postgres /var/lib/pgsql[/console]
Кто не уверен, проверьте сменился ли владелец папки:
[console]ls -l /var/lib[/console]
В выведенном на экран списке найдите папку pgsql, ее свойства должны быть примерно такими (на дату создания папки не обращайте внимания smile ):
[console]drwxr-xr-x 4 postgres postgres 4096 2011.02.18 10:09[/console]
10. Запускаем постгрес:
[console]service postgresql start[/console]
Если постгрес уставлен правильно, то вы увидите сообщение:
[console]Initializing database: DONE
Starting postgresql service: DONE[/console]
11. Задаем пароль пользователю postgres:
[console]passwd postgres[/console]
12. Задаем пароль внутреннему пользователю PostgreSQL, предварительно авторизировавшись под пользователем postgres:
[console]su -l postgres
psql
alter user postgres with password 'YOUR_PASSWORD';
\q
exit[/console]
Где YOUR_PASSWORD - пароль который вы хотите задать для внутреннего пользователя постгрес.
13. Также нам необходимо настроить pg_hba.conf. Но перед этим сделаем бэкап этого файла:
[console]cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.default[/console]
Открываем pg_hba.conf:
[console]nano /var/lib/pgsql/data/pg_hba.conf[/console]
Находим следующие строки:
[console]#IPv4 local connections:
#host all all 127.0.0.1/32 ident[/console]
Раскомментируем вторую строку и приведем к следующему виду:
[console]#IPv4 local connections:
host all postgres 127.0.0.1/32 md5[/console]
Этой правкой мы дали разрешение пользователю postgres коннектиться с любой базой с локального хоста, при этом требуется пароль.
14. Теперь рассмотрим значения параметров в файле postgresql.conf, файл расположен в той же папке, что и pg_hba.conf. Параметры зависят от многих факторов, настраиваются индивидуально и служат для обеспечения максимальной производительности. Хотя и по умолчанию база будет работать (не забывайте перед правкой делать бэкап):
- listen_addresses = ‘127.0.0.1′ – если соединения с базой будут только с локального хоста, то надежнее сделать именно так, чтобы порт 5432 слушался только на адресе 127.0.0.1.
- fsync = off – значение on сильно снижает производительность, поскольку все транзакции непосредственно пишутся на жесткий диск без использования кэширования, но повышается надежность. Значение off есть смысл устанавливать, когда установлены надежные диски и надежный же UPS.
- effective_cache_size = 2048MB – на моем сервере 4Гб ОЗУ, поэтому я предположил, что этот параметр надо выставить в половину ОЗУ, как рекомендует 1С для PosgreSQL.
- work_mem = 16MB – насколько я понимаю, этот параметр зависит от среднего размера таблиц, в любом случае, для тонкой настройки надо тестировать на конкретном сервере с конкретной базой.
Более подробно о настройках pg_hba.conf и postgresql.conf можно почитать здесь и здесь.
15. Перезапускаем постгрес:
[console]service postgresql restart[/console]
Вы должны получить примерно следующее сообщение:
[console]Stopping postgresql service: DONE
Starting postgresql service: DONE[/console]
Если вы увидели вышеуказанное сообщение, значит мы правильно установили и настроили постгрес.
Установка сервера 1С:Предприятие 8.2.*
[console]cd ../1c[/console]
2. Устанавливаем пакеты:
[console]dpkg -i 1c*.deb[/console]
3. Устанавливаем дополнительные пакеты, которые необходимы для нормальной работы сервера:
[console]apt-get install imagemagick libglib2.0-dev libgsf-1-114 texlive-base ttf-mscorefonts-installer unixodbc[/console]
4. Далее нам необходимо проверить, все ли пакеты необходимые для корректной работы сервера 1С установлены. Сделать это можно с помощью утилиты config_server, которая входит в комплект дистрибутива сервера 1С. Переходим в каталог утилиты:
[console]cd /opt/1C/v8.2/i386/utils[/console]
Где i386 - разрядность системы. Для 32-битных системы надо указывать - i386, а для 64-битных систем указывать - x86_64
Запускаем config_server:
[console]./config_server[/console]
Утилита минут на пять задумалась... Это значит, что сервер 1С настроен правильно и больше ничего не нужно для нормального функционирования.
5. Теперь добавим локаль. Переходим в папку locale:
[console]cd /usr/lib/locale
ln -s en_US.utf8 en_US
cd /usr/share/locale
ln -s en en_US[/console]
6. Даем пользователям 1С сервера права на запись:
[console]chown -R usr1cv82:grp1cv82 /opt/1C[/console]
7. Добавляем сервер 1С в автозапуск:
[console]update-rc.d srv1cv82 defaults[/console]
Вы должны получить следующий выхлоп:
[console] Adding system startup for /etc/init.d/srv1cv82 ...
/etc/rc0.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc1.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc6.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc2.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc3.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc4.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc5.d/K20srv1cv82 -> ../init.d/srv1cv82[/console]
Это означает что вы добавили 1С сервер в автозагрузку. Если вы не получили этого сообщения, значит что то сделали неправильно. Точно следуйте инструкции и все получится.
8. Перезагружаем сервер. Проверяем запускаются ли при старте системы постгрес и сервер 1С:
[console]netstat -atn|grep 0.0.0.0:15[/console]
Вы должны получить примерно следующий выхлоп:
[console]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
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[/console]
9. Так же для профилактики можно проверить, все ли процессы сервера запущены нормально:
[console]ps aux|grep 1c[/console]
От имени пользователя usr1cv82 должно быть запущено три процесса: ragent, rmngr и rphost. После имен процессов идут номера портов, на которых они работают:
[console]usr1cv82 762 0.0 2.3 104408 12080 ? Ssl 14:41 0:01 /opt/1C/v8.2/i386/ragent -daemon
usr1cv82 765 0.0 3.5 147068 18068 ? Sl 14:41 0:04 /opt/1C/v8.2/i386/rmngr -port 1541
usr1cv82 785 0.0 13.9 312112 70828 ? Sl 14:41 0:03 /opt/1C/v8.2/i386/rphost -range 1560:1591 -reghost 1cserver -regport 1541 -pid 0277dd48-5d08-11e0-bb9c-0800273075f1[/console]
10. Также нам необходим веб-сервер apache, без него нельзя реализовать новые возможности 1С:Предприятия 8.2. У меня apache был установлен вместе с пакетом LAMP, еще на этапе установки ОС. Если же у вас его нет, установим его:
[console]apt-get install apache2[/console]
Если вы не планируете использовать apache для других целей, то он готов к работе с 1С сервером. Все сервер 1С:Предприятие готов к работе.
Установка драйвера HASP с менеджером лицензий
ВАЖНО: Для 64-битной ОС нужен 64-битный серверный HASP-ключ. 32-битный серверный HASP-ключ на 64-битной ОС работать не будет!
Для нормальной работы HASP-ключей, необходимо установить драйвер для HASP-ключа и менеджер лицензий. Что мы и проделаем ниже.
1. Я решил воспользоваться драйверами от Etersoft. Пакеты необходимые под архитектуру вашего сервера вы найдете по следующим ссылкам х86 х64. Авторизируемся под рутом:
[console]sudo -i[/console]
2. Монтируем флешку, как это было указано в главе "Подготовка сервера". Переходим в папку с дистрибутивами HASP-драйверов:
[console]cd /opt/1cinstall/hasp[/console]
3. Устанавливаем скачанные пакеты:
[console]dpkg -i *.deb[/console]
4. Выключаем сервер:
[console]shutdown -h now[/console]
5. Ставим ключ, включаем сервер. Загружаются только те драйверы, ключ для которых вставлены в сервер. Проверить работает ли HASP-ключ можно командой:
[console]sudo service haspd status[/console]
Установка на x64 машине
Поскольку некоторые программы в пакете haspd являются 32-битными, в системе должна быть установлена поддержка 32-битных программ. В Ubuntu это пакет ia32-libs.
Создание информационной базы, на рабочей станции
192.168.11.4 1cserver
Где 192.168.11.4 - ip адрес машины на которой установлен 1С сервер, а 1cserver - имя машины на которой установлен 1С сервер. Файл hosts находится в директории:
%SystemRoot%\system32\drivers\etc2. Через оснастку Администрирование серверов 1С Предприятия, оснастка находится в:
Меню Пуск » Программы » 1С Предприятие 8.2 » ДополнительноСоздадим центральный сервер:

Указываем параметры вновь создаваемого сервера 1С:

Где 1cserver - имя машины на которой установлен 1С сервер
Далее создадим базу на 1С сервере, через добавление новой базы данных в клиенте 1С:

Указываем псевдоним БД, т.е. имя которое будет отображаться в списке доступных БД:

Указываем параметры вновь создаваемой БД, сервер на котором БД будет создана, пользователя через которого будем коннектиться и др.:

Где 1cserver - netbios имя нашего сервера, base - имя создаваемой базы, postgres - пользователь постгреса.
Основные настройки закончены, остальное не так важно и настраивается индивидуально:

Основные моменты: толстый клиент - все обработки и вычисления производятся на стороне клиента, тонкий клиент - вычисления производятся на стороне сервера.
Теперь попробуйте запустить конфигуратор и загрузить туда какие нибудь данные. У меня процесс прошел на ура:

Резервное копирование баз данных средствами PostgreSQL
Описание
pg_dump - это утилита для резервного копирования базы данных PostgreSQL. Она создает непротиворечивую резервную копию базы даже если она используется в это время. pg_dump не блокирует другие пользовательские подключения к базе данных (чтения и записи).
Дампы могут быть записаны в формате скрипта или файла архива. Скриптовые дампы – это простые текстовые файлы, содержащие набор SQL команд, требуемых для восстановления базы данных на период времени, когда они были сохранены. Для восстановления с такого файла сценариев его содержимое перенаправляют в psql. Скриптовые файлы могут быть использованы для восстановления базы данных даже на других машинах и других архитектурах; с некоторой модификацией, даже на других SQL серверах управления базами данных.
Альтернативные архивные форматы файла для восстановления базы данных используются с pg_restore. Они дают возможность pg_restore выбрать что восстанавливать или даже изменить порядок приоритетов пунктов при восстановлении. Архивные форматы файлов разработанные портативными для всех архитектур.
Использование одного из архивных форматов файла и комбинирование с pg_restore, pg_dump обеспечивает гибкий механизм архивирования и переноса. pg_dump может быть использован для резервного копирования всей базы данных, тогда с помощью pg_restore можно посмотреть содержимое архива и/или выбрать какие части базы данных нужно восстановить. Наибольшую гибкость выходного файла имеет пользовательский формат «custom» (-Fc). Он дает возможность выбора и изменения порядка всех пунктов архивирования, и использует сжатие по умолчанию.
Во время работы pg_dump следует проверять вывод на предмет каких-либо предупреждений (вывод на stderr), особенно в свете ограничений, перечисленных ниже.
[console]pg_dump создает дамп базы данных в тектовом или другом формате.
Синтаксис
pg_dump [OPTION]... [DBNAME]
General options:
-f, --file=FILENAME извлекать в этот файл
-F, --format=c|t|p формат извлекаемого файла (custom, tar, plain text)
-v, --verbose установить подробный режим
-Z, --compress=0-9 установить режим сжатия. 0 - без сжатия, 9 - макс. сжатие.
--lock-wait-timeout=TIMEOUT ошибка при блокировке таблицы, при истечении тайм-аута
--help вывести на экран справку и выйти
--version вывести на экран версию утилиты и выйты
Опции управления извлекаемыми данными:
-a, --data-only скидывать в дамп только данные (определения данных)
-b, --blobs включать большие объекты в дамп
-c, --clean очистка (drop) базы данных перед восстановлением дампа
-C, --create создание базы данных перед восстановлением дампа
-E, --encoding=ENCODING создавать дамп в определенной кодировке
-n, --schema=SCHEMA включать в дамп только перечисленные схемы
-N, --exclude-schema=SCHEMA исключать из дампа перечисленные схемы
-o, --oids сбрасывать в дамп идентификаторы объектов (OIDs)
-O, --no-owner не включать команды задания принадлежности объектов
при создании дампа в текстовом формате
-s, --schema-only включать в дамп только схемы, а не данные.
-S, --superuser=NAME указать имя суперпользователя, используется только
в текстовом формате (plain text)
-t, --table=TABLE включать в дамп только перечисленные таблицы
-T, --exclude-table=TABLE исключать из дампа перечисленные таблицы
-x, --no-privileges не сохранять права доступа. Команды (grant/revoke)
--binary-upgrade предназначена для использования вместо утилиты обновления
--inserts сохранять как INSERT-команды, предпочтительнее чем COPY
--column-inserts сохранять как INSERT-команды с именами столбцов
--disable-dollar-quoting отключить разделитель в виде знака доллара, использовать
стандартый SQL разделитель
--disable-triggers отключить триггеры во время восстановления данных
--no-tablespaces не включать в дамп команды создания табличных пространств
для перечисленных объектов
--role=ROLENAME выдавать команду SET ROLE после подключения к базе данных
--use-set-session-authorization
включить стандартые SQL-команды SET SESSION AUTHORIZATION
вместо команд ALTER OWNER для установки права собственности
объекта
Опции подключения:
-h, --host=HOSTNAME задает сетевое имя машины на которой работает сервер баз данных
-p, --port=PORT задает TCP порт на котором сервер прослушивает соединения
-U, --username=NAME задает имя пользователя от которого происходит подключение
-w, --no-password никогда не выдавать приглашения ввести пароль
-W, --password принудительно выдает приглашение ввести пароль
(должно происходить автоматически)
Если имя базы данных не указана, то используется переменная окружения PGDATABASE
Сообщять об ошибках на <pgsql-bugs@postgresql.org>.[/console]
На данный момент планируется скрипт со следующими возможностями:
- возможность указывать кол-во хранимых бэкапов. При превышении допустимого кол-ва хранимых бэкапов, скрипт должен удалять самый старый бэкап
- использовать встроенные средства для бэкапа (pg_dump)
- сбрасывать дамп без запроса пароля
А тем кто хочет просто периодически делать бэкап, советую добавить задание в crontab. Например:
[console]30 20 * * * postgres pg_dump -Fc -Z9 dbname -f /path/to/backup_folder/dbname.dump.out[/console]
Где 30 20 * * * - время копирования (ежедневно в 20:30), postgres - пользователь от которого будет выполнятся бэкап, dbname - имя БД, дамп которой будет сохряняться.
Ну и напоследок скрипты от форумчан (сам пока мало смыслю в скриптописании):
#переходим в каталог для бекапа, сначала проверяем, есть ли каталог с датой, если есть, то переходим в него, если нет то создаем и переходим.
cd /var/lib/pgsql/9.1/backups
if [[ -d `date +%F` ]]; then cd `date +%F`
else
mkdir `date +%F`
cd `date +%F`
fi #Dump all BD
#Полный бекап БД,
#pg_dumpall > db_all.$HOST.$DATA.sql
#Необходимо делать хотя бы раз в месяц. #Dump DB
#Дамп БД, где postgres - имя пользователя, namedb - имя базы данных, архив имеет следующий формат.
#имя базы даннх. имя хоста, дата и время, расширение gz: namedb.linux-pc.2013-02-11.143034.gz
pg_dump -U postgres namedb | gzip > namedb.$HOST.$DATA.sql.gz #пауза
sleep 3 #remove old arh
#удаляем старые архивы, а точней файлы старше 7 дней, так же удаляем пустые каталоги. #поиск
FIND="/usr/bin/find"
#каталог где ищем
DIR_FILES="/var/lib/pgsql/9.1/backups*"
#парвметр удаления: тип - файлы, старше 7 дней.
PARAM="-type f -ctime +7"
#удаление
DEL="| xargs rm -rfv {} \;" #---------
#Delete empty dirs
#удаляем пустые директории, директории где есть файлы будут не затронуты.
cd /var/lib/pgsql/9.1/backups/
rmdir * #
eval $FIND $DIR_FILES $PARAM $DEL
# или аналогично "/usr/bin/find /var/lib/pgsql/9.1/backups* -type f -ctime +7 | xargs rm -rfv {} \;" , без кавычек. exit 0
#читаем маны man pg_dump , man pg_dumpall
#see pg_dump and pg_dumpall1. Скрипт от i2ks
#!/bin/bash
#задаем дату и время бекапа
DATA=`date +%F.%H%M%S`
#имя хоста. на которм будем выполнять скрипт, можно и не писать, но для меня так проще.
HOST=`hostname`
Настройка веб-сервера Apache для доступа к БД 1С:Предприятие
1. Итак веб-сервер apache установлен, в наличии имеем корневой каталог:
/var/wwwГде находится единственный файл:
index.htmlДля начала создадим в корневом каталоге apache, папку base:
[console]mkdir /var/www/base[/console]
Где base - имя базы данных к которой необходимо настроить доступ посредством веб-сервера apache.
2. Добавляем в httpd.conf необходимые данные о базе данных, с помощью скрипта webinst, входящего в состав пакета 1С сервера. Для этого переходим в каталог:
[console]cd /opt/1C/v8.2/i386[/console]
Запускаем скрипт с необходимыми параметрами:
[console]./webinst -apache22 -wsdir base -dir '/var/www/base' -connStr 'Srvr="1cserver";Ref="base";' -confPath /etc/apache2/httpd.conf[/console]
Где base - имя БД к которой настраиваем доступ, 1cserver - имя сервера на котором установлен 1С сервер.
При успешном выполнении скрипта вы должны получить выхлоп:
[console]Установка успешно выполнена.
acp: /etc/apache2/httpd.conf
rd: /var/www/base
vd: /etc/apache2/httpd.conf[/console]
Также можно проверить правильность настроек, просмотрев что прописалось в файл httpd:
[console]LoadModule _1cws_module "/opt/1C/v8.2/i386/wsap22.so"
# 1c publication
Alias "base" "/var/www/base/"
<Directory "/var/www/base/">
AllowOverride None
Options None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/base/default.vrd"
</Directory>[/console]
В каталоге базы вы должны найти файл default.vrd, следующего содержания:
[console]<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/base"
ib="Srvr="1cserver";Ref="base";"/>[/console]
Где 1cserver - имя сервера на котором находится 1С сервер, base - имя БД к которой настраиваем доступ, а " - кавычки написанные кодом.
3. Теперь даем права на директорию:
[console]chown -R www-data:www-data /var/www/base[/console]
4. Перезагружаем apache:
[console]service apache2 restart[/console]
5. В браузере на клиентской машине отключаем блокировку всплывающих окон. Пробуем пройти по адресу:
http://1cserver/baseГде base - имя БД к которой мы настроили доступ, а 1cserver - имя сервера на котором настроен веб-сервер Apache. Видим следующее:

6. Чтобы решить эту проблему нам необходимо с помощью оснастки "Администрирование серверов 1С Предприятия" в свойствах БД, дать разрешение серверу 1С выдавать лицензии:

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

По факту работа через браузер, это работа с помощью тонкого клиента, а для этого конфигурация должна поддерживать работу в режиме управляемого приложения. Иначе никак...
Обновление сервера 1С:Предприятие и сервера баз данных PostgreSQL
1. Для начала надо сделать бэкапы (резервные копии) баз данных (предварительно выгнав всех из 1С), которые крутятся на сервере. Бэкапы будем делать средствами 1С. Для этого открываем конфигуратор, в меню Сервис выбираем пункт Выгрузить информационную базу:

В открывшемся окне выбираем директорию, куда будет сохраняться бэкап, и указываем имя бэкапа (я просто добавляю к стандартному имени бэкапа дату в формате ГГГГ.ММ.ДД):

2. Теперь нужно удалить пакеты сервера 1С:Предприятие, которые необходимо обновить. Но перед удалением, завершим процессы сервера 1С:Предприятие:
[console]service srv1cv82 stop[/console]
Получаем выхлоп:
[console]Stopping 1C:Enterprise 8.2 server: OK[/console]
3. Затем посмотрим, какие пакеты сервера 1С:Предприятие у нас установлены:
[console]dpkg -l | grep 1c-enterprise[/console]
Получаем примерный выхлоп:
[console]ii 1c-enterprise82-common 8.2.14-533 1C:Enterprise 8.2 common components
ii 1c-enterprise82-common-nls 8.2.14-533 National resource files for 1C:Enterpise 8.2 common components for Linux
ii 1c-enterprise82-server 8.2.14-533 1C:Enterprise 8.2 server for Linux
ii 1c-enterprise82-server-nls 8.2.14-533 National resource files for 1C:Enterpise 8.2 server for Linux
ii 1c-enterprise82-ws 8.2.14-533 1C:Enterpise 8.2 Web-services components for Linux
ii 1c-enterprise82-ws-nls 8.2.14-533 National resource files for 1C:Enterpise 8.2 Web-services components for Linux[/console]
4. Мы узнали какие пакеты сервера 1С:Предприятия у нас установлены, можно приступить к их удалению. Пакеты удаляются в обратно порядке:
[console]dpkg -r 1c-enterprise82-ws-nls 1c-enterprise82-ws 1c-enterprise82-server-nls 1c-enterprise82-server 1c-enterprise82-common-nls 1c-enterprise82-common[/console]
Проверим, не осталось ли каких либо файлов, после удаления пакетов:
[console]dpkg -l | grep 1c-enterprise[/console]
Получаем примерный выхлоп:
[console]rc 1c-enterprise82-server 8.2.14-533 1C:Enterprise 8.2 server for Linux
rc 1c-enterprise82-ws 8.2.14-533 1C:Enterpise 8.2 Web-services components for Linux[/console]
После удаления остались некоторые файлы настроек, их тоже необходимо удалить:
[console]dpkg -P 1c-enterprise82-ws 1c-enterprise82-server[/console]
И вновь проверяем, не осталось ли каких либо файлов от пакетов сервера 1С:Предприятие:
[console]dpkg -l | grep 1c-enterprise[/console]
Все, команда не показывает никаких пакетов, значит мы полностью удалили сервер 1С:Предприятие.
5. Теперь можно устанавливать пакеты новой версии сервера 1С:Предприятие. Я не буду описывать этот процесс, т.к. он уже описан в главе Установка сервера 1С:Предприятие 8.2.*.
6. Если вы не планируете обновлять сервер баз данных PostgreSQL, то дальше вам нет необходимости читать главу. Если же вы все же решили поставить новую версию PosgreSQL, то для начала вам надо остановить PostgreSQL:
[console]service posgresql stop[/console]
7. Теперь посмотрим какие пакеты PostgreSQL установлены:
[console]dpkg -l | grep postgre[/console]
Получаем примерный выхлоп:
[console]ii postgre-etersoft-8.4 8.4.4-eter2ubuntu PostgreSQL client programs and libraries (Etersoft edition for Selta and 1C)
ii postgre-etersoft-8.4-contrib 8.4.4-eter2ubuntu Contributed source and binaries distributed with PostgreSQL
ii postgre-etersoft-8.4-docs 8.4.4-eter2ubuntu Extra documentation for PostgreSQL
ii postgre-etersoft-8.4-plpython 8.4.4-eter2ubuntu The Python procedural language for PostgreSQL
ii postgre-etersoft-8.4-server 8.4.4-eter2ubuntu The programs needed to create and run a PostgreSQL server[/console]
8. Мы узнали какие пакеты PostgreSQL установлены у нас на сервере, можно приступать к удалению этих пакетов. Удаляем снова в обратном порядке:
[console]dpkg -r postgre-etersoft-8.4-server postgre-etersoft-8.4-plpython postgre-etersoft-8.4-docs postgre-etersoft-8.4-contrib postgre-etersoft-8.4[/console]
Проверяем наличие неудаленных частей пакетов:
[console]dpkg -l | grep postgre[/console]
Получаем примерный выхлоп:
[console]rc postgre-etersoft-8.4-contrib 8.4.4-eter2ubuntu Contributed source and binaries distributed with PostgreSQL
rc postgre-etersoft-8.4-server 8.4.4-eter2ubuntu The programs needed to create and run a PostgreSQL server[/console]
Удаляем файлы, оставшиеся после первого удаления:
[console]dpkg -P postgre-etersoft-8.4-server postgre-etersoft-8.4-contrib[/console]
При выполнении команды dpkg -P postgre-etersoft-8.4-server, вы получите предупреждение:
[console](Чтение базы данных ... на данный момент установлено 45206 файлов и каталогов.)
Удаляется пакет postgre-etersoft-8.4-server ...
Вычищаются файлы настройки пакета postgre-etersoft-8.4-server ...
dpkg: предупреждение: при удалении postgre-etersoft-8.4-server не пустой каталог «/var/lib/pgsql/data» не удалён.
dpkg: предупреждение: при удалении postgre-etersoft-8.4-server не пустой каталог «/var/lib/pgsql» не удалён.[/console]
Это предупреждение сообщает, что каталоги с базами данных не были удалены. Это в свою очередь значит, что скорее всего, нам не придется восстанавливать бэкапы после установки новой версии PostgreSQL.
9. Все, теперь можно устанавливать новую версию PosgreSQL. Но как и в случае с обновлением сервера 1С:Предприятие, я не буду описывать процесс установки PostgreSQL. Этот процесс описан в главе - Установка PostgreSQL@Etersoft 8.4.4.
1С:Предприятие 8.2 – Troubleshooting
В качестве примера приведу один из комментариев:
Nigelist спасибо за статью.
Сделал все, как вы написали, только вышла какая-то фигня с локалями. При попытки создания базы данных, с удаленного пк, 1с выдает ERROR: нeвepнoe знaчeниe для пapaмeтpa "lc_messages": "en_US"
Ставил сервер Ubuntu 10.10 английский. Postgres etersoft 8.4.4 1С платформа 8.2.13
И это несмотря на то, что в статье явно указана версия используемой ОС и локаль используемая по-умолчанию.
Потому я напоминаю о необходимости устанавливать те версии дистрибутивов, которые рассмотрены в данной статье. Особенно в тех случаях, когда вы не готовы решать сопутствующие проблемы.
В данной статье специально расписаны все тонкости и нюансы установки. При использовании других версий дистрибутивов, процесс установки может иметь отличия, которые в данной статье не рассмотрены.
Если же вы решились установить другие версии дистрибутивов, то соответственно должны знать, как изменить процесс установки, дабы установленное программное обеспечение работало корректно.
Со временем, я буду добавлять способы решения наиболее часто встречающихся ошибок. Принимаются пожелания.
1. Перестал запускаться сервер баз данных PostgreSQL
Чаще всего данная ситуация возникает смены владельца папки:
[console]/var/lib/pgsql[/console]
Проверяем, владельца папки:
[console]ls -l /var/lib[/console]
Права на папку должны принадлежать пользователю postgres и группе postgres. Если это не так, то необходимо задать права:
[console]sudo chown postgres:postgres /var/lib/pgsql[/console]
После этого можно запустить сервер БД:
[console]service postgresql start[/console]2. Импорт лицензий с сервера лицензий
В принципе процедура настройки импорта лицензий очень проста. Достаточно создать файл конфигурации nethasp.ini в директории:
[console]/opt/1C/v8.2/i386/conf[/console]
Создаем файл:
[console]touch /opt/1C/v8.2/i386/conf/nethasp.ini[/console]
Открываем для редактирования:
[console]nano /opt/1C/v8.2/i386/conf/nethasp.ini[/console]
Вносим нижеуказанные данные:
[console][NH_COMMON]
NH_TCPIP = Enabled ; Метод поиска сервера лицензий
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.232 ; Список IP адресов серверов лицензий
NH_PORT_NUMBER = 475 ; Номер слушаемого порта
; По умолчанию 475
NH_TCPIP_METHOD = TCP ; Протокол обмена информацией с сервером лицензий
; Я предпочитаю использовать TCP
; По умолчанию UDP[/console]
На этом настройка импорта лицензий закончена. Возможно потребуется перезапуск сервера 1С:Предприятие.
ВАЖНО: Каждый веб-клиент открытый в браузере, требует наличия лицензии 1С на рабочее место, точно-такой же как и для платформы 1С (тонкий клиент, толстый клиент, конфигуратор), работающей через обычное соединение.
В статье использовались материалы:
Автор: baklan | Pg1C | 02.05.2010, 20:42
1С:Предприятие 8.2 и СУБД PostgreSQL 8.3.7 на Ubuntu Server 9.04
Автор: Ruslan Khissamov | 1C-PRO | 29.10.2009, 17:51
Оптимизация работы Postgre SQL
Автор: Andrey Igorevich | Wiki Etersoft | 2010.08.04, 19:52
Настройки Postgresql для 1с
Автор: SeaSun | 1CLinux | 2010.10.13, 02:23:22
На данный момент это пока все...