среда, 9 декабря 2020 г.

вторник, 1 декабря 2020 г.

Установка lxd на VirtualBox

16 G для машины свободно будет, ?
Последний релиз установленный у клиентов 8.3.17.1549
с последним pg 11. 
ubuntu 20.04.1 server
Настройка - 1 диска 250 Гб фиксированный
Для сети сетвой мост и неразборчивый режим

sudo apt update
sudo apt upgrade
sudo apt install ssh samba mc

sudo apt install bridge-utils -y

Настроим ip адрес
cd /etc/netplan
ls

Делаем так:
sudo nano /etc/netplan/00-installer-config.yaml

 

# This is the network config written by 'subiquity'
#network:
#  ethernets:
#    enp0s3:
#      dhcp4: true
#  version: 2
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      dhcp4: false
      dhcp6: false
      interfaces:
        - enp0s3
      addresses:
      - 192.168.1.216/24
      nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
      gateway4: 192.168.1.1

Сохранить.

sudo netplan generate
sudo netplan --debug apply

sudo reboot

lxd init
Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]:
Name of the storage backend to use (ceph, btrfs, dir, lvm) [default=btrfs]: dir
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]: no
Would you like to configure LXD to use an existing bridge or host interface? (yes/no) [default=no]: yes
Name of the existing bridge or host interface: br0
Would you like LXD to be available over the network? (yes/no) [default=no]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:


nano tuning.sh

#!/bin/bash
# отключим ipv6
sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo '#net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
#тюнинг postgresql
sudo /bin/su -c "echo 'vm.swappiness=1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.sched_migration_cost_ns = 5000000' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.sched_autogroup_enabled = 0' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.dirty_background_bytes = 67108864' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.dirty_bytes = 536870912' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.zone_reclaim_mode = 0' >> /etc/sysctl.conf"
#lxd
sudo /bin/su -c "echo 'fs.inotify.max_queued_events = 1048576' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'fs.inotify.max_user_instances = 1048576' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'fs.inotify.max_user_watches = 1048576' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.max_map_count=262144' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.dmesg_restrict=1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv4.neigh.default.gc_thresh3=8192' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.neigh.default.gc_thresh3=8192' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.core.bpf_jit_limit=3000000000' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.keys.maxkeys=2000' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.keys.maxbytes=2000000' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'fs.aio-max-nr=524288' >> /etc/sysctl.conf"
sudo systemctl stop ondemand
sudo systemctl disable ondemand
sudo timedatectl set-timezone Europe/Moscow
sudo sysctl -p

Сохранить.

chmod +x tuning.sh
./tuning.sh

понедельник, 30 ноября 2020 г.

FileZilla Server for Windows для backup

Выгрузка файла на FTP-сервер с помощью curl
Наш сервер будет выгружать backup на компьютер в локальной сети,
на котором достаточно места на диске. Если linux компьютеров нет
используем компьютер под windows.

Download FileZilla Server for Windows
Архив версий
Изменения во всех версиях
Last version ever to support Windows XP 0.9.42 !!!

Примечание: последняя версия сервера совместимая с Windows XP/2003 - v0.9.43 (2013-12-16).

 

Установить с правами администратора.

1. Убрать консоль при загрузке:


2.  Задать пользователя и пароль:


3. Задать папку и права:


4.  Убрать лимиты:

5. Настройка сети:
 Если ip адрес внутри локальной сети меняется, задать ip.
Возможно открыть в брандмауре 21 порт для входящих соединений.

Пусть адрес 192.168.0.5 пользователь test пароль test

На компьютере откуда будем копировать архивы по маске

В папке с архивами создать

copy_ftp.bat

@echo off
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
REM файлы вида 2020-11-30_21-00-38.tar.gz
SET UPLOAD_FILE_NAME=*%DATETIME%*
SET FTP_PATH_TO_STORE_FILE=/Backup/win
SET USERNAME=test
SET PASSWORD=test

echo %USERNAME%> upload.txt
echo %PASSWORD%>> upload.txt
echo cd %FTP_PATH_TO_STORE_FILE%>> upload.txt
echo mput %UPLOAD_FILE_NAME%>> upload.txt
echo quit >> upload.txt
ftp -i -s:upload.txt 192.168.0.5
pause
del upload.txt

Сохранить.

Запустить:

copy_ftp.bat

Пусть сегодня 2020-11-30

Тогда после запуска copy_ftp.bat

 файлы вида 2020-11-30_21-00-38.tar.gz будут скопированы на ftp сервер

четверг, 8 октября 2020 г.

Сравнение дисков SSD

Samsung SSD EVO 860 1Tb

