su
Заливаем на сервер файл дистрибутива со всеми клиентами. В моём случае это server64_with_all_clients_8_3_25_1374.zip, переходим в папку с архивом.
Не забываем сменить при необходимости версию платформы с 8.3.25.1374 на нужную.
Установка проверена на Debian 11 Bullseye и платформе версии 8.3.25.1374
sed -i 's/^deb.*/& contrib non-free/g' /etc/apt/sources.list
apt update && apt dist-upgrade -y && apt install -y unzip ttf-mscorefonts-installer libodbc1 mc htop vim && echo "deb http://mirror.yandex.ru/debian buster main" > /etc/apt/sources.list.d/buster.list && \
apt update && apt install -y imagemagick unixodbc sudo curl libenchant1c2a && dpkg-reconfigure locales
unzip server64_with_all_clients_8_3_25_1374.zip && cd server64_with_all_clients_8_3_25_1374 && \
chmod +x *.run && ./setup-full-8.3.25.1374-x86_64.run --mode unattended --enable-components server,ws,liberica_jre,ru
Подготавливаем дистрибутивы Windows, Linux и MacOS для автоматического обновления клиентов через веб-сервер
./all-clients-distr-8.3.25.1374-x86_64.run --mode unattended
Для регистрации службы после установки платформы включаем автозагрузку и запускаем службу:
systemctl link /opt/1cv8/x86_64/8.3.25.1374/srv1cv8-8.3.25.1374@.service && \
systemctl enable srv1cv8-8.3.25.1374@ && \
systemctl start srv1cv8-8.3.25.1374@default && \
systemctl status srv1cv8-8.3.25.1374@default
Для удаления платформы следует воспользоваться , который расположен в папке платформы
/opt/1cv8/x86_64/8.3.25.1374/uninstaller-full
При обновлении платформы вам потребуется (не забываем менять релиз платформы в командах):
systemctl stop srv1cv8-8.3.25.1374@default && \
systemctl disable srv1cv8-8.3.25.1374@ && \
/opt/1cv8/x86_64/8.3.25.1374/uninstaller-full
su
PATH=$PATH:/sbin
apt update && apt dist-upgrade -y && apt install ssh htop mc vim sudo gnupg libc6 libllvm9 ssl-cert -y
timedatectl set-timezone Europe/Moscow && timedatectl set-ntp on && \
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list' && \
wget https://it-admins.ru/downloads/rep/libffi6_3.2.1-6_amd64.deb && \
dpkg -i libffi6_3.2.1-6_amd64.deb && \
wget https://it-admins.ru/downloads/rep/libllvm6.0_6.0.1-10_amd64.deb && dpkg -i libllvm6.0_6.0.1-10_amd64.deb && \
wget https://it-admins.ru/downloads/rep/libicu55_55.1-7_amd64.deb && \
dpkg -i libicu55_55.1-7_amd64.deb && \
wget https://it-admins.ru/downloads/rep/libaspell15_0.60.8-4_amd64.deb && \
dpkg -i libaspell15_0.60.8-4_amd64.deb && \
wget https://it-admins.ru/downloads/rep/libc-bin_2.31-13+deb11u3_amd64.deb && \
dpkg -i libc-bin_2.31-13+deb11u3_amd64.deb && \
wget https://it-admins.ru/downloads/rep/libhunspell-1.7-0_1.7.0-3_amd64.deb && \
dpkg -i libhunspell-1.7-0_1.7.0-3_amd64.deb && \
wget https://it-admins.ru/downloads/rep/libenchant1c2a_1.6.0-11.1+b1_amd64.deb && \
dpkg -i libenchant1c2a_1.6.0-11.1+b1_amd64.deb && \
wget https://it-admins.ru/downloads/rep/libicu60_60.2-3ubuntu3.2_amd64.deb && \
dpkg -i libicu60_60.2-3ubuntu3.2_amd64.deb && \
wget https://it-admins.ru/downloads/rep/libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb && \
dpkg -i libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb
В 1-ом диалоге проверяем, что RU выбран и выбираем RU во втором
locale-gen en_US.UTF-8 && locale-gen ru_RU.UTF-8 && dpkg-reconfigure locales && update-locale LANG=ru_RU.UTF-8 && update-locale LANG=ru_RU.UTF-8
wget https://it-admins.ru/downloads/rep/libreadline7_7.0-5_amd64.deb && dpkg -i libreadline7_7.0-5_amd64.deb && \
wget https://it-admins.ru/downloads/rep/libjson-perl_4.04000-1_all.deb && dpkg -i libjson-perl_4.04000-1_all.deb && \
wget https://it-admins.ru/downloads/rep/postgresql-client-common_240_all.deb && dpkg -i postgresql-client-common_240_all.deb && \
wget https://it-admins.ru/downloads/rep/postgresql-common_240_all.deb && dpkg -i postgresql-common_240_all.deb && apt install -f
Переходим в папку со скаченным дистрибом PostgreSQL от 1с
dpkg -i libpq5_14.1-2.1C_amd64.deb && dpkg -i postgresql*.deb && \
apt --fix-broken install -y && dpkg -i postgresql*.deb && apt install -f && \
dpkg -l | grep postgresql | awk -F' ' '{print $2}' | sudo xargs apt-mark hold
sudo nano /etc/postgresql/14/main/pg_hba.conf
последний блок меняем на:
local all postgres md5
local all all peer
host all all 0.0.0.0/0 trust
host all all ::1/128 md5
local replication all peer
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
sudo nano /etc/postgresql/14/main/postgresql.conf
Раскомментируем в файле строку password_encryption и ставим значение
password_encryption = md5
изменяем параметр прослушивания источников запросов
listen_addresses = '*'
Задаем сложный пароль для пользователя postgres
su postgres
psql -U postgres -c "alter user postgres with password 'ПАРОЛЬ_ПОСТГРЕС';"
exit
перезапускаем постгрес и проверяем, что он слушает подключения
systemctl restart postgresql && ss -tulpn | grep postgres
вывод
ss -tulpn | grep postgres
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 930/postgres
su
PATH=$PATH:/sbin
apt update && apt dist-upgrade -y && apt install ssh htop mc vim sudo gnupg libc6 libllvm9 ssl-cert -y
timedatectl set-timezone Europe/Moscow && timedatectl set-ntp on
В 1-ом диалоге проверяем, что RU выбран и выбираем RU во втором
locale-gen en_US.UTF-8 && locale-gen ru_RU.UTF-8 && dpkg-reconfigure locales && update-locale LANG=ru_RU.UTF-8 && update-locale LANG=ru_RU.UTF-8
Ставим PostgreSQL от PostgresPro
curl -o pgpro-repo-add.sh https://repo.postgrespro.ru/pg1c-14/keys/pgpro-repo-add.sh && \
sh pgpro-repo-add.sh && apt-get install postgrespro-1c-14 -y && systemctl stop postgrespro-1c-14 && \
rm -r /var/lib/pgpro/1c-14/data/* && /opt/pgpro/1c-14/bin/pg-setup initdb --tune=1c --locale=ru_RU.UTF-8 && \
systemctl start postgrespro-1c-14 && \
dpkg -l | grep postgres | awk -F' ' '{print $2}' | sudo xargs apt-mark hold
Задаем сложный пароль для пользователя postgres
su postgres
psql -U postgres -c "alter user postgres with password 'ПАРОЛЬ_ПОСТГРЕС';"
exit
перезапускаем постгрес и проверяем, что он слушает подключения
systemctl restart postgrespro-1c-14 && ss -tulpn | grep postgres
su
PATH=$PATH:/sbin
apt update && apt dist-upgrade -y && apt install ssh htop mc vim sudo gnupg libc6 libllvm9 ssl-cert -y
timedatectl set-timezone Europe/Moscow && timedatectl set-ntp on
В 1-ом диалоге проверяем, что RU выбран:
locale-gen en_US.UTF-8 && locale-gen ru_RU.UTF-8 && dpkg-reconfigure locales && update-locale LANG=ru_RU.UTF-8 && update-locale LANG=ru_RU.UTF-8
Ставим PostgreSQL от PostgresPro
wget https://repo.postgrespro.ru/1c-16/keys/pgpro-repo-add.sh && chmod +x pgpro-repo-add.sh && \
sh pgpro-repo-add.sh && apt-get install postgrespro-1c-16 -y && systemctl stop postgrespro-1c-16 && \
rm -r /var/lib/pgpro/1c-16/data/* && /opt/pgpro/1c-16/bin/pg-setup initdb --tune=1c --locale=ru_RU.UTF-8 && \
systemctl start postgrespro-1c-16 && \
dpkg -l | grep postgres | awk -F' ' '{print $2}' | sudo xargs apt-mark hold
Задаем сложный пароль для пользователя postgres
su postgres
psql -U postgres -c "alter user postgres with password 'ПАРОЛЬ_ПОСТГРЕС';"
exit
перезапускаем постгрес и проверяем, что он слушает подключения
systemctl restart postgrespro-1c-16 && ss -tulpn | grep postgres
Для включения необходимо внести изменения в файл /etc/postgresql/14/main/postgresql.conf или в файл /var/lib/pgpro/1c-14/data/postgresql.conf если сборка от PostgresPro
nano /etc/postgresql/14/main/postgresql.conf
Параметр autovacuum_max_workers равен половине кол-ва ядер.
#------------------------------------------------------------------------------
# AUTOVACUUM - 12 cores on server
#------------------------------------------------------------------------------
autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
autovacuum_max_workers = 6 # max number of autovacuum subprocesses
# (change requires restart)
autovacuum_naptime = 1min # time between autovacuum runs
autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
autovacuum_vacuum_insert_threshold = 1000 # min number of row inserts
# before vacuum; -1 disables insert
# vacuums
autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
autovacuum_vacuum_scale_factor = 0.01 # fraction of table size before vacuum
autovacuum_vacuum_insert_scale_factor = 0.2 # fraction of inserts over table
# size before insert vacuum
autovacuum_analyze_scale_factor = 0.005 # fraction of table size before analyze
autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
autovacuum_multixact_freeze_max_age = 400000000 # maximum multixact age
# before forced vacuum
# (change requires restart)
autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
Создаём файл скрипта:
nano /root/db_service.sh
#!/bin/bash
# Получаем текущую дату
NOW=$(date +"-"%d"."%m"."%Y"-"%H"."%M)
# Пароль пользователя СУБД
export PGPASSWORD="ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_postgres"
# Список баз через пробел в кавычках
allBases=("bp-main" "zup-main" "ut-test")
for t in ${allBases[@]};
do
# Записываем информацию о начале очистки БД в лог
echo $NOW Start vacuum $t >> /var/log/pg_service.log
# Выполняем очистку и анализ базы данных
/usr/bin/vacuumdb --full --analyze --username postgres --dbname $t
# Записываем информацию об окончании очистки БД в лог
echo $NOW End vacuum $t >> /var/log/pg_service.log
# Ставим на паузу выполнение скрипта на 10 секунд
sleep 10
# Записываем информацию о начале переиндексации таблиц БД в лог
echo $NOW Start reindex $t >> /var/log/pg_service.log
# Переиндексируем таблицы базы данных
/usr/bin/reindexdb --username postgres --dbname $t
# Записываем информацию об окончании переиндексации таблиц БД в лог
echo $NOW End reindex $t >> /var/log/pg_service.log
done
Бит на исполнение:
chmod +x /root/db_service.sh
Не забываем добавить задание в крон.
Получил следующую ошибку одним прекрасным утром:
Ошибка при выполнении файловой операции ...бла-бла-бла... Error decompressing LZ4 data. LZ4 error: ERROR_decompressionFailed
Нужно найти папку, в которой находятся файлы кэша сервера 1С.
У меня это /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/snccntx.....
Нас интересует папка, начинающаяся с префикса "snccntx".
Заходим в нее, Удаляем файл с названием "snccntx*.dat".
Перезапускаем сервер.