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

Установка 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

Комментариев нет:

Отправка комментария