-----------------------------------------------------------------------
CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

   Sequential Read (Q= 32,T= 1) :   559.697 MB/s
  Sequential Write (Q= 32,T= 1) :   487.273 MB/s
  Random Read 4KiB (Q= 32,T= 1) :   293.780 MB/s [ 71723.6 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :   256.221 MB/s [ 62554.0 IOPS]
         Sequential Read (T= 1) :   286.163 MB/s
        Sequential Write (T= 1) :   444.954 MB/s
   Random Read 4KiB (Q= 1,T= 1) :    29.633 MB/s [  7234.6 IOPS]
  Random Write 4KiB (Q= 1,T= 1) :    99.430 MB/s [ 24274.9 IOPS]

  Test : 1024 MiB [D: 50.7% (470.8/928.9 GiB)] (x1)  [Interval=5 sec]
  Date : 2020/10/08 19:45:06
    OS : Windows 10 Professional [10.0 Build 19041] (x64)

 

Samsung SSD EVO 860 512 Mb
-----------------------------------------------------------------------
CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

   Sequential Read (Q= 32,T= 1) :   560.558 MB/s
  Sequential Write (Q= 32,T= 1) :   532.550 MB/s
  Random Read 4KiB (Q= 32,T= 1) :   352.228 MB/s [ 85993.2 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :   335.773 MB/s [ 81975.8 IOPS]
         Sequential Read (T= 1) :   541.804 MB/s
        Sequential Write (T= 1) :   506.238 MB/s
   Random Read 4KiB (Q= 1,T= 1) :    47.847 MB/s [ 11681.4 IOPS]
  Random Write 4KiB (Q= 1,T= 1) :   125.757 MB/s [ 30702.4 IOPS]

  Test : 1024 MiB [C: 11.8% (55.1/465.1 GiB)] (x1)  [Interval=5 sec]
  Date : 2020/10/08 19:48:28
    OS : Windows 10 Professional [10.0 Build 19041] (x64)

Gigabyte 1 Tb

-----------------------------------------------------------------------
CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

   Sequential Read (Q= 32,T= 1) :   538.676 MB/s
  Sequential Write (Q= 32,T= 1) :   509.838 MB/s
  Random Read 4KiB (Q= 32,T= 1) :   290.593 MB/s [ 70945.6 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :   349.508 MB/s [ 85329.1 IOPS]
         Sequential Read (T= 1) :   295.854 MB/s
        Sequential Write (T= 1) :   490.979 MB/s
   Random Read 4KiB (Q= 1,T= 1) :    30.164 MB/s [  7364.3 IOPS]
  Random Write 4KiB (Q= 1,T= 1) :   105.244 MB/s [ 25694.3 IOPS]

  Test : 1024 MiB [D: 22.6% (215.8/953.9 GiB)] (x1)  [Interval=5 sec]
  Date : 2020/10/08 19:52:30
    OS : Windows 10 Professional [10.0 Build 19041] (x64)

Samsung T5 1024 Гб USB 3
-----------------------------------------------------------------------
CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

   Sequential Read (Q= 32,T= 1) :   543.604 MB/s
  Sequential Write (Q= 32,T= 1) :   506.246 MB/s
  Random Read 4KiB (Q= 32,T= 1) :   294.761 MB/s [ 71963.1 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :   351.392 MB/s [ 85789.1 IOPS]
         Sequential Read (T= 1) :   304.420 MB/s
        Sequential Write (T= 1) :   480.083 MB/s
   Random Read 4KiB (Q= 1,T= 1) :    36.295 MB/s [  8861.1 IOPS]
  Random Write 4KiB (Q= 1,T= 1) :   111.359 MB/s [ 27187.3 IOPS]

  Test : 1024 MiB [D: 28.9% (275.9/953.9 GiB)] (x1)  [Interval=5 sec]
  Date : 2020/11/05 13:00:53
    OS : Windows 10 Professional [10.0 Build 19041] (x64)
 
Samsung T5 1024 Гб USB2

-----------------------------------------------------------------------
CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

   Sequential Read (Q= 32,T= 1) :   544.860 MB/s
  Sequential Write (Q= 32,T= 1) :   505.705 MB/s
  Random Read 4KiB (Q= 32,T= 1) :   321.259 MB/s [ 78432.4 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :   357.449 MB/s [ 87267.8 IOPS]
         Sequential Read (T= 1) :   305.119 MB/s
        Sequential Write (T= 1) :   483.129 MB/s
   Random Read 4KiB (Q= 1,T= 1) :    31.939 MB/s [  7797.6 IOPS]
  Random Write 4KiB (Q= 1,T= 1) :   112.201 MB/s [ 27392.8 IOPS]

  Test : 1024 MiB [D: 28.9% (275.9/953.9 GiB)] (x1)  [Interval=5 sec]
  Date : 2020/11/05 13:04:46
    OS : Windows 10 Professional [10.0 Build 19041] (x64)

-----------------------------------------------------------------------
CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

   Sequential Read (Q= 32,T= 1) :   444.240 MB/s
  Sequential Write (Q= 32,T= 1) :   450.837 MB/s
  Random Read 4KiB (Q= 32,T= 1) :   178.853 MB/s [ 43665.3 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :   177.488 MB/s [ 43332.0 IOPS]
         Sequential Read (T= 1) :   431.835 MB/s
        Sequential Write (T= 1) :   430.147 MB/s
   Random Read 4KiB (Q= 1,T= 1) :    21.637 MB/s [  5282.5 IOPS]
  Random Write 4KiB (Q= 1,T= 1) :    49.091 MB/s [ 11985.1 IOPS]

  Test : 1024 MiB [F: 0.0% (0.0/931.5 GiB)] (x1)  [Interval=5 sec]
  Date : 2020/11/05 13:08:35
    OS : Windows 10 Professional [10.0 Build 19041] (x64)
 
  


   

четверг, 24 сентября 2020 г.

Установка 1С + postgresql под windows pg_basebackup

 

Выгрузим существующие базы в pg_dump если не первоначальная установка

0. Остановить сервер 1с (если установлен)
Программы -> 1С:Предприятие 8(x86-64) -> Остановка сервера x86-64 (8.3.17.1386) 
 
Программы -> PostgreSQL 11.5-19.1C(x64) -> psql к 'postgres' 
Посмотреть базы:
postgres-# \l 
Посмотреть размер баз:
postgres-# \l+
 
Сделать pg_dump 
Программы -> PostgreSQL 11.5-19.1C(x64) -> Command Prompt
pg_dump -p 5432 -U postgres -Fc -d demo -f E:/backup/demo.dump
pg_dump -p 5432 -U postgres -Fc -d demo1 -f F:/backup/demo1.dump

Остановим сервис от имени администратора:
Программы -> PostgreSQL 11.5-19.1C(x64) -> Stop service
Удалим PostgreSQL через удаление программ. 

Рассмотрим первоначальную установку:

1. PostgreSQL, версия 11.8-6.1C. Дистрибутив СУБД PostgreSQL для Windows (64-bit) одним архивом

1.1 Установить vcredist_x64.exe

1.2 Установить postgresql-11.8-6.1C(x64).msi

 

D:\PostgreSQL\11.8-6.1C\

D:\PostgreSQL\11.8-6.1C\data\

Обратить внимание, что если PostgreSQL установлен не по умолчанию, нужно добавить права
полный доступ для NETWORK SERVICE для папки установки (если изменен) или на папку с данными. Иначе после reboot PostgreSQL не будет запускаться.

Пароль: pass (будет в дальнейшем использоваться в скриптах).

 


1.3

Остановить сервер 1с (если установлен)
Программы -> 1С:Предприятие 8(x86-64) -> Остановка сервера x86-64 (8.3.17.1386) 
 
Программы -> PostgreSQL 11.8-6.1C(x64) -> psql к 'postgres'
Посмотреть базы:
postgres-# \l
Посмотреть размер баз:
postgres-# \l+


postgres=# SHOW data_checksums;
 data_checksums
----------------
 off
(1 row)
Остановим сервис от имени администратора:
Программы -> PostgreSQL 11.8-6.1C(x64) -> Stop service

Удалим кластер

#rd /s /q "c:\Program Files\PostgreSQL\10.8-6.1C\data"
rd /s /q "d:\PostgreSQL\11.8-6.1C\data"

Создание кластера
Для диска D:\PostgreSQL\11.8-6.1C\data 
"D:\PostgreSQL\11.8-6.1C\bin\initdb" --encoding=UTF8 -U "postgres" -W -D "D:\PostgreSQL\11.8-6.1C\data" --auth-local peer --auth-host md5 --data-checksums
The files belonging to this database system will be owned by user "user".
This user must also own the server process.

The database cluster will be initialized with locale "Russian_Russia.1251".
The default text search configuration will be set to "russian".

Data page checksums are enabled.

Enter new superuser password:
Enter it again:

creating directory D:/PostgreSQL/11.8-6.1C/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... Europe/Moscow
selecting dynamic shared memory implementation ... windows
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

D:/PostgreSQL/11.8-6.1C/bin/pg_ctl -D ^"D^:^\PostgreSQL^\11^.8^-6^.1C^\data^" -l logfile start 

Если PostgreSQL установлен не по умолчанию, нужно добавить права
полный доступ для NETWORK SERVICE для папки установки (если изменен) или на папку с данными. Иначе после reboot PostgreSQL не будет запускаться.

 
Запустим сервис от имени администратора:
Программы -> PostgreSQL 11.8-6.1C(x64) -> Start service
 
Программы -> PostgreSQL 11.8-6.1C(x64) -> psql к 'postgres'
postgres=# SHOW data_checksums;
data_checksums
----------------
on
(1 row)
Кластер с поддержкой контрольных сумм создан.
Создадим папки D:\BackupPG и D:\BackupTMP 
Создать файл D:\BackupPG\pg_bbackup.bat 
REM СОЗДАНИЕ РЕЗЕРВНОЙ КОПИИ КЛАСТЕРА POSTGRESQL
REM Все действия в в папке где запускаем скрипт
CLS
ECHO OFF
CHCP 1251
REM Установка переменных окружения
REM SET PGBIN=c:\Program Files\PostgreSQL\10.8-6.1C\bin
SET PGBIN=D:/PostgreSQL/11.8-6.1C/bin
REM Папка в которой будут лежать копии в папке где запускаем скрипт
SET BACKUP="Backup"
REM Папка в которой формируются файлы, должна быть пустой и на SSD
SET PGBACKUP=D:\BackupTMP
DEL /F /Q %PGBACKUP%\base.tar.gz
SET PGUSER=postgres
SET PGPASSWORD=pass
REM Смена диска и переход в папку из которой запущен bat-файл
%~d0
CD %~dp0
REM Формирование имени файла резервной копии и файла-отчета
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
SET DATETIME=%DATETIME: =0%
SET DUMPFILE= %DATETIME%.tar.gz
SET LOGFILE=%DATETIME%.log
SET DUMPPATH="%BACKUP%\%DUMPFILE%"
SET LOGPATH="%BACKUP%\%LOGFILE%"
REM Создание резервной копии
IF NOT EXIST Backup MD Backup
CALL "%PGBIN%\pg_basebackup.exe" -U %PGUSER% -X fetch --format=tar -z -D %PGBACKUP% -P 2>%LOGPATH%
REM Анализ кода завершения
IF NOT %ERRORLEVEL%==0 GOTO Error
GOTO Successfull
REM В случае ошибки удаляется поврежденная резервная копия и делается соответствующая запись в журнале
:Error
DEL %DUMPPATH%
MSG * "Ошибка при создании резервной копии базы данных. Смотрите backup.log."
ECHO %DATETIME% Ошибки при создании резервной копии базы данных %DUMPFILE%. Смотрите отчет %LOGFILE%. >> backup.log
GOTO End
REM В случае удачного резервного копирования просто делается запись в журнал
:Successfull
ECHO %DATETIME% Успешное создание резервной копии %DUMPFILE% >> backup.log
COPY %PGBACKUP%\base.tar.gz %DUMPPATH%
REM D -2 оставить файлы за 3 дня
forfiles /P "%BACKUP%" /D -5 /C "cmd /c del @path /q"
GOTO End
:End
Сохранить. 
Запустить: D:\BackupPG\pg_bbackup.bat
 
Создать D:\BackupPG\dump\  
Создать: D:\BackupPG\pg_dump.bat
@ECHO OFF
CHCP 1251>Nul
echo Начинаем архивирование!
echo Не закрывайте это окно, оно закроется само.
echo Окно можно свернуть.
echo Программы 1С не будут доступны до завершения.
SETLOCAL ENABLEDELAYEDEXPANSION
SET backup_data_dir=D:\BackupPG\dump\
SET pg_bin_dir=D:\PostgreSQL\11.8-6.1C\bin\
SET PGHOST=localhost
SET PGPORT=5432
SET pg_user=postgres
SET PGPASSWORD=pass
REM SET pg_lst_db=psql.exe --username=%pg_user% --list --field-separator=^; --tuples-only --no-align
SET pg_lst_db=%pg_bin_dir%psql.exe --username=%pg_user% -A -t -c "SELECT datname FROM pg_database"
REM Если батник будет запускаться планировщиком при загрузке
REM для исключения повторных срабатываний в один день
REM FORFILES /p %backup_data_dir% /M *.PGDMP /D 0 >nul 2>&1
REM if not errorlevel 1 exit
REM Стопорим сервер 1с
CALL "C:\Program Files\1cv8\8.3.17.1549\bin\ragent.exe" -stop
REM Задержка
ping -n 16 localhost>Nul
REM SET PGBASES=(postgres template0 template1)
REM CD /D %pg_bin_dir%
REM Удаляем в папке backup_data_dir все файл старше DAY
SET DAY=5
forfiles /p %backup_data_dir% /m * /s /d -%DAY% /c "cmd /c del @path /q" >nul 2>&1
REM FOR /f "delims=; tokens=1" %%d IN ('!pg_lst_db!^|find /v "template0";^|find /v "template1";^|find /v "postgres";^|find /v "demo1"') DO (
REM echo %ERRORLEVEL%
FOR /f "delims=; tokens=1" %%d IN ('!pg_lst_db!^|find /v "template";^|find /v "postgres"') DO (
SET file_name=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
SET file_name=!file_name: =0!
SET backup_file_name=%backup_data_dir%%%d-!file_name!.dump
SET log_file_name=%backup_data_dir%%%d-!file_name!.log
SET pg_dmp_option=--clean --username=%pg_user% --format=custom --verbose --file=!backup_file_name! --dbname=%%d
CALL %pg_bin_dir%pg_dump.exe !pg_dmp_option! 2>!log_file_name!
SET ERROR=!ERRORLEVEL!
REM echo !ERROR!
IF !ERROR!==0 ECHO !file_name! Успешное создание резервной копии !backup_file_name! >> %backup_data_dir%\%%d.log
IF NOT !ERROR!==0 ECHO !file_name! Ошибки при создании резервной копии базы данных !backup_file_name! >> %backup_data_dir%\%%d.log
)
REM Запускаем сервер 1с
CALL "C:\Program Files\1cv8\8.3.17.1549\bin\ragent.exe" -start
Сохранить. 
Восстановление.
Остановить сервер 1с
Запустить psql
Удалить базу buh 
postgres# DROP DATABASE buh;
Создать базу buh 
d:\PostgreSQL\11.8-6.1C\bin\pg_restore.exe -p 5432 -U postgres -e -d postgres -C buh-2020-09-24_21-16-47.dump
d:\PostgreSQL\11.8-6.1C\bin\pg_restore.exe -p 5432 -U postgres -e -d postgres -C kamin_2020-09-18_19-46-08.dump
Создать: D:\BackupPG\pg_vacuum.bat
REM СКРИПТ ОБСЛУЖИВАЮЩИЙ ВСЕ БАЗЫ В КЛАСТЕРЕ POSTGRESQL
CLS
ECHO OFF
CHCP 1251
REM Установка переменных окружения
REM SET PGBIN=C:\Program Files\PostgreSQL\11.5-19.1C\bin
SET PGBIN=D:\PostgreSQL\11.8-6.1C\bin
SET PGUSER=postgres
SET PGPASSWORD=pass
REM Смена диска и переход в папку из которой запущен bat-файл
%~d0
CD %~dp0
REM Формирование имени файла резервной копии и файла-отчета
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
SET DATETIME=%DATETIME: =0%
SET LOGFILE=%DATETIME%.log
SET LOGPATH="Vacuum\%LOGFILE%"
REM Обслуживание баз кластера
IF NOT EXIST Vacuum MD Vacuum
CALL "%PGBIN%\vacuumdb" -zfa -U %PGUSER% 2>>%LOGPATH%
REM Анализ кода завершения
IF NOT %ERRORLEVEL%==0 GOTO Error
GOTO Successfull
REM В случае ошибки делается соответствующая запись в журнале
:Error
MSG * "Ошибка при Vacuum. Смотрите vacuum.log."
ECHO %DATETIME% Ошибки при Vacuum. Смотрите отчет %LOGFILE%. >> vacuum.log
GOTO End
REM В случае удачного Vacuum просто делается запись в журнал
:Successfull
ECHO %DATETIME% Успешное проведение Vacuum >> vacuum.log
GOTO End
:End
Сохранить.
От администратора  в главном меню 
Программы -> PostgreSQL 11.8-6.1C(x64) -> Редактировать postgresql.con
Добавить в конец:

#
port = 5432
max_connections = 100
#shared_buffers = 4GB
shared_buffers = 512MB
temp_buffers = 256MB
work_mem = 64MB
effective_cache_size = 12GB
maintenance_work_mem = 1GB
wal_buffers = 16MB
min_wal_size = 2GB
max_wal_size = 4GB

default_statistics_target = 100
#effective_io_concurrency = 2
random_page_cost = 1.1
autovacuum = on
autovacuum_max_workers = 4
autovacuum_naptime = 20s
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
synchronous_commit = off
checkpoint_completion_target = 0.9
ssl = off
fsync = on
commit_delay = 1000
commit_siblings = 5
row_security = off
max_files_per_process = 1000
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
#log_min_duration_statement = 0
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
#log_autovacuum_min_duration = 0
#log_duration = on
#log_statement = all
log_destination = stderr
plantuner.fix_empty_table = 'on'
online_analyze.table_type = 'temporary'
online_analyze.verbose = 'off'
#max_replication_slots = 10
#max_wal_senders = 10
#wal_level = replica
#archive_mode = on
#archive_command ='test ! -f /wal/%f && cp %p /wal/%f'
#archive_command = 'copy "%p" "d:\\PostgreSQLBackup\\%f"'
#archive_command = '"c:\\Program Files\\Pg_ProBackup\\2.0.27\\pg_probackup" archive-push -B "c:\\pg_probackup" --instance data --wal-file-path %p --wal-file-name %f'
# Вариант с компрессией wal файлов
#archive_command = '"c:\\Program Files\\Pg_ProBackup\\2.0.27\\pg_probackup" archive-push -B "c:\\pg_probackup" --compress --instance data --wal-file-path %p --wal-file-name %f'   

Сохранить.

От администратора  в главном меню

Reload configuration

Установка 1С + postgresql под windows

Выгрузим существующие базы в pg_dump если не первоначальная установка

0. Остановить сервер 1с (если установлен)
Программы -> 1С:Предприятие 8(x86-64) -> Остановка сервера x86-64 (8.3.17.1386) 
 
Программы -> PostgreSQL 11.5-19.1C(x64) -> psql к 'postgres' 
Посмотреть базы:
postgres-# \l 
Посмотреть размер баз:
postgres-# \l+
 
Сделать pg_dump 
Программы -> PostgreSQL 11.5-19.1C(x64) -> Command Prompt
pg_dump -p 5432 -U postgres -Fc -d demo -f E:/backup/demo.dump
pg_dump -p 5432 -U postgres -Fc -d demo1 -f F:/backup/demo1.dump

Остановим сервис от имени администратора:
Программы -> PostgreSQL 11.5-19.1C(x64) -> Stop service
Удалим PostgreSQL через удаление программ. 

Рассмотрим первоначальную установку:

1. PostgreSQL, версия 11.8-6.1C. Дистрибутив СУБД PostgreSQL для Windows (64-bit) одним архивом

1.1 Установить vcredist_x64.exe

1.2 Установить postgresql-11.8-6.1C(x64).msi

 

D:\PostgreSQL\11.8-6.1C\

D:\PostgreSQL\11.8-6.1C\data\

Обратить внимание, что если PostgreSQL установлен не по умолчанию, нужно добавить права
полный доступ для NETWORK SERVICE для папки установки (если изменен) или на папку с данными. Иначе после reboot PostgreSQL не будет запускаться.

Пароль: pass (будет в дальнейшем использоваться в скриптах).

 


1.3

Остановить сервер 1с (если установлен)
Программы -> 1С:Предприятие 8(x86-64) -> Остановка сервера x86-64 (8.3.17.1386) 
 
Программы -> PostgreSQL 11.8-6.1C(x64) -> psql к 'postgres'
Посмотреть базы:
postgres-# \l
Посмотреть размер баз:
postgres-# \l+


postgres=# SHOW data_checksums;
 data_checksums
----------------
 off
(1 row)
Остановим сервис от имени администратора:
Программы -> PostgreSQL 11.8-6.1C(x64) -> Stop service

Удалим кластер

#rd /s /q "c:\Program Files\PostgreSQL\10.8-6.1C\data"
rd /s /q "d:\PostgreSQL\11.8-6.1C\data"

Создание кластера
Для диска D:\PostgreSQL\11.8-6.1C\data 
"D:\PostgreSQL\11.8-6.1C\bin\initdb" --encoding=UTF8 -U "postgres" -W -D "D:\PostgreSQL\11.8-6.1C\data" --auth-local peer --auth-host md5 --data-checksums
The files belonging to this database system will be owned by user "user".
This user must also own the server process.

The database cluster will be initialized with locale "Russian_Russia.1251".
The default text search configuration will be set to "russian".

Data page checksums are enabled.

Enter new superuser password:
Enter it again:

creating directory D:/PostgreSQL/11.8-6.1C/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... Europe/Moscow
selecting dynamic shared memory implementation ... windows
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

D:/PostgreSQL/11.8-6.1C/bin/pg_ctl -D ^"D^:^\PostgreSQL^\11^.8^-6^.1C^\data^" -l logfile start 

Если PostgreSQL установлен не по умолчанию, нужно добавить права
полный доступ для NETWORK SERVICE для папки установки (если изменен) или на папку с данными. Иначе после reboot PostgreSQL не будет запускаться.

 
Запустим сервис от имени администратора:
Программы -> PostgreSQL 11.8-6.1C(x64) -> Start service
 
Программы -> PostgreSQL 11.8-6.1C(x64) -> psql к 'postgres'
postgres=# SHOW data_checksums;
data_checksums
----------------
on
(1 row)
Кластер с поддержкой контрольных сумм создан.  
 
 
Программы -> PostgreSQL 11.5-19.1C(x64) -> Редактировать postgresql.con
 
2. Установка pg_probackup
https://github.com/postgrespro/pg_probackup/releases/2.4.1
Качаем здесь: 
https://github.com/postgrespro/pg_probackup/releases/download/2.4.1/pg-probackup-vanilla-11-2.4.1-standalone-en.msi 
Устанавливаем по умолчанию: 
pg-probackup-vanilla-11-2.4.1-standalone-en.msi 

C:\Program Files\pg_probackup\2.4.1\PostgreSQL11\

>cd "c:\Program Files\Pg_ProBackup\2.0.27"
"c:\Program Files\Pg_ProBackup\2.0.27\pg_probackup.exe" help

"c:\Program Files\pg_probackup\2.4.1\PostgreSQL11\

Инициализация каталога резервных копий

Создадим D:\pg_probackup


 Инициализация (целесообразно на ssd)

"c:\Program Files\pg_probackup\2.4.1\PostgreSQL11\pg_probackup" init -B D:\pg_probackup

INFO: Backup catalog 'D:/pg_probackup' successfully inited

Определение копируемого экземпляра

"c:\Program Files\pg_probackup\2.4.1\PostgreSQL11\pg_probackup" add-instance -B "D:\pg_probackup" -D "D:\PostgreSQL\11.8-6.1C\data"  --instance data
INFO: Instance 'data' successfully inited

У меня был \ на конце -D "D:\PostgreSQL\11.8-6.1C\data\" очевидно это критично была ошибка.


Создание полной автономной резервной копии:


 
"c:\Program Files\pg_probackup\2.4.1\PostgreSQL11\pg_probackup" backup -B "D:\pg_probackup" --instance data -b FULL --stream -U postgres -d postgres

 

"c:\Program Files\pg_probackup\2.4.1\PostgreSQL11\pg_probackup" backup -B "D:\pg_probackup" --instance data -b FULL --stream -U postgres -d postgres
INFO: Backup start, pg_probackup version: 2.4.1, instance: data, backup ID: QH7DOO, backup mode: FULL, wal mode: STREAM, remote: false, compress-algorithm: none, compress-level: 1
Password for user postgres:
WARNING: Current PostgreSQL role is superuser. It is not recommended to run backup or checkdb as superuser.
INFO: PGDATA size: 23MB
INFO: Start transferring data files
INFO: Data files are transferred, time elapsed: 3s
INFO: wait for pg_stop_backup()
INFO: pg_stop backup() successfully executed
INFO: Syncing backup files to disk
INFO: Backup files are synced, time elapsed: 1s
INFO: Validating backup QH7DOO
INFO: Backup QH7DOO data files are valid
INFO: Backup QH7DOO resident size: 39MB
INFO: Backup QH7DOO completed 

 

pg_probackup настройка автономного резервного копирования windows  


Настройка политики сохранения резервных копий


D:\pg_probackup\backups\data\pg_probackup.conf 
Добавить:
retention-redundancy=5
Сохранить.




Для запуска можно сделать скрипт pg_probackup.bat :

REM СКРИПТ pg_probackup В КЛАСТЕРЕ POSTGRESQL
CLS
ECHO OFF
CHCP 1251
REM Установка переменных окружения
SET PGUSER=postgres
SET PGPASSWORD=pass
REM Смена диска и переход в папку из которой запущен bat-файл
%~d0
CD %~dp0
REM Формирование имени файла резервной копии и файла-отчета
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
SET LOGFILE=%DATETIME%.log
SET LOGPATH="PGPRO\%LOGFILE%"
REM Обслуживание баз кластера
IF NOT EXIST PGPRO MD PGPRO
CALL "c:\Program Files\pg_probackup\2.4.1\PostgreSQL11\pg_probackup" backup -B "D:\pg_probackup" --instance data -b FULL --stream -U postgres -d postgres  --compress --delete-wal --expired --progress >>%LOGPATH%
REM Анализ кода завершения
IF NOT %ERRORLEVEL%==0 GOTO Error
GOTO Successfull
REM В случае ошибки делается соответствующая запись в журнале
:Error
MSG * "Ошибка при pg_probackup. Смотрите pg_probackup.log."
ECHO %DATETIME% Ошибки при pg_probackup. Смотрите отчет %LOGFILE%. >> pg_probackup.log
GOTO End
REM В случае удачного pg_probackup просто делается запись в журнал
:Successfull
ECHO %DATETIME% Успешное проведение pg_probackup >> pg_probackup.log
GOTO End
:End

Сохранить.


postgres=# show client_encoding;
 client_encoding
-----------------
 UTF8
(1 row)

open the cmd
SET PGCLIENTENCODING=UTF8

utf-8

пятница, 14 августа 2020 г.

Удаление отработанных кластеров и баз

ЗиК_тест:(Удалить)

Сервер: base1c:3741
База: social_zik_3741_test
 
Зик:(Удалить)
Сервер: base1c:3741
База: social_zik_3741

systemctl list-unit-files | grep 8.3.
social-8.3.15.1830-ras.service         enabled
social-8.3.15.1830.service             enabled

Удалим ras:
sudo systemctl stop social-8.3.15.1830-ras.service
sudo systemctl disable social-8.3.15.1830-ras.service
sudo rm /etc/systemd/system/social-8.3.15.1830-ras.service

Удалим сервис 1с:
sudo systemctl stop social-8.3.15.1830.service
sudo systemctl disable social-8.3.15.1830.service
sudo rm /etc/systemd/system/social-8.3.15.1830.service
sudo systemctl daemon-reload
sudo systemctl reset-failed

Удалить файлы самого отработанного кластера
sudo rm -R /home/usr1cv8/.social-8.3.15.1830

Удалить 2 базы postgresql

sudo su postgres -c "psql -l"
sudo su postgres -c "psql -c 'DROP DATABASE social_zik_3741'"
sudo su postgres -c "psql -c 'DROP DATABASE social_zik_3741_test'"

или так:

sudo -u postgres psql -c "DROP DATABASE social_zik_3741;"

четверг, 23 июля 2020 г.

NoMachine over OpenVPN windows

Устанавливаем OpenVPN под Windows
OpenVPN 2.4.9 
 
Обратитить внимание что последняя версия для XP 2.3.18 !!!
Ссылки есть в описании странице по ссылке выше. 
 
Подкладываем ключи.
 
Проверяем настройки.
 
Альтернативные загрузки 
 
Устанавливаем NoMachine
Загрузка NoMachine
Использование ПО NoMachine для удаленного доступа к компьютеру через локальную сеть 
NoMachine (бесплатная версия) - Руководство по установке и настройке 
Руководство по функциональности в панели меню в Windows 
 
В файлах конфигурации сервера (server.cfg)
C:\Program files (x86)\NoMachine\etc\server.cfg

Измените:
EnableUPnP

На
EnableUPnP none

Затем перезапустите NoMachine.

Сделать файл openvpn_start.bat
Для запуска в планировщике, при входе пользователя в систему
с наивысшими правами

@echo off
start /b "" "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect client1.ovpn
CALL ping 127.0.0.1 -n 60
CALL "c:\Program Files (x86)\NoMachine\bin\nxserver.exe" --restart

понедельник, 13 июля 2020 г.

сборка pulseaudio ubuntu 20.04

pulseaudio --version
pulseaudio 13.99.1
sudo apt install build-essential dpkg-dev libpulse-dev
sudo nano /etc/apt/sources.list
Расскоментировать:

deb-src http://ru.archive.ubuntu.com/ubuntu/ focal main restricted

Сохранить

sudo apt update
sudo apt source pulseaudio
cd pulseaudio-13.99.1
sudo ./configure
#sudo apt install sndfile-tools 
sudo apt install libsndfile-dev git
sudo ./configure --without-caps
cd ~
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.gi
cd pulseaudio-module-xrdp

./bootstrap && ./configure PULSE_DIR=/path/to/pulseaudio-13.99.1
make






пятница, 10 июля 2020 г.

Сравнение

sudo time /usr/lib/postgresql/11/bin/pgbench -U postgres -i -s 1000 pgbench

sudo su postgres
psql
postgres=# CREATE DATABASE pgbench;

time /usr/lib/postgresql/11/bin/pgbench  -i -s 1000 pgbench

100000000 of 100000000 tuples (100%) done (elapsed 583.27 s, remaining 0.00 s)
vacuuming...
creating primary keys...
done.

real    18m12,278s
user    2m19,308s
sys     0m3,557s


postgres@u2004:/home/user$ time pgbench -j 32 -c 32 -M prepared -T 600 pgbench
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 1000
query mode: prepared
number of clients: 32
number of threads: 32
duration: 600 s
number of transactions actually processed: 1056430
latency average = 18.178 ms
tps = 1760.353143 (including connections establishing)
tps = 1760.467637 (excluding connections establishing)

real    10m0,289s
user    1m34,845s
sys     3m13,124s
postgres@u2004:/home/user$




sudo su -c "cp /etc/postgresql/11/main/postgresql.conf /root/postgresql.conf.bak"
sudo pg_dropcluster --stop 11 main
sudo pg_createcluster --locale ru_RU.UTF-8 11 main
sudo su -c "cp /root/postgresql.conf.bak /etc/postgresql/11/main/postgresql.conf"
sudo nano /etc/postgresql/11/main/postgresql.conf
sudo nano /etc/postgresql/11/main/postgresql.conf
sudo pg_ctlcluster 11 main start 
sudo -u postgres psql -U postgres -c "alter user postgres with password 'pass';"
sudo su postgres
psql
postgres=# CREATE DATABASE pgbench;
time /usr/lib/postgresql/11/bin/pgbench -i -s 1000 pgbench

100000000 of 100000000 tuples (100%) done (elapsed 518.15 s, remaining 0.00 s)
vacuuming...
creating primary keys...
done.

real    13m26,553s
user    2m11,722s
sys     0m2,846s


time pgbench -j 32 -c 32 -M prepared -T 600 pgbench

:/home/user$ time pgbench -j 32 -c 32 -M prepared -T 600 pgbench
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 1000
query mode: prepared
number of clients: 32
number of threads: 32
duration: 600 s
number of transactions actually processed: 1425678
latency average = 13.469 ms
tps = 2375.790120 (including connections establishing)
tps = 2376.012756 (excluding connections establishing)

real    10m0,334s
user    1m59,212s
sys     3m48,208s





100000000 of 100000000 tuples (100%) done (elapsed 583.27 s, remaining 0.00 s)
vacuuming...
creating primary keys...
done.

real    18m12,278s
user    2m19,308s
sys     0m3,557s

100000000 of 100000000 tuples (100%) done (elapsed 583.27 s, remaining 0.00 s)
100000000 of 100000000 tuples (100%) done (elapsed 518.15 s, remaining 0.00 s)
583/518=1.125


:/home/user$ time pgbench -j 32 -c 32 -M prepared -T 600 pgbench
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 1000
query mode: prepared
number of clients: 32
number of threads: 32
duration: 600 s
number of transactions actually processed: 1425678
latency average = 13.469 ms
tps = 2375.790120 (including connections establishing)
tps = 2376.012756 (excluding connections establishing)

real    10m0,334s
user    1m59,212s
sys     3m48,208s


postgres@u2004:/home/user$ time pgbench -j 32 -c 32 -M prepared -T 600 pgbench
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 1000
query mode: prepared
number of clients: 32
number of threads: 32
duration: 600 s
number of transactions actually processed: 1056430
latency average = 18.178 ms
tps = 1760.353143 (including connections establishing)
tps = 1760.467637 (excluding connections establishing)

real    10m0,289s
user    1m34,845s
sys     3m13,124s
postgres@u2004:/home/user$




 

воскресенье, 5 июля 2020 г.

Скрипт backup postgresql под windows

Автоматический перезапуск службы агента сервера 1С — скрипт + расписание

pg_verify_checksums.exe --pgdata=F:\PostgreSQL\11.7-5.1C\data\
pg_probackup checkdb ... || systemctl stop postgresql

@ECHO OFF
CHCP 1251>Nul
echo Начинаем архивирование!
echo Не закрывайте это окно, оно закроется само.
echo Окно можно свернуть.
echo Программы 1С не будут доступны до завершения.
SETLOCAL ENABLEDELAYEDEXPANSION
SET backup_data_dir=F:\back\
SET pg_bin_dir=F:\PostgreSQL\11.7-5.1C\bin\
SET PGHOST=localhost
SET PGPORT=5432
SET pg_user=postgres
SET PGPASSWORD=pass
REM SET pg_lst_db=psql.exe --username=%pg_user% --list --field-separator=^; --tuples-only --no-align
SET pg_lst_db=%pg_bin_dir%psql.exe --username=%pg_user% -A -t -c "SELECT datname FROM pg_database"
REM Если батник будет запускаться планировщиком при загрузке
REM для исключения повторных срабатываний в один день
REM FORFILES /p %backup_data_dir% /M *.PGDMP /D 0 >nul 2>&1
REM if not errorlevel 1 exit
REM Стопорим сервер 1с
CALL "C:\Program Files\1cv8\8.3.17.1386\bin\ragent.exe" -stop
REM Задержка
ping -n 16 localhost>Nul
REM SET PGBASES=(postgres template0 template1)
REM CD /D %pg_bin_dir%
REM Удаляем в папке backup_data_dir все файл старше DAY
SET DAY=5
forfiles /p %backup_data_dir% /m * /s /d -%DAY% /c "cmd /c del @path /q" >nul 2>&1
REM FOR /f "delims=; tokens=1" %%d IN ('!pg_lst_db!^|find /v "template0";^|find /v "template1";^|find /v "postgres";^|find /v "demo1"') DO (
REM echo %ERRORLEVEL%
FOR /f "delims=; tokens=1" %%d IN ('!pg_lst_db!^|find /v "template";^|find /v "postgres"') DO (
  SET file_name=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
  SET file_name=!file_name: =0!
  SET backup_file_name=%backup_data_dir%%%d-!file_name!.PGDMP
  SET log_file_name=%backup_data_dir%%%d-!file_name!.log
  SET pg_dmp_option=--clean --username=%pg_user% --format=custom --verbose --file=!backup_file_name! --dbname=%%d
  CALL %pg_bin_dir%pg_dump.exe !pg_dmp_option! 2>!log_file_name!
  SET ERROR=!ERRORLEVEL!
  REM echo !ERROR!
  IF !ERROR!==0 ECHO !file_name! Успешное создание резервной копии !backup_file_name! >> %backup_data_dir%\%%d.log
  IF NOT !ERROR!==0 ECHO !file_name! Ошибки при создании резервной копии базы данных !backup_file_name! >> %backup_data_dir%\%%d.log
)
REM Запускаем сервер 1с
CALL "C:\Program Files\1cv8\8.3.17.1386\bin\ragent.exe" -start

четверг, 25 июня 2020 г.

Установка 1С + postgresql под windows

Установка PostgreSQL, версия 10.5-24.1C windows 10

1. PostgreSQL. Версия 11.7-5.1C. Дистрибутив СУБД PostgreSQL для Windows (64-bit) одним архивом

Ставим на дополнительный SSD диск:
 F:\PostgreSQL\11.7-5.1C\

Обратить внимание, что если PostgreSQL установлен не по умолчанию, нужно добавить права
полный доступ для NETWORK SERVICE для папки установки (если изменен) или на папку с данными. Иначе после reboot PostgreSQL не будет запускаться!!! (В последних версиях исправлена?)




start → run → services.msc  



2. Необходимо пересоздать кластер с data_checksums

(Остановить сервер 1с если уже установлен)
Программы -> 1С:Предприятие 8(x86-64) -> Остановка сервера x86-64 (8.3.17.1386)

Программы -> PostgreSQL 11.5-19.1C(x64) -> psql к 'postgres'
Посмотреть базы:
postgres-# \l
Посмотреть размер баз:
postgres-# \l+

postgres=# SHOW data_checksums;
 data_checksums
----------------
 off
(1 row)


Сделать pg_dump, если есть базы от администратора:
Программы -> PostgreSQL 11.7-5.1C(x64) -> Command Prompt
F: 
cd "F:\PostgreSQL\11.7-5.1C\bin" 

pg_dump -p 5432 -U postgres -Fc -d demo -f F:/backup/demo.custom
pg_dump -p 5432 -U postgres -Fc -d demo1 -f F:/backup/demo1.custom

Остановим сервис от имени администратора:
Программы -> PostgreSQL 11.7-5.1C(x64) -> Stop service

Удалим кластер запуск от администратора
Программы -> PostgreSQL 11.7-5.1C(x64) -> Command Prompt 
#rd /s /q "c:\Program Files\PostgreSQL\10.5-24.1C\data"
rd /s /q "f:\PostgreSQL\11.7-5.1C\data"

Создание кластера (возможно \ - перенос удалить!):

"f:\PostgreSQL\11.7-5.1C\bin\initdb" --encoding=UTF8 -U "postgres" \
   -W -D "f:\PostgreSQL\11.7-5.1C\data" --auth-local peer --auth-host md5 \
   --data-checksums


Программы -> PostgreSQL 11.7-5.1C(x64) -> Редактировать postgresql.conf
 
Добавить в конец: 
  
# DB Version: 11
# OS Type: linux
# DB Type: oltp
# Total Memory (RAM): 16 GB
max_connections = 1000
shared_buffers = 512MB
temp_buffers = 256MB
work_mem = 256MB
effective_cache_size = 8GB
maintenance_work_mem = 1024MB
wal_buffers = 16MB
min_wal_size = 2GB
max_wal_size = 4GB
default_statistics_target = 100
#effective_io_concurrency = 2
seq_page_cost = 1.0
random_page_cost = 1.1
autovacuum = on
autovacuum_max_workers = 4
autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.01
autovacuum_analyze_scale_factor = 0.005
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
synchronous_commit = off
checkpoint_completion_target = 0.9
ssl = off
fsync = on
commit_delay = 1000
commit_siblings = 5
row_security = off
max_files_per_process = 10000
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
#log_min_duration_statement = 0
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
#log_autovacuum_min_duration = 0
#log_duration = on
#log_statement = all
log_destination = stderr
plantuner.fix_empty_table = 'on'
online_analyze.enable = on
online_analyze.table_type = 'temporary'
online_analyze.verbose = 'off'
max_replication_slots = 10
max_wal_senders = 10
wal_level = replica   

Сохранить.

Запустим сервис от имени администратора:
Программы -> PostgreSQL 11.7-5.1C(x64) -> Start service


Программы -> PostgreSQL 11.7-5.1C(x64) -> psql к 'postgres'

postgres=# SHOW data_checksums;
 data_checksums
----------------
 on
(1 row)


Восcтановим базы (если есть):
 
Программы -> PostgreSQL 11.7-5.1C(x64) -> Command Prompt
F: 
cd "F:\PostgreSQL\11.7-5.1C\bin" 

#dropdb --username postgres demo
createdb --username postgres -T template0 demo
pg_restore -d demo -p 5432 -U postgres -C F:/backup/demo.custom
#dropdb --username postgres demo1
createdb --username postgres -T template0 demo1
pg_restore -d demo1 -p 5432 -U postgres -C F:/backup/demo1.custom

Запустить сервер 1с
Программы -> 1С:Предприятие 8(x86-64) -> Запуск сервера x86-64 (8.3.17.1386) 


3. Ставим  Cервер 1С:Предприятия (64-bit) для Windows 8.3.15.1830 или
старше.

4. IP 6 отключаем

5. Технологический журнал не настраиваем.

6. При последней установке служба агента не запускалась
Удалить службу
sc delete "1C:Enterprise 8.3 Server Agent (x86-64)"

1C:Enterprise 8.3 Server Agent (x86-64) пока вход в систему не был переделан с системной учетной записью.


7. Настраиваем  pg_probackup

pg_probackup настройка автономного резервного копирования windows

Если не использум pg_probackup, нужно настроить pg_basebackup

PostgreSQL 10.5-24 настройка WAL архивирования windows
Резервное копирование кластера PostgreSQL pg_basebackup Windows
 
8. Настроить vacuum

Windows обслуживание баз PostgreSQL

В скрипте настроить путь и пароль:

REM Установка переменных окружения
SET PGBIN=C:\Program Files\PostgreSQL\10.5-24.1C\bin
SET PGUSER=postgres
SET PGPASSWORD=pass

11. Настроить backup в dump
Из статьи ниже просто взять скрипт
Резервное копирование базы PostgreSQL pg_dump под windows
Сделать свой скрипт на каждую базу в скрипте настроить:
Имя базы:
SET PGDATABASE=demo

SET PGBIN=C:\Program Files\PostgreSQL\10.5-24.1C\bin
SET PGHOST=localhost
SET PGPORT=5432
SET PGUSER=postgres
SET PGPASSWORD=pass

9. Сделать общий скрипт в планировщике

Вообще хорошо перед pg_dump
Остановить сервер 1С
"C:\Program Files\1cv8\8.3.13.1690\bin\ragent.exe" -stop
скрипт vacuum
скрипт dump на каждую базу ...
скрипт dump на каждую базу ...
После pg_dump
Запуск сервера 1С
"C:\Program Files\1cv8\8.3.13.1690\bin\ragent.exe" -start

Целесообразно настроить удаление старых копий
forfiles /P "d:\demo" /D -30 /C "cmd /c del @path /q"


10. Настройка web доступа
Установка Apache HTTP Server 64 on Microsoft Windows

Пересоздание кластера postgresql под windows

Остановить сервер 1с
Программы -> 1С:Предприятие 8(x86-64) -> Остановка сервера x86-64 (8.3.17.1386)

Программы -> PostgreSQL 11.5-19.1C(x64) -> psql к 'postgres
Посмотреть базы:
postgres-# \l
Посмотреть размер баз:
postgres-# \l+

postgres=# SHOW data_checksums;
 data_checksums
----------------
 on
(1 row)

Сделать pg_dump
Программы -> PostgreSQL 11.5-19.1C(x64) -> Command Prompt
pg_dump -p 5432 -U postgres -Fc -d demo -f F:/backup/demo.custom
pg_dump -p 5432 -U postgres -Fc -d demo1 -f F:/backup/demo1.custom

Остановим сервис от имени администратора:
Программы -> PostgreSQL 11.5-19.1C(x64) -> Stop service

Удалим кластер

#rd /s /q "c:\Program Files\PostgreSQL\10.5-24.1C\data"
rd /s /q "f:\PostgreSQL\11.5-19.1C\data"

Создание кластера (\ - знак переноса, возможно нужно убрать):

"f:\PostgreSQL\11.5-19.1C\bin\initdb" --encoding=UTF8 -U "postgres" \
 -W -D "f:\PostgreSQL\11.5-19.1C\data" --auth-local peer --auth-host md5 \
 --data-checksums 

Программы -> PostgreSQL 11.5-19.1C(x64) -> Редактировать postgresql.conf

# DB Version: 11
# OS Type: linux
# DB Type: oltp
# Total Memory (RAM): 16 GB
max_connections = 1000
shared_buffers = 512MB
temp_buffers = 256MB
work_mem = 256MB
effective_cache_size = 8GB
maintenance_work_mem = 1024MB
wal_buffers = 16MB
min_wal_size = 2GB
max_wal_size = 4GB
default_statistics_target = 100
#effective_io_concurrency = 2
seq_page_cost = 1.0
random_page_cost = 1.1
autovacuum = on
autovacuum_max_workers = 4
autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.01
autovacuum_analyze_scale_factor = 0.005
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
synchronous_commit = off
checkpoint_completion_target = 0.9
ssl = off
fsync = on
commit_delay = 1000
commit_siblings = 5
row_security = off
max_files_per_process = 10000
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
#log_min_duration_statement = 0
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
#log_autovacuum_min_duration = 0
#log_duration = on
#log_statement = all
log_destination = stderr
plantuner.fix_empty_table = 'on'
online_analyze.enable = on
online_analyze.table_type = 'temporary'
online_analyze.verbose = 'off'
max_replication_slots = 10
max_wal_senders = 10
wal_level = replica   

Сохранить.

Запустим сервис от имени администратора:
Программы -> PostgreSQL 11.5-19.1C(x64) -> Stop service


Восcтановим базы:
Программы -> PostgreSQL 11.5-19.1C(x64) -> Command Prompt
F:\PostgreSQL\11.7-5.1C\bin> далее > 
 
>dropdb --username postgres demo
>psql --username postgres -l 
>createdb --username postgres -T template0 demo
>pg_restore -d demo -p 5432 -U postgres -C F:/backup/demo.custom
>dropdb --username postgres demo1
>createdb --username postgres -T template0 demo1
>pg_restore -d demo1 -p 5432 -U postgres -C F:/backup/demo1.custom
 
Запустить сервер 1с
Программы -> 1С:Предприятие 8(x86-64) -> Запуск сервера x86-64 (8.3.17.1386) 

понедельник, 1 июня 2020 г.

multipath[3314]: sdb: can't store path info

Путь не найден

journalctl -xe
...
июн 01 11:23:58 acer multipath[4268]: sdb: can't store path info
июн 01 11:23:59 acer multipathd[588]: sdb: spurious uevent, path not found
июн 01 11:23:59 acer multipathd[588]: uevent trigger error
...

ll /dev/disk/by-id/ | grep sdb
lrwxrwxrwx 1 root root   9 июн  1 11:19 usb-Generic-_SD_MMC_MS_PRO_20120926571200000-0:0 -> ../../sdb


 cat /etc/multipath.conf
defaults {
    user_friendly_names yes
}

sudo nano  /etc/multipath.conf

defaults {
    user_friendly_names yes
}
blacklist {
    wwid 20120926571200000
}

Сохранить

sudo reboot

вторник, 12 мая 2020 г.

Установка stunnel для apache вебсервера 1С:Предпритие 8.3 Ubuntu 20.04 с авторизацией


 Установка  stunnel4 на сервере Ubuntu 20.04:

sudo apt install stunnel4 -y

Нам нужны пары сертификат/ключ для сервера и каждого клиента.
Для сервера:
sudo openssl genrsa -out /etc/stunnel/server-key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/server-key.pem -out /etc/stunnel/server-cert.pem -days 36500
##sudo su -c "cat /etc/stunnel/key.pem /etc/stunnel/cert.pem >> /etc/stunnel/stunnel.pem" 

Создадим пару для клиента client01:

sudo openssl genrsa -out /etc/stunnel/client01-key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/client01-key.pem -out /etc/stunnel/client01-cert.pem -days 36500
sudo su -c "cat /etc/stunnel/client01-cert.pem >> /etc/stunnel/clients.pem"
 

Файлы client01-cert.pem  client01-key.pem  server-cert.pem
скопируем на машину с клиентом client01 (windows)

Создадим еще пару для клиента client02:

sudo openssl genrsa -out /etc/stunnel/client02-key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/client02-key.pem -out /etc/stunnel/client02-cert.pem -days 36500
sudo su -c "cat /etc/stunnel/client02-cert.pem >> /etc/stunnel/clients.pem"

И т.д.

На сервере настриваем (ниже):accept = 4443 - порт на сервере который нужно открыть во внешнюю сеть или пробросить
connect = 127.0.0.1:80 - 80 порт вебсервера от которого строим туннель tls

sudo nano /etc/stunnel/stunnel.conf

chroot = /var/lib/stunnel4
pid = /stunnel4.pid
output = /stunnel.log
setuid = stunnel4
setgid = stunnel4
# performance tunning
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;Отключим отладочные режимы - 0
;debug = 7
#cert = /etc/stunnel/stunnel.pem
; Проверка сертификата. 0 - не проверять, 1 - проверять при наличии, 2 - проверять всегда, ...
verify = 2
cert = /etc/stunnel/server-cert.pem
key = /etc/stunnel/server-key.pem
CAfile = /etc/stunnel/clients.pem
#Полностью отключим уязвимые протоколы SSL версии 2 и 3.
options = NO_SSLv2
options = NO_SSLv3
options = NO_TLSv1
options = NO_TLSv1.1
ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384

[apache]
accept = 4443
connect = 127.0.0.1:80

Сохранить

Штатный запуск:

sudo su -c "echo 'ENABLED=1' >> /etc/default/stunnel4"

Можно проверить:

cat /etc/default/stunnel4
.....
ENABLED=1
==========================================
Можно просто:
sudo reboot
==========================================
или без перезагрузки:
sudo systemctl enable stunnel4.service
sudo systemctl start stunnel4.service
==========================================


sudo systemctl status stunnel4.service


Лог в chroot  /var/lib/stunnel4/stunnel.log

Установка  stunnel4 на клиенте (Windows):


---------------------------------------------------------------------------------------------------------------------------
Установка stunnel под windows
download stunnel
stunnel-5.56-win64-installer.exe
Все версии 32 и 64 здесь

1. Установить  stunnel-5.56-win64-installer.exe
(для 32 бит   stunnel-5.49-win32-installer.exe )


Подключаться к 1с будем  127.0.0.1:8080

К серверу  по внешнему ip 192.168.1.233:4443 через интернет.

2. Скопировать с сервера сертификат:
/etc/stunnel/stunnel.pem
в 
c:\Program Files (x86)\stunnel\config\stunnel.pem

3. Настройить stunnel.conf
(все строки можно удалить)

c:\Program Files (x86)\stunnel\config\stunnel.conf

cert = client01-cert.pem
key = client01-key.pem
CAfile = server-cert.pem
client = yes
; Проверка сертификата. 0 - не проверять, 1 - проверять при наличии, 2 - проверять всегда, ...
verify = 2
[apache]
accept = 127.0.0.1:8080
connect = 192.168.1.233:4443

Сохранить.

Есть ярлык, установить службу:

"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install

Есть ярлык, запустить службу:

"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start


Проверить:
http://localhost:8080/demo/ru_RU/ 


Прочие команды.

"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -stop
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -uninstall

==========================================
Альтернативный вариант с systemd не делаем!

sudo nano /lib/systemd/system/stunnel.service


[Unit]
Description=SSL tunnel
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
Alias=stunnel.target

[Service]
Type=forking
ExecStart=/usr/bin/stunnel /etc/stunnel/stunnel.conf
ExecStop=/usr/bin/pkill stunnel
WorkingDirectory=/etc/stunnel
TimeoutSec=600
Restart=always
PrivateTmp=false

Сохранить.


sudo systemctl enable stunnel.service
sudo systemctl start stunnel.service
sudo systemctl status stunnel.service

воскресенье, 10 мая 2020 г.

Установка stunnel для apache вебсервера 1С:Предпритие 8.3 Ubuntu 20.04

Stunnel + OpenVPN Server on Ubuntu 18.04
Авторизация для stunnel с помощью сертификатов openvpn

Установка  stunnel4 на сервере Ubuntu 20.04:

sudo apt install stunnel4 -y
sudo openssl genrsa -out /etc/stunnel/key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/key.pem -out /etc/stunnel/cert.pem -days 3650
sudo su -c "cat /etc/stunnel/key.pem /etc/stunnel/cert.pem >> /etc/stunnel/stunnel.pem" 

Фйайл /etc/stunnel/stunnel.pem скачаваем для установки на клиента

sudo chmod 600 /etc/stunnel/stunnel.pem
sudo rm /etc/stunnel/key.pem  /etc/stunnel/cert.pem 

На сервере настриваем (ниже):
accept = 4443 - порт на сервере который нужно открыть во внешнюю сеть или пробросить
connect = 127.0.0.1:80 - 80 порт вебсервера от которого строим туннель tls

sudo nano /etc/stunnel/stunnel.conf

chroot = /var/lib/stunnel4
pid = /stunnel4.pid
output = /stunnel.log
setuid = stunnel4
setgid = stunnel4
# performance tunning
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
#Отключим отладочные режимы - 0
#debug = 7
cert = /etc/stunnel/stunnel.pem
#Полностью отключим уязвимые протоколы SSL версии 2 и 3.
options = NO_SSLv2
options = NO_SSLv3
options = NO_TLSv1
options = NO_TLSv1.1
ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384

[apache]
accept = 4443
connect = 127.0.0.1:80

Сохранить



Штатный запуск:

sudo su -c "echo 'ENABLED=1' >> /etc/default/stunnel4"

Можно проверить:

cat /etc/default/stunnel4
.....
ENABLED=1
==========================================
Можно просто:
sudo reboot
==========================================
или без перезагрузки:
sudo systemctl enable stunnel4.service
sudo systemctl start stunnel4.service
==========================================


sudo systemctl status stunnel4.service


Лог в chroot  /var/lib/stunnel4/stunnel.log

Установка  stunnel4 на клиенте (Windows):


---------------------------------------------------------------------------------------------------------------------------
Установка stunnel под windows
download stunnel
stunnel-5.56-win64-installer.exe
Все версии 32 и 64 здесь

1. Установить  stunnel-5.56-win64-installer.exe
(для 32 бит   stunnel-5.49-win32-installer.exe )


Подключаться к 1с будем  127.0.0.1:8080

К серверу  по внешнему ip 192.168.1.233:4443 через интернет.

2. Скопировать с сервера сертификат:
/etc/stunnel/stunnel.pem
в 
c:\Program Files (x86)\stunnel\config\stunnel.pem

3. Настройить stunnel.conf
(все строки можно удалить)

c:\Program Files (x86)\stunnel\config\stunnel.conf

cert = stunnel.pem
client = yes
[apache]
accept = 127.0.0.1:8080
connect = 192.168.1.233:4443


Сохранить.

Есть ярлык, установить службу:

"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install

Есть ярлык, запустить службу:

"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start


Проверить:
http://localhost:8080/demo/ru_RU/ 


Прочие команды.

"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -stop
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -uninstall

==========================================
Альтернативный вариант с systemd не делаем!

sudo nano /lib/systemd/system/stunnel.service


[Unit]
Description=SSL tunnel
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
Alias=stunnel.target

[Service]
Type=forking
ExecStart=/usr/bin/stunnel /etc/stunnel/stunnel.conf
ExecStop=/usr/bin/pkill stunnel
WorkingDirectory=/etc/stunnel
TimeoutSec=600
Restart=always
PrivateTmp=false

Сохранить.


sudo systemctl enable stunnel.service
sudo systemctl start stunnel.service
sudo systemctl status stunnel.service

==========================================

суббота, 9 мая 2020 г.

Файловый backup 1c

1c_backup.bat

@echo off
REM скрипт архивирующий папку с базами 1с файлы *.1CD
REM BASEDIR путь к папке где лежат базы 1С , если русскими буквами имя папки DOS dir /x
REM SET BASEDIR=D:\1CBases
REM CALL c:\Apache24\bin\httpd.exe -k stop
SET BASEDIR=c:\V8
REM BACKUPDIR путь к папке куда будем складывать backup
SET BACKUPDIR=f:\backup
REM удаление архивов старше DAY дней
SET DAY=5
REM del /F /Q "%BACKUPDIR%"\
REM forfiles /p %BACKUPDIR% /m *.7z /s /d -%DAY% /c "cmd /c del @path /q"
forfiles /p %BACKUPDIR% /m * /s /d -%DAY% /c "cmd /c del @path /q"
REM PASSWORD пароль для архива
REM SET PASSWORD=VZZETcB1eItOc4HU1RQljWqSeymsM6ZVenvXObU1F5oKM3GLTr96K
REM пароль до 20 символов совместим с rar
SET PASSWORD=VZZETcB1eI
REM NAME имя файла с архивом
SET NAME=backup
SET datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%
SET datetimef=%datetimef: =0%
SET FILENAME=%BACKUPDIR%\%NAME%_%datetimef%.7z
SET LOG=%BACKUPDIR%\%NAME%_%datetimef%.log
REM CALL c:\7-zip\7za.exe a  %FILENAME% -mmt2 -mx1 -t7z -v2000m -bso1 %BASEDIR%\*\*.1CD -p%PASSWORD% >%LOG% 2>&1
CALL c:\7-zip\7za.exe a  %FILENAME% -mmt2 -mx1 -t7z -v2000m -bso1 %BASEDIR%\*\*.1CD >%LOG% 2>&1
REM CALL c:\Apache24\bin\httpd.exe -k start
REM cd f:\rclone
REM  rclone copy f:/backup webdav:backup_1c --progress --config rclone.conf




rclone sync f:/backup webdav:backup_1c --progress --config rclone.conf

rclone copy f:/backup webdav:backup_1c --progress --config rclone.conf

среда, 6 мая 2020 г.

Crypto-Pro CSP Release Ver:5.0. cryptcp.x64.exe windows

Отсоединенная подпись
cryptcp.x64.exe -sign -f sert.cer -der "Договор для подписи.doc"

cryptcp.x64.exe -sign -uMy -dn mail@example.com -der "Договор для подписи.doc" -detached

Присоединенная подпись

cryptcp.x64.exe -sign -f sert.cer -der "Договор для подписи.doc" "Договор для подписи.doc.p7s"

cryptcp.x64.exe -sign -uMy -dn mail@example.com -der "Договор для подписи.doc"

Проверка присоединенной подписи

cryptcp.x64.exe -verify "Договор для подписи.doc.sig"



bat файл для подписи

REM @echo off
REM Положить cryptcp.x64.exe c:\Apache24\bin\ (перечислено в PATH)
CD %~dp0
REM сryptcp.x64.exe -sign -uMy -dn mail@example.com -pin 12345 -der %1 -detached >> nul
REM cryptcp.x64.exe -sign -uMy -dn mail@example.com -pin 12345 -der %1 -detached
echo %1.sig
cryptcp.x64.exe -sign -uMy -dn mail@example.com -pin 12345 -der %1 %1.sig -detached


C:\Program Files\Crypto Pro\CSP>csptest -keyset -enum_cont -fqcn -verifyc
CSP (Type:80) v5.0.10005 KC1 Release Ver:5.0.11732 OS:Windows CPU:AMD64 FastCode:READY:DISABLED (RSA; ).
AcquireContext: OK. HCRYPTPROV: 198451600
\\.\Aktiv Rutoken lite 0\vu2020

воскресенье, 3 мая 2020 г.

Установка Apache с возможностью запуска нескольких экземпляров для разных версий сервера 1с

1. Установка сервера 1с на нестандартные порты

#Правим build.sh для установки web компоненты

nano build.sh

После строк:

mkdir /tmp/1ctmp/tmp
dpkg-deb -x /tmp/1ctmp/1c-enterprise83-common_*_amd64.deb /tmp/1ctmp/tmp
dpkg-deb -x 1c-enterprise83-server_*_amd64.deb /tmp/1ctmp/tmp

Добавить:

dpkg-deb -x 1c-enterprise83-ws_*_amd64.deb /tmp/1ctmp/tmp

Сохранить.

2. Устанавливаем  сервер 1с на нестандартные порты с web компонентой

Предположим что установлен дополнительный сервер
имя u2004 на порту 1741
u2004:1741
demo - имя базы в кластере 1с (нужно создать, вместо demo свое имя)


$ hostname
u2004

sudo apt-get install apache2 -y

#Описание:
cat /usr/share/doc/apache2/README.multiple-instances

#Подключаем worker

sudo apachectl -V | grep -i mpm
#Server MPM:     event

#Отключаем  mpm_event
sudo a2dismod mpm_event

#Подключаем worker 
sudo a2enmod mpm_worker

sudo service apache2 restart

sudo apachectl -V | grep -i mpm
#Server MPM:     worker

#файлы /etc/apache2/ будут использоваться в дальнейшем в качестве шаблона для
#для других экземпляров, поэтому

#Остановим сервер:

sudo systemctl stop apache2

#Выключим автозапуск:

sudo systemctl disable apache2


#Создадим 1 экземпляр apache web1


sudo sh /usr/share/doc/apache2/examples/setup-instance web1

#Запустим:
sudo systemctl start apache2@web1

#Поставим автозапуск:
sudo systemctl enable apache2@web1

Проверим работу:
http://u2004 

#Подключаем базу demo в кластере на не стандартных портах 1с u2004:1741

#Создаем директорию для vrd-файла:
sudo mkdir -p /var/www/ib/demo

#А также файл конфигурации Apache:

sudo touch /etc/apache2-web1/conf-available/demo.conf

#Переходим в каталог с утилитой публикации веб-клиента (нестандартное расположение для того сервера, который установили):

cd /opt/1C/v8.3.16.1148/x86_64/


demo - имя базы в кластере 1с

Запускаем утилиту публикации базы 1с:
sudo ./webinst -apache24 -wsdir demo -dir '/var/www/ib/demo' -connstr 'Srvr="u2004:1741";Ref="demo";' -confPath /etc/apache2-web1/conf-available/demo.conf

Где /var/www/ib/demo - директория где будет создан vrd-файл,  

demo - имя ИБ,

u2004:1741 - адрес сервера 1С:Предпрятие на нестандартном порту 1741

/etc/apache2-web1/conf-available/demo.conf - путь до конфигурационного файла Apache.

#Публикация выполнена

#Проверяем модуль wsap24.so должен быть правильно расположен, в данном случае #нестандартный путь:
 
cat /etc/apache2-web1/conf-available/demo.conf
#LoadModule _1cws_module "/opt/1C/v8.3.16.1148/x86_64/wsap24.so"



#Подключаем конфигурацию:
sudo a2enconf-web1 demo

#Отключаем конфигурацию:
#sudo a2disconf-web1 demo #не сейчас

#Перезагрузка Apache:
sudo systemctl reload apache2@web1.service

sudo systemctl restart apache2@web1.service

sudo systemctl status apache2@web1.service


#Смотрим:

http://u2004/demo/ru_RU/

grep "_1cws_module" -rI /etc/apache2-web1
/etc/apache2-web1/conf-available/demo.conf:LoadModule _1cws_module "/opt/1C/v8.3.16.1148/x86_64/ wsap24.so"


По аналогии можем подключать другие базы.
Но перед запуском следующего экзепляра не забудьте
изменить порты.

суббота, 2 мая 2020 г.

Запуск нескольких экземпляров Apache для разных версий сервера 1с

How to run two instances of apache on same system (Ubuntu)
RunningMultipleApacheInstances
пример настройки виртуальных хостов

Задача есть сервер с нескольким кластерами 1с разных версий.
Нужно запустить несколько экземпляров Apache (на разных портах) и опубликовать базы 1с.

Первый сервер 1с на стандартных портах и путях (стандартная установка)

$ dpkg -l | grep 1c
ii  1c-enterprise83-common               8.3.17-1386                       amd64        1C:Enterprise 8.3 common components
ii  1c-enterprise83-server               8.3.17-1386                       amd64        1C:Enterprise 8.3 server for Linux
ii  1c-enterprise83-ws                   8.3.17-1386                       amd64        1C:Enterpise 8.3 Web-services components for Linux



$ hostname
u2004
#sudo ufw disable

sudo apt-get install apache2 -y

#Описание:
cat /usr/share/doc/apache2/README.multiple-instances


#Подключаем worker

sudo apachectl -V | grep -i mpm
#Server MPM:     event

#Отключаем  mpm_event
sudo a2dismod mpm_event

#Подключаем worker 
sudo a2enmod mpm_worker

sudo service apache2 restart

sudo apachectl -V | grep -i mpm
#Server MPM:     worker

#файлы /etc/apache2/ будут использоваться в дальнейшем в качестве шаблона для
#для других экземпляров, поэтому

#Остановим сервер:

sudo systemctl stop apache2



#Выключим автозапуск:

sudo systemctl disable apache2


#Создадим 1 экземпляр apache web1


sudo sh /usr/share/doc/apache2/examples/setup-instance web1

#Запустим:
sudo systemctl start apache2@web1

#Поставим автозапуск:
sudo systemctl enable apache2@web1

http://u2004 

#Подключаем базу demo в кластере на стандартных портах 1с

#Создаем директорию для vrd-файла:
sudo mkdir -p /var/www/ib/demo

#А также файл конфигурации Apache:

sudo touch /etc/apache2-web1/conf-available/demo.conf

#Переходим в каталог со утилитой публикации веб-клиента (стандартное расположение):

cd /opt/1C/v8.3/x86_64/

Запускаем утилиту публикации базы 1с:
sudo ./webinst -apache24 -wsdir demo -dir '/var/www/ib/demo' -connstr 'Srvr="u2004";Ref="demo";' -confPath /etc/apache2-web1/conf-available/demo.conf

Где /var/www/ib/demo - директория где будет создан vrd-файл,  
demo - имя ИБ,
u2004 - адрес сервера 1С:Предпрятие,
/etc/apache2-web1/conf-available/demo.conf - путь до конфигурационного файла Apache.

#Публикация выполнена

#Проверяем модуль wsap24.so должен быть правильно расположен, в данном случае #стандартный путь:
 
cat /etc/apache2-web1/conf-available/demo.conf
#LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"



#Подключаем конфигурацию:
sudo a2enconf-web1 demo

#Отключаем конфигурацию:
#sudo a2disconf-web1 demo #не сейчас

#Перезагрузка Apache:
sudo systemctl reload apache2@web1.service

sudo systemctl restart apache2@web1.service

sudo systemctl status apache2@web1.service


#Смотрим:

http://u2004/demo/ru_RU/

grep "_1cws_module" -rI /etc/apache2-web1
/etc/apache2-web1/conf-available/demo.conf:LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"


По аналогии можем подключать другие базы


=================================================================

#Установка второго сервера 1c
 
git clone https://gitlab...

cd setup-1c/scripts

./dl-1c-8.3.16.1148.sh

nano setup-add.sh

#Корректируем:

#!/bin/bash
set -e
echo "Предполагаем что на стандартных портах установлен сервер 1с и зависимости"
echo "Создание множества серверов 1с на заданных портах с шагом 100 начиная с 1700"
export VERSION=8.3.16.1148
# ./build-add.sh имя порт
  ./build-add.sh srv1 1700
# ./build-add.sh srv2 1800
# ./build-add.sh srv3 1900
# ./build-add.sh srv4 2000
# ./build-add.sh srv5 2100
# ./build-add.sh srv6 2200
# ./build-add.sh srv7 2300
# ./build-add.sh srv8 2400
# ./build-add.sh srv9 2500

systemctl list-unit-files | grep 8.3.

#Сохранить.
./setup-add.sh
.....
Created symlink /etc/systemd/system/multi-user.target.wants/srv1-8.3.16.1148.service → /etc/systemd/system/srv1-8.3.16.1148.service.
Created symlink /etc/systemd/system/multi-user.target.wants/srv1-8.3.16.1148-ras.service → /etc/systemd/system/srv1-8.3.16.1148-ras.service.
srv1-8.3.16.1148
PORT=1740
REGPORT=1741
RANGE=1760:1790
RASPORT=1745
sudo systemctl status srv1-8.3.16.1148.service
sudo systemctl status srv1-8.3.16.1148-ras.service
sudo systemctl stop srv1-8.3.16.1148-ras.service
sudo systemctl stop srv1-8.3.16.1148.service
sudo systemctl start srv1-8.3.16.1148.service
sudo systemctl start srv1-8.3.16.1148-ras.service
----------------------------------------
srv1-8.3.16.1148-ras.service           enabled         enabled
srv1-8.3.16.1148.service               enabled         enabled

sudo ufw enable


#Загрузим базу.

#Создадим 2 экземпляр apache web2


sudo sh /usr/share/doc/apache2/examples/setup-instance web2

#Изменим порт на 81:

sudo nano /etc/apache2-web2/ports.conf 

#Listen 80
Listen 81


Сохранить.

-------------------------------------
не делаем, если не используем виртуальные сервера!!!
 
http://u2004:81/test/ru_RU/
#Изменим порт на 81: 

#sudo nano /etc/apache2-web2/sites-available/000-default.conf 

#<VirtualHost *:80>
<VirtualHost *:81> 
-------------------------------------


Сохранить.

#Запустим:
sudo systemctl start apache2@web2

#Поставим автозапуск:
sudo systemctl enable apache2@web2

http://u2004:81/ 
  

#Подключаем базу test в кластере на не стандартных портах 1с

#Создаем директорию для vrd-файла:
sudo mkdir -p /var/www/ib/test

#А также файл конфигурации Apache:

sudo touch /etc/apache2-web2/conf-available/test.conf

#Переходим в каталог со утилитой публикации веб-клиента (нестандартное расположение):

cd /opt/1C/v8.3.16.1148/x86_64/

Запускаем утилиту публикации базы 1с:
sudo ./webinst -apache24 -wsdir test -dir '/var/www/ib/test' -connstr 'Srvr="u2004:1741";Ref="test";' -confPath /etc/apache2-web2/conf-available/test.conf

Где /var/www/ib/test - директория где будет создан vrd-файл,  
test - имя ИБ,
u2004:1741 - адрес сервера 1С:Предпрятие,
/etc/apache2-web2/conf-available/test.conf - путь до конфигурационного файла Apache.

#Публикация выполнена

#Проверяем модуль wsap24.so должен быть правильно расположен, в данном случае #стандартный путь:
 
cat /etc/apache2-web2/conf-available/test.conf
LoadModule _1cws_module "/opt/1C/v8.3.16.1148/x86_64/wsap24.so"

#Подключаем конфигурацию:
sudo a2enconf-web2 test

#Отключаем конфигурацию:
#sudo a2disconf-web2 test #не сейчас

#Перезагрузка Apache:
sudo systemctl reload apache2@web2.service

sudo systemctl restart apache2@web2.service

sudo systemctl status apache2@web2.service


#Смотрим:

http://u2004:81/test/ru_RU/

grep "_1cws_module" -rI /etc/apache2-web2
/etc/apache2-web2/conf-available/test.conf:LoadModule _1cws_module "/opt/1C/v8.3.16.1148/x86_64/wsap24.so"


По аналогии можем подключать другие базы 

===================================================================== 

Аналогично делаем другие экземпляры 

=====================================================================