1С + Postgresql: Установка сервера 1С.

Установка, настройка, эксплуатация.

Модератор: ROOT

1С + Postgresql: Установка сервера 1С.

Сообщение ROOT » 23 июн 2017, 23:18

Оглавление


Темы
 Установка сервера Postgresql 
 Установка 1С сервера 
 Установка клиента 1С 
 Ключи 1С 
 Обслуживание БД 
 Утилиты для работы с базой 


 Установка сервера Postgresql 
Код: выделить все
Продукт
Postgres Pro Standard 12
Установка
rpm -i http://repo.postgrespro.ru/pgpro-12/keys/centos.rpm
dnf makecache
Если наш продукт единственный Postgres на вашей машине и вы хотите
сразу получить готовую к употребленю базу:

yum install postgrespro-std-12

Если у вас уже установлен другой Postgres и вы хотите чтобы он
продолжал работать параллельно (в том числе и для апгрейда с более
старой major-версии):

yum install postgrespro-std-12-contrib
/opt/pgpro/std-12/bin/pg-setup initdb
/opt/pgpro/std-12/bin/pg-setup service enable
/opt/pgpro/std-12/bin/pg-setup service start

Если вы хотите создать базу пригодную для использования
с продуктами 1С:

yum install postgrespro-std-12-contrib
/opt/pgpro/std-12/bin/pg-setup initdb --tune=1c
/opt/pgpro/std-12/bin/pg-setup service enable
/opt/pgpro/std-12/bin/pg-setup service start

В состав PostgresPro Standard входят многочисленные
дополнительные компоненты, которые могут быть установлены
с помощью yum после установки собственно Postgres



Скачиваем необходимые Вам пакеты при помощи утилиты wget
Код: выделить все
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-server-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-client-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-contrib-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-devel-12.4-1.el8.x86_64.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-docs-12.4-1.el8.noarch.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-docs-ru-12.4-1.el8.noarch.rpm
wget http://1c.postgrespro.ru/pg1c-12/centos/8/os/x86_64/rpms/postgrespro-1c-12-test-12.4-1.el8.x86_64.rpm
и др.

и устанавливаем скачанные пакеты postgresql
Код: выделить все
dnf -y localinstall *.rpm

ИЛИ или можно воспользоваться репозиторием postgrespro-1c
Код: выделить все
dnf -y install http://repo.postgrespro.ru/pgpro-12/keys/centos.rpm
dnf makecache

Если продукт postgrespro-1c единственный Postgres на вашей машине и вы хотите сразу получить готовую к употребленю базу:
Код: выделить все
dnf install postgrespro-std-12

Данный пакет подтянет все необходимые зависимости и установит их
После установки можно добавить необходимые, для удобной работы с продуктом postgrespro-std, переменные окружения. Добавляем в файл .bash_profile следующие строки. Данную процедуру повторить для каждого пользователя кому нужны данные переменные
Код: выделить все
export PATH=/opt/pgpro/std-12/bin/:$PATH:$HOME/bin
export LD_LIBRARY_PATH=/opt/pgpro/std-12/lib
export MANPATH=/opt/pgpro/std-12/share/man:$MANPATH
export PGDATA=/var/lib/pgpro/std-12/data




Настройка пользователей (ролей) Postgre SQL server
Для управления PostgreSQL на начальном этапе потребуется сменить текущего пользователя на postgres и создать нового пользователя из командной строки:
Код: выделить все
su - postgres
$ createuser --interactive -P
Введите имя новой роли:server1c
Введите пароль для новой роли:
Повторите его:
Должна ли новая роль иметь полномочия суперпользователя? (y - да/n - нет) n
Новая роль должна иметь право создавать базы данных? (y - да/n - нет) y
Новая роль должна иметь право создавать другие роли? (y - да/n - нет) n
$ exit
logout


!!! --- Открываем port=5432 на интерфейсе если требуется подключаться к postgres с других хостов
Код: выделить все
firewall-cmd --zone=public --add-port=5432/tcp --permanen
firewall-cmd --reload

Создаём пользователя postgres в системе, такой же пользователь существует в PostgreSQL и устанавливаем пароль для пользователя
Код: выделить все
useradd postgres -m
passwd postgres

Инициализируем БД
Код: выделить все
su - postgres
initdb -D /var/lib/pgpro/std-12/data --locale=ru_RU.UTF-8 --tune=1c

или
Код: выделить все
su postgres -c 'initdb -D /var/lib/pgpro/std-12/data --locale=ru_RU.UTF-8 --tune=1c'


