1С в виндах работает всю свою жизнь. Когда оно заработало под линуксами? Сервер приложений тоже относительно давно, а вот клиент заработал с версии 8.3. Давайте поставим сервер приложений с базами данных PostgreSQL
Postgres
Установим необходимые зависимости и софт
root@pg0:~# yum -y install redhat-lsb-core mc readline libtermcap krb5-libs openssl openssl098e compat-readline5 compat-libtermcap wget htop nano p7zipСкачаем нужный нашему постгресу libicu
root@pg0:~# wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/libicu-3.6-5.16.1.x86_64.rpm
root@pg0:~# yum -y install libicu-3.6-5.16.1.x86_64.rpmСледом качаем и ставим, собственно сам постгрес
root@pg0:~# yum -y install *.rpm в директории с распакованным pgИнициализируем базу данных. Так как у нас контейнер изначально в русской локали, то инициализировать можно без параметров
root@pg0:~# /etc/init.d/postgresql-9.4 initdbСоздадим пользователя для работы с BD 1С
root@pg0:~# su — postgres
root@pg0:~# psql
postgres=# create user app1c with ENCRYPTED password '000000' SUPERUSER;
Тюнинг PG
root@pg0:~# nano /var/lib/pgsql/9.4/data/postgresql.conf
listen_addresses = '*'
max_connections = 10
shared_buffers = 128MB
effective_cache_size = 512MB
work_mem = 10922kB
maintenance_work_mem = 128MB
checkpoint_segments = 3
checkpoint_completion_target = 0.5
wal_buffers = 3932kB
default_statistics_target = 100
##log_settings
log_destination = 'syslog'
syslog_facility = 'LOCAL6'
syslog_ident = 'postgres'
client_min_messages = notice
log_min_messages = warning
log_min_error_statement = error
datestyle = 'iso, dmy'
timezone = 'W-SU'
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
default_text_search_config = 'pg_catalog.russian'
escape_string_warning = off
standard_conforming_strings = off
online_analyze.threshold = 50
online_analyze.scale_factor = 0.1
online_analyze.enable = on
online_analyze.verbose = off
online_analyze.min_interval = 10000
online_analyze.table_type = 'temporary'
plantuner.fix_empty_table = true
max_locks_per_transaction = 150
autovacuum = on
autovacuum_vacuum_threshold = 1800
autovacuum_analyze_threshold = 900
autovacuum_naptime = 5min
#autovacuum_vacuum_threshold = 50
Сервер приложений
root@app0:~# apt-get update && apt-get dist-upgradeУстановим необходимое
root@app0:~# apt-get install ttf-mscorefonts-installer p7zip-full imagemagick apache2 nano mcКачаем и ставим серверную часть 1с
root@app0:~# dpkg -i *.debДля удобства нужно сделать симлинки в /usr/local/bin и rac и ras:
root@app0:~# ln -s /opt/1C/v8.3/i386/ras /usr/local/bin/ras
root@app0:~# ln -s /opt/1C/v8.3/i386/rac /usr/local/bin/raс
root@app0:~# nano /usr/local/bin/ras.sh
#!/bin/sh
SERVICE='/opt/1C/v8.3/i386/ras'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
echo "$SERVICE service running, everything is fine" > /dev/null
else
/opt/1C/v8.3/i386/ras --daemon cluster
fi
root@app0:~# chmod 777 /usr/local/bin/ras.sh
root@app0:~# nano /etc/rc.local
/usr/local/bin/ras.shПросмотр списка доступных кластеров серверов 1с для управления
root@app0:~# rac cluster listЗдесь важная информация о uid-кластера в первой строке.
Создание информационной базы
root@app0:~# rac infobase create --cluster=31e491ca-bcdf-11e5-c99f-363133393962 --name=test --create-database --dbms=PostgreSQL --db-server=192.168.0.25 --db-name=test --locale=ru --db-user=app1c --db-pwd=000000 --license-distribution=allowРазберем параметры:
--name — имя информационной базы
--create-database — создать базу в СУБД в случае ее отсутствия
--dbms — тип СУБД
--db-server — параметры сервера СУБД(имя хоста или ip)
--db-name — имя БД в СУБД
--db-user и --db-pwd — имя пользователя и пароль для СУБД
--cluster-user --cluster-pwd =<пароль> — учетная запись администратора кластера
--license-distribution=allow - разрешаем выдачу лицензий сервером приложений
Просмотр серверов 1С
root@app0:~# rac server list --cluster=6aae6682-9e4b-11e5-1691-326436636531Тюнинг сервера приложений: 1 процесс на базу, 5 коннектов на процесс
root@app0:~# rac server update --server=ff1eaaae-8d28-11e5-7e98-c222ce8f7563 --cluster=fe8022c6-8d28-11e5-7e98-c222ce8f7563 --infobases-limit=1 —connections-limit=5Проверяем нашу базу с терминального сервера
Публикация 1С8
Делаем скрипт
root@app0:~# nano /usr/local/bin/public.sh
#!/bin/bash
cd /opt/1C/v8.3/i386
./webinst -apache22 -wsdir base_name -dir /var/www/1c/base_name/ -connStr "Srvr=server_name;Ref=base_name;" -confPath /etc/apache2/apache2.conf
Создаем папочку
root@app0:~# mkdir -p /var/www/1c/test
Запускаем скрипт, перезапускаем apache2
root@app0:~# public.sh
Публикация выполнена
root@app0:~# /etc/init.d/apache2 restart
Заходим по ссылочке
http://app0/test
Ставим требуемые плагины для браузера, если потребуется
Бекап баз данных
root@pg0:~# mkdir -p /data/.backups/logs
root@pg0:~# chmod -R 777 /data/.backups
root@pg0:~# chown -R nobody:users /data/.backups
root@pg0:~# nano /usr/local/bin/pg_stuff.sh
#!/bin/bash
##Дамп баз 1С
DATE=$(date +%Y~%m~%d)
PGDUMPBASE1=base_name1
PGDUMPBASE2=base_name2
PGDUMPFILE1=$PGDUMPBASE1"_"$DATE
PGDUMPFILE2=$PGDUMPBASE2"_"$DATE
BACKDIR=/data/.backups
echo Dumping started at $DATE >> $BACKDIR/logs/dates
pg_dump $PGDUMPBASE1 -w -F c -f $BACKDIR/$PGDUMPFILE1
#tar --remove-files -czvf $BACKDIR/$PGDUMPFILE1.tgz $BACKDIR/$PGDUMPFILE1
pg_dump $PGDUMPBASE2 -w -F c -f $BACKDIR/$PGDUMPFILE2
#tar --remove-files -czvf $BACKDIR/$PGDUMPFILE2.tgz $BACKDIR/$PGDUMPFILE2
find $BACKDIR -mtime +6 -exec rm -f {} \;
##Вакум, анализ и реиндекс баз 1С
echo Vacuum, Analyze and Reindex started at $DATE >> $BACKDIR/logs/pg_stuff.log
/usr/bin/vacuumdb --verbose --all --analyze --full --echo >> /$BACKDIR/logs/pg_stuff.log
/usr/bin/reindexdb --all --echo >> /$BACKDIR/logs/pg_stuff.log
root@pg0:~# chmod 777 /usr/local/bin/pg_stuff.sh
root@pg0:~# chown postgres:postgres /usr/local/bin/pg_stuff.sh
Добавим задание для crontab
root@pg0:~# su - postgres
root@pg0:~# nano cron
SHELL=/bin/bash
MAILTO=postgres
02 02 * * * /usr/local/bin/pg_stuff.sh
root@pg0:~# crontab cron
root@pg0:~#crontab -l
Этот комментарий был удален автором.
ОтветитьУдалитьДобрый. Либо с сайта users.v8.1c.ru (нужна подписка), либо репозиторий команды ПостгресПро, который легко гуглится
УдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьОшибка установки или изменения национальных настроек информационной базы
ОтветитьУдалитьПорядок сортировки не поддерживается базой данных
по причине:
Порядок сортировки не поддерживается базой данных