четверг, 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