Переключаемся под пользователя postgres (не забывая про "-") Устанавливаем пароль на пользователя СУБД
Код: выделить все
su - postgres
psql -U postgres -h localhost -c "alter user postgres with password '123456';"
^D
e /var/lib/pgpro/std-12/data/pg_hba.conf
e /var/lib/pgpro/std-12/data/postgresql.conf

Активируем службу postgrespro-std-12.service на автозапуск и зарускаем её
Код: выделить все
systemctl enable postgrespro-std-12.service
стартуем postgresql
systemctl start postgrespro-std-12.service

отключаем обновление postgresql из базового репозитория
В секции [base] и [updates] добавить параметр
e /etc/yum.repos.d/CentOS-Base.repo
exclude=postgresql*
Настраиваем postgresql. Для генерации настроек можно воспользоваться онлайн-сервисом
Код: выделить все
http://pgtune.leopard.in.ua/

полученные данные вносим в конфигурацию
Код: выделить все
e /var/lib/pgpro/std-12/data/postgresql.conf



$ > cd /1C_backup
$ > createdb OLGA
$ > pg_restore -U postgres -d OLGA 05-06-2020.13\:14.olga


 Установка 1С сервера 
Скачать с сайта https://releases.1c.ru/ дистрибутив сервера 1С rpm64.tar.gz и размещаем в домашнем каталоге
Создадим каталог для распаковки на сервере в дом. каталоге, распакуем архив с дистрибутивом сервера 1С
Код: выделить все
mkdir server
tar -xzf server-rpm64.tar.gz -C server

Назначение файлов входящих в дистрибутив 1С сервера
  1. 1C_Enterprise83-common-8.3.5-1517.x86_64.rpm - основные файлы 1С (включая русский и английский интерфейсы)
  2. 1C_Enterprise83-common-nls-8.3.5-1517.x86_64.rpm - дополнительные языковые модули
  3. 1C_Enterprise83-server-8.3.5-1517.x86_64.rpm - сервер 1С
  4. 1C_Enterprise83-server-nls-8.3.5-1517.x86_64.rpm - дополнительные языковые модули
  5. 1C_Enterprise83-ws-8.3.5-1517.x86_64.rpm - компоненты веб-сервера 1С
  6. 1C_Enterprise83-ws-nls-8.3.5-1517.x86_64.rpm - дополнительные языковые модули
  7. 1C_Enterprise83-crs-8.3.5-1517.i386.rpm - хранилище конфигураций (только в 32-битном комплекте)

Устанавливаем нужные пакеты командами:
Код: выделить все
yum install 1C_Enterprise83-common-8.3.5-1517.x86_64.rpm
yum install 1C_Enterprise83-server-8.3.5-1517.x86_64.rpm
yum install 1C_Enterprise83-ws-8.3.5-1517.x86_64.rpm

!!! дополнительные языковые модули МОЖНО НЕ СТАВИТЬ !!! (русский язык сюда не входит)
перейдём в каталог дистрибутива установим сервер 1С
Код: выделить все
cd server
yum install 1C_Enterprise83-common-8.3.5-1517.x86_64.rpm
yum install 1C_Enterprise83-server-8.3.5-1517.x86_64.rpm
yum install 1C_Enterprise83-ws-8.3.5-1517.x86_64.rpm

или установка всех пакетов
Код: выделить все
yum install *.rpm

Запуск сервера 1С
Код: выделить все
service srv1cv83 start

служба srv1cv83 не родная потому автозапуск прописывается надо так
Код: выделить все
/sbin/chkconfig srv1cv83 on

Также в работе сервера требуется пакет msttcorefonts. Данный пакет отсутствует на диске дистрибутива RHEL (CentOS)
Скачиваем и устанавливаем msttcorefonts-2.5-1.noarch.rpm
Код: выделить все
wget http://repo.1c-for-linux.ru/rhel/6Server/noarch/msttcorefonts-2.5-1.noarch.rpm
yum -y install msttcorefonts-2.5-1.noarch.rpm

Скрипт запуска службы 1С не содержит информации об интерпретаторе используемом для работы скрипта.
Проверить это можно дав команду
Код: выделить все
head -n 1 /etc/init.d/srv1cv83

Если вывод команды не начинается с символов “#!/”
Код: выделить все
# chkconfig: 35 74 36

то необходимо выполнить команду как в примере ниже
Код: выделить все
[root@1c ~]# sed -i -e '1i#!/bin/sh\' /etc/init.d/srv1cv83

