pg_dump -p 5432 --username=postgres --clean --format=custom --file=D:\bgu-2020-10-16.dump --dbname=bgu
2exUbmJ6HhJJaFn
Пишу для себя, чтобы не забыть как делал. 95 % рабочее. На комментарии отвечаю, когда увижу.
pg_dump -p 5432 --username=postgres --clean --format=custom --file=D:\bgu-2020-10-16.dump --dbname=bgu
2exUbmJ6HhJJaFn
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
Выгрузка файла на 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. Убрать консоль при загрузке:
На компьютере откуда будем копировать архивы по маске
В папке с архивами создать
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 сервер
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)
Выгрузим существующие базы в 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
Выгрузим существующие базы в 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\
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
Для запуска можно сделать скрипт 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
ЗиК_тест:(Удалить)
Сервер: 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;"