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