Или добавить в редакторе первой строкой "#!/bin/sh" в файл /etc/init.d/srv1cv83

Установка hasp, если нужно
Код: выделить все
http://abf-downloads.rosalinux.ru/djam_personal/repository/rosa-server70/x86_64/main/release/haspd-3.3-4.x86_64.rpm
http://abf-downloads.rosalinux.ru/djam_personal/repository/rosa-server70/x86_64/main/release/haspd-modules-3.3-4.x86_64.rpm
yum -y install haspd*.rpm

Код: выделить все
http://ftp.etersoft.ru/pub/Etersoft/HASP/3.3/sources/x86_64/CentOS/7/haspd-3.3-eter5centos.src.rpm

Исправление ошибки ERROR: type "mvarchar" does not exist
Код: выделить все
yum install libicu

По умолчанию сервер 1С слушает порт tcp 1541(1540) агент сервера 1С – порт 1540. менеджер кластера 1С – порт 1541.
Код: выделить все
firewall-cmd --permanent --zone=public --add-port=1540-1541/tcp

для соединений использует диапазон портов 1560-1691.
Код: выделить все
firewall-cmd --permanent --zone=public --add-port=1560-1691/tcp

МЕНЕДЖЕР_ЛИЦЕНЗИЙ
Код: выделить все
firewall-cmd --permanent --zone=public --add-port=475/tcp
firewall-cmd --reload



 Установка клиента 1С  
epel
wget http://dl.fedoraproject.org/pub/epel/7/ ... noarch.rpm
yum localinstall epel-release-7-9.noarch.rpm
yum -y install ttf2pt1
=====================================================================
Также в работе сервера требуется пакет msttcorefonts. Данный пакет отсутствует
на диске дистрибутива RHEL (CentOS)
yum install https://downloads.sourceforge.net/proje ... noarch.rpm
=====================================================================
Скачать с сайта https://releases.1c.ru/ Технологическую платформу client.rpm64.tar.gz и rpm64.tar.gz
Распаковываем архив client.rpm64.tar.gz в каталог 1C-C,
а сервер в каталог SERVER
Код: выделить все
mkdir ~/{1C-C,SERVER}
tar xvf client.rpm64.tar.gz -C 1C-C
tar xvf rpm64.tar.gz -C SERVER

Устанавливаем 1С
Код: выделить все
cd ~/SERVER
yum localinstall *.rpm
cd ~/1C-C
yum localinstall *.rpm

Пакеты с thin — это тонкий клиент. Нам он не нужен и можно удалить эти пакеты.
Пакеты nls нужно использовать в случае использования языков кроме русского.

Получение лицензий на клиенте. Создаем каталог conf, если не существует
mkdit /opt/1C/v8.3/x86_64/conf
Создаем файл nethasp.ini с содержимым
e /opt/1C/v8.3/x86_64/conf/nethasp.ini
Код: выделить все
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 195.0.1.50
NH_TCPIP_METHOD=UDP
NH_USE_BROADCAST=Disabled

Может так же понадобиться установка прав доступа и настройка SElinux
Код: выделить все
chown usr1cv8:grp1cv8 /opt/1C/v8.3/x86_64/conf/nethasp.ini
chcon -R -u system_u -r object_r /opt/1C/v8.3/x86_64/conf
chown root:root /opt/1C/v8.3/x86_64/conf/nethasp.ini


Список баз хранится тут
для Windows
Код: выделить все
C:\Users\sergey\AppData\Roaming\1C\1CEStart\ibases.v8i

Для CentOS
Код: выделить все
/home/sergey/.1C/1cestart/ibases.v8i



 Ключи 1С 
  1. Локальные однопользовательские клиентские ключи — обязательно должны физически быть подключены к компьютеру, на котором запускается клиент 1С (по одному в каждый комп). модель ключа «HASP HL Basic» (синего цвета), данный ключ имеет маркировку «H4 M1 ORGL8», не имеет встроенной памяти и персонального ID, не хранит в себе никаких параметров и настроек. Обычно поставляется с продуктами имеющими лицензию на одно рабочее место...
  2. Сетевые многопользовательские клиентские ключи — раздаются с одного компьютера многим удалённым сетевым клиентам, через службу «Менеджер лицензий». Модель ключа «HASP HL Net» (красного цвета). Имеют внутреннюю память, в которой хранится количество лицензий, и уникальный ID. Существуют разновидности на 5, 10, 20, 50 и 100 пользователей. Имеет маркировку «NETXX ORGL8», где ХX — количество лицензий (например NET5 ORGL8).
  3. Серверные ключи — обязательно должны физически быть подключены локально к компьютеру, на котором установлен и работает сервер агента 1С: Предприятие. Подчеркну: Ключи для сервера 1С: Предприятие бывают только локальные!
    • 32-битная версия сервера имеет ключ защиты «HASP HL Pro» (фиолетового цвета), который имеет внутреннюю память и уникальный ID. Имеет маркировку ENSR8, поставляется вместе с лицензией на сервер 1С: Предприятие.
    • Для 64-битного сервера используется ключ «HASP HL Max» (зеленого цвета), с внутренней памятью и уникальным ID. Имеет маркировку EN8SA и поддерживает также 32-битный сервер (т.е. имея лицензию на 64-битный сервер можно, не меняя ключа, использовать 32-битную версию, но не наоборот).


 Обслуживание БД 
останавливаем сервер 1С
Код: выделить все
systemctl stop srv1cv83

Список пользователей:
Код: выделить все
select * from pg_shadow;

Список баз данных:
Код: выделить все
select * from pg_database;

Из командной строки в современных версиях PostgreSQL можно просто набрать:
Код: выделить все
psql -U postgres -h localhost -l

В vacuum.sql :
Код: выделить все
VACUUM FULL VERBOSE ANALYZE;

Команда по факту работает от 6 до 8 часов.
из Shell
Код: выделить все
psql -U postgres -h localhost -c "VACUUM FULL VERBOSE ANALYZE;"

переиндексация
Код: выделить все
reindexdb -U postgres OLGA

Посмотреть занимаемый объём базы
Код: выделить все
SELECT pg_size_pretty(pg_database_size('OLGA')) AS OLGA_size;

из Shell
Код: выделить все
psql -U postgres -h localhost -c "SELECT pg_size_pretty(pg_database_size('OLGA')) AS OLGA_size;"


пересоздаём схему
Код: выделить все
drop schema public cascade;
create schema public;

Восстановление базы из резервной копии
Код: выделить все
pg_restore -U postgres -d OLGA OLGA-18-08-2015.backup

Занимаемый объём данных БАЗА/БЭКАП
Код: выделить все
268M авг 27 11:31 OLGA-27-08-2015.backup
размер базы olga в СУБД 738 MB



 Утилиты для работы с базой 
УтилитаОписание
pg_configВозвращает информацию о текущей установленной версии PostgreSQL
initdbИнициализирует новое хранилище данных (кластер баз данных). Кластер представляет собой совокупность баз данных управляемых одним экземпляром севера. initdb должен быть запущен от имени будущего владельца сервера (как указано выше от имени postgres).
pg_ctlУправляет процессом работы сервера PostgreSQL. Позволяет запускать, выполнять перезапуск, останавливать работу сервера, указать лог файл и другое.
psqlКлиент для работы с базой дынных. Позволяет выполнять SQL операции
createdbСоздает новую базу данных. По умолчанию, база данных создается от имени пользователя, который запускает команду. Однако, чтобы задать другого — необходимо использовать опцию -O (если у пользователя есть необходимые привилегии для этого). По сути — это обертка SQL команды CREATE DATABASE.
dropdbУдаляет базу данных. Является оберткой SQL команды DROP DATABASE
createuserДобавляет нового пользователя базы дынных. Является оберткой SQL команды CREATE ROLE
dropuserУдаляет пользователя базы данных. Является оберткой SQL команды DROP ROLE
createlangДобавляет новый язык программирования в базу PostgreSQL. Является оберткой SQL команды CREATE LANGUAGE
droplangУдаляет язык программирования. Является оберткой SQL команды DROP LANGUAGE.
pg_dumpСоздает бэкап (дамп) базы данных в файл.
pg_restoreВосстанавливает бэкап (дамп) базы данных из файла.
pg_dumpallСоздает бэкап (дамп) всего кластера в файл.
reindexdbПроизводит переиндексацию базы данных. Является оберткой SQL команды REINDEX.
clusterdbПроизводит перекластеризацию таблиц в базе данных. Является оберткой SQL команды CLUSTER.
vacuumdbСборщик мусора и оптимизатор базы данных. Является оберткой SQL команды VACUUM.
Для желающих отблагодарить
SB: 4274320029755744
QIWI: +79175241450
Аватар пользователя
ROOT
Администратор
 
Сообщений: 137
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в Fedora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1