Обслуживание postgresql для 1с windows через cmd

ANALYZE (БЕЗ VACUUM!) — каждый день (Например, утром, еще до начала работы пользователей в 1С).REINDEX – Делаем раз в неделю для профилактики (Не обязательно, если индексы не «распухают» и делаете часто Dump / Restore).VACUUM  + FULL + ANALYZE – Раз в неделю (лучше всего делать в конце рабочей недели например: пятница). Так выполняя эти простые действия … Обслуживание базы данных 1C postgreSQL (windows) cmd (bat) скрипты Читать полностью »

ANALYZE (БЕЗ VACUUM!) — каждый день (Например, утром, еще до начала работы пользователей в 1С).
REINDEX – Делаем раз в неделю для профилактики (Не обязательно, если индексы не «распухают» и делаете часто Dump / Restore).
VACUUM  + FULL + ANALYZE – Раз в неделю (лучше всего делать в конце рабочей недели например: пятница).

Так выполняя эти простые действия по обслуживанию баз данных в PostgreSQL, Вы обеспечите стабильную работу пользователей в 1С, улучшите производительность и исключите возможные ошибки.


Каждый день

@echo off
for /f “delims=.” %%i in (‘wmic.exe OS get LocalDateTime ^| find “.”‘) do set sDateTime=%%i
set f_year=%sDateTime:~0,4%
set f_month=%sDateTime:~4,2%
set f_day=%sDateTime:~6,2%
set f_hour=%sDateTime:~8,2%
set f_min=%sDateTime:~10,2%
set f_sec=%sDateTime:~12,2%

set f_name_log=F:support_logspostgresql_%f_year%.%f_month%.%f_day%

@echo on
echo start: %f_year%.%f_month%.%f_day% – %f_hour%:%f_min%:%f_sec% >>%f_name_log%_vacuum.log

SET PGPASSWORD=**********

“C:Program FilesPostgreSQL13.3-2.1Cbinvacuumdb.exe” –dbname KAMIN –host 127.0.0.1 –port 5432 –username postgres –echo –analyze >>%f_name_log%_vacuum.log

echo end: %f_year%.%f_month%.%f_day% – %f_hour%:%f_min%:%f_sec% >>%f_name_log%_vacuum.log


Раз в неделю

set f_name_log=Z:support_logsKAMIN_%f_year%.%f_month%.%f_day%

@echo on
echo start: %f_year%.%f_month%.%f_day% – %f_hour%:%f_min%:%f_sec% >>%f_name_log%_vacuum.log

SET PGPASSWORD=**********

C:Program FilesPostgresPro12binvacuumdb.exe” –dbname KAMIN –host 127.0.0.1 –port 5432 –username postgres –echo –full –analyze >>%f_name_log%_vacuum.log

echo end: %f_year%.%f_month%.%f_day% – %f_hour%:%f_min%:%f_sec% >>%f_name_log%_vacuum.log

echo start: %f_year%.%f_month%.%f_day% – %f_hour%:%f_min%:%f_sec% >>%f_name_log%_reindex.log

C:Program FilesPostgresPro12binreindexdb.exe” –dbname KAMIN –host 127.0.0.1 –port 5432 –username postgres –echo >>%f_name_log%_reindex.log

echo end: %f_year%.%f_month%.%f_day% – %f_hour%:%f_min%:%f_sec% >>%f_name_log%_reindex.log


Z:support_logsKAMIN – путь для хранения логов

********** – пароль к базе данных

C:Program FilesPostgresPro12 – путь до установленной postgres

KAMIN – имя обслуживаемой базы

1c postgres maintenance and backup for windows


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

@echo off
chcp 65001 > nul
set E1C_RAS=localhost:3545
set E1C_RAC=C:Program Files1cv8currentbinrac.exe
set DB_SERVER=localhost:3541
set DB_NAME=1C_DATABASE
set DB_USER=1C_ADMINISTRATOR
set DB_PWD=1C_PASSWORD
set PGUSER=PG_ADMINISTRATOR
set PGPASSWORD=PG_PASSWORD
set PG_BACKUP_DIR=F:PG_Backup
set DATETIME=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2% %TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
set DUMPFILE=%DB_NAME% %DATETIME%.backup
set DUMPPATH=«%PG_BACKUP_DIR%%DUMPFILE%«
echo # Установить блокировку базы и завершить все сеансы
call deployka session kill -ras %E1C_RAS% -rac «%E1C_RAC%« -db «%DB_NAME%« -db-user «%DB_USER%« -db-pwd «%DB_PWD%« -lockmessage «Резервное копирование« -lockuccode backup
echo # Тестирования и исправления информационной базы:
echo — реструктуризация таблиц -Rebuild
echo — реиндексация таблиц -ReIndex
echo — сжатие таблиц -IBCompression
echo — пересчет итогов -RecalcTotals
call 1cv8 DESIGNER /S %DB_SERVER% /IBName «%DB_NAME%« /N «%DB_USER%« /P «%DB_PWD%« /IBCheckAndRepair -Rebuild -ReIndex -IBCompression -RecalcTotals /UC backup /DisableStartupMessages /DisableStartupDialogs
echo # Очистка и анализ базы данных
call vacuumdb —full —analyze —dbname=«%DB_NAME%« —username=«%PGUSER%« —no-password —echo
echo # Реиндексация базы данных
call reindexdb —dbname=«%DB_NAME%« —username=«%PGUSER%« —no-password —echo
echo # Резервное копирование
call pg_dump —file=%DUMPPATH% —format=custom —blobs —dbname=«%DB_NAME%« —username=«%PGUSER%« —no-password
echo # Снять блокировку базы
call deployka session unlock -ras %E1C_RAS% -rac «%E1C_RAC%« -db «%DB_NAME%« -db-user «%DB_USER%« -db-pwd «%DB_PWD%«
echo # Удаление старых резервных копий
forfiles /p «%PG_BACKUP_DIR%« /S /D -30 /C «cmd /c del /f /a /q @file«


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

@echo off
chcp 65001 > nul
rem %1 — полный номер версии 1С:Предприятия
rem %2 — первые две цифры номеров портов. Для портов 1540,1541,1560:1591 — это цифра 15
set SrvUserName=.USR1CV8
set SrvUserPwd=1C_WINDOWS_PASSWORD
set CtrlPort=%240
set AgentName=localhost
set RASPort=%245
set SrvcName=«1C:Enterprise 8.3 Remote Server %CtrlPort% %1«
set BinPath=««C:Program Files1cv8%1binras.exe« cluster —service —port=%RASPort% %AgentName%:%CtrlPort%«
set Desctiption=«Cервер администрирования 1С:Предприятия 8.3. Параметры: %1, %CtrlPort%, %RASPort%«
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption%


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

@echo off
chcp 65001 > nul
rem %1 — полный номер версии 1С:Предприятия
rem %2 — первые две цифры номеров портов. Для портов 1540,1541,1560:1591 — это цифра 15
rem %3 — каталог с данными реестра кластера
set SrvUserName=.USR1CV8
set SrvUserPwd=1C_WINDOWS_PASSWORD
set RangePort=%260:%291
set BasePort=%241
set CtrlPort=%240
set SrvcName=«1C:Enterprise 8.3 Server Agent %CtrlPort% %1«
set BinPath=««C:Program Files1cv8%1binragent.exe« -srvc -agent -regport %BasePort% -port %CtrlPort% -range %RangePort% -d «%~3« -debug«
set Desctiption=«Агент сервера 1С:Предприятия 8.3. Параметры: %1, %CtrlPort%, %BasePort%, %RangePort%«
if not exist «%~3« mkdir «%~3«
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption% depend= Dnscache/Tcpip/lanmanworkstation/lanmanserver


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

@echo off
chcp 65001 > nul
rem %1 — полный номер версии 1С:Предприятия
rem %2 — первые две цифры номеров портов. Для портов 1540,1541,1560:1591 — это цифра 15
set CtrlPort=%240
set SrvcName=«1C:Enterprise 8.3 Remote Server %CtrlPort% %1«
sc stop %SrvcName%
sc delete %SrvcName%


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

@echo off
chcp 65001 > nul
rem %1 — полный номер версии 1С:Предприятия
rem %2 — первые две цифры номеров портов. Для портов 1540,1541,1560:1591 — это цифра 15
set SrvcName=«1C:Enterprise 8.3 Server Agent %240 %1«
sc stop %SrvcName%
sc delete %SrvcName%

Здравствуйте.

Хочу сделать автоматическое обслуживание базы 1С.

Сохранить в .cmd файл и добавить в планировщик задач.

Не могу найти рабочий скрипт для этого.

Вот есть такой экземпляр, но какую базу он будет обслуживать, все что есть в postgresql?

Поделитесь пожалуйста рабочим вариантом. Слышал что нужно его выполнять:

ANALYZE (без VACUUM)    каждый день утром

REINDEX    1 раз в неделю

VACUUM+FULL+ANALYZE    1 раз в неделю (на выходных)

echo off

for /f «delims=.» %%i in (‘wmic.exe OS get LocalDateTime ^| find «.»‘) do set sDateTime=%%i

set f_year=%sDateTime:~0,4%

set f_month=%sDateTime:~4,2%

set f_day=%sDateTime:~6,2%

set f_hour=%sDateTime:~8,2%

set f_min=%sDateTime:~10,2%

set f_sec=%sDateTime:~12,2%

set f_name_log=H:logssqlpostgresql_%f_year%.%f_month%.%f_day%

echo on

echo start: %f_year%.%f_month%.%f_day% — %f_hour%:%f_min%:%f_sec% >>%f_name_log%_vacuum.log

SET PGPASSWORD=*****

«C:Program FilesPostgreSQL 1C9.6binvacuumdb.exe» —dbname postgres —host 127.0.0.1 —port 5432 —username postgres —echo —full —analyze >>%f_name_log%_vacuum.log

echo end: %f_year%.%f_month%.%f_day% — %f_hour%:%f_min%:%f_sec% >>%f_name_log%_vacuum.log

echo start: %f_year%.%f_month%.%f_day% — %f_hour%:%f_min%:%f_sec% >>%f_name_log%_reindex.log

«C:Program FilesPostgreSQL 1C9.6binreindexdb.exe» —dbname postgres —host 127.0.0.1 —port 5432 —username postgres —echo >>%f_name_log%_reindex.log

echo end: %f_year%.%f_month%.%f_day% — %f_hour%:%f_min%:%f_sec% >>%f_name_log%_reindex.log

PostgreSQL напрямую «из коробки» применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблицу сразу. Если нужны блокировки на уровне записей, включаем в 1С режим управляемых блокировок и прописываем их в конфигурации ручками. Вывод: необходимо скачать специальный дистрибутив с сайта 1С или взять на диске ИТС.

Установка

Сама установка особых затруднений не вызывает, обратить внимание нужно на правильную инициализацию базы данных, а именно настройку локали, изменить потом это можно только повторной начальной инициализацией. Например, база 1С с украинскими региональными установками в СУБД с установленной русской локалью не загрузится. Да и проблемы с сортировкой потом не нужны. Поэтому делаем init в соответствии с нужным языком.

Для русского языка

initdb —locale=ru_RU.UTF-8 —lc-collate=ru_RU.UTF-8 —lc-ctype=ru_RU.UTF-8 —encoding=UTF8 -D /db/postgresql

Для украинского языка

initdb —locale=uk_UA.UTF-8 —lc-collate=uk_UA.UTF-8 —lc-ctype=uk_UA.UTF-8 —encoding=UTF8 -D /db/postgresql

где /db/postgresql ваш каталог данных PostgreSQL. Кодировка, конечно же, UTF-8.

Подробный вариант пересоздания кластера

1.Необходимо выдать полные права на папку в которую мы установили PostgreSQL, обычно это C:Program FilesPostgreSQL

2.Из под админских прав запускаем cmd. Если это делаете в win7, то запускаем от Администратора.

3.Создаем папку где будет храниться кластер. Например d:postgredata.

md d:postgredata

4.Проводим инициализацию кластера вручную с указанием пути где он будет находиться.

“C:Program FilesPostgreSQL9.1.2-1.1Cbininitdb.exe” -D d:postgredata —locale=Russian_Russia —encoding=UTF8 -U postgres

5.Удаляем службу PostgreSQL, которая была установлена в ходе установки.

sc delete pgsql-9.1.2-1.1C-x64

Где pgsql-9.1.2-1.1C-x64 – Это название службы. Если не знаете название точно, можно посмотреть свойствах службы “PostgreSQL Database Server…” (Пуск – Панель управления – Администрирование – Службы )

6.Создаем новый сервис с указанием нашего кластера

“C:Program FilesPostgreSQL9.1.2-1.1Cbinpg_ctl” register -N pgsql -U postgresql -P пароль -D d:/postgredata

7.Теперь заходим в службы. Пуск – Панель управления – Администрирование – Службы и стартуем нашу службу.

Ошибка СУБД: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (WIN1251).

HINT: Use the same encoding as in the template database, or use template0 as template.

Вы выбрали неправильную локаль при установке СУБД (WIN1251) для сервера и клиента, нужно изменить на UTF-8 в конфигурации или переустановить СУБД со следующими параметрами:

Внимание при установке НЕ выбирайте локаль Настройки ОС, выбирайте из списка Russian, Russia

Настройка PostgreSQL

Следует помнить о рекомендации 1С не использовать в запросах конструкции ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ и заменять его, используя, например, комбинацию из нескольких левых соединений. Известна также проблема с потерей производительности в запросах, где применяется соединение с виртуальной таблицей СрезПоследних, к ней рекомендуется делать отдельные запросы и сохранять результаты во временных таблицах.

Настройка конфигурации производится редактированем файла postgresql.conf.

Наиболее важные параметры

effective_cache_size = 0,5 от ёмкости RAM

fsync = off отключаем сброс на диск после каждой транзации (Внимание! Применять только при использовании надежного UPS, есть опасность потери данных при неожиданном отключении)

synchronous_commit = off отключаем синхронную запись в лог (риски теже, что и у fsync)

wal_buffers = 0,25 от ёмкости RAM

После настройки не забываем выполнить перезапуск службы:

service postgresql restart

Настройка сети

Для подключения клиентов 1С к серверу извне и работы сервера баз данных, на файрволе, должны быть открыты следующие порты:

Агент сервера (ragent) & tcp:1540 Главный менеджер кластера (rmngr) & tcp:1541 Диапазон сетевых портов, для динамического распределения рабочих процессов & tcp:1560&1591, tcp:5432 & Postgresql. Создадим правило через стандартный интерфейс, либо с помощью команды:

netsh advfirewall firewall add rule name=»1Cv8-Server» dir=in action=allow protocol=TCP localport=1540,1541,5432,1560-1590 enable=yes profile=ANY remoteip=ANY interfacetype=LAN

Теперь с другого компьютера мы спокойно запускаем клиент 1С:Предприятия, добавляем существующую информационную базу newdb. Не забываем про лицензии, программной / аппаратной защиты. 

Резервное копирование

Создание дампа базы данных делаем командой

su postgres -c ‘pg_dump -U postgres -Fc -Z9 -f baza1.sql baza1’

Восстановление из дампа

su postgres -c ‘pg_restore -U postgres -c -d baza1 -v baza1.sql’

Периодическое обслуживание

Рекомендуется настроить AVTO VACUUM в файле конфигурации. Но не пренебрегаем и запуском через планировщик принудительной команды.

su postgres -c ‘/usr/bin/vacuumdb —dbname=$i —analyze —full —quiet’

Просмотр активности PostgreSQL

Иногда полезно видеть чем сейчас занимается сервер. Поможет такая конструкция:

watch -n 1 ‘ps auxww | grep ^postgres’

Самый ценный ресурс в нашей жизни — время, поскольку он не возобновляем. И вот с целью экономии этого ресурса предлагаю быстрое, доступное и безопасное решение проблемы обслуживания информационных баз PostgreSQL на платформе Windows средствами программы 1С-Обновлятор от Владимира Милькина.

Итак, начнем. В соответствии с рекомендациями лучших базоведов обслуживать базы будем по следующей схеме:

  • ежедневное обслуживание — делаем vacuum analyze перед началом рабочего дня, но после ночного резервного копирования. Так как эта операция безобидная, то блокировать и выгонять пользователей из ИБ не будем, не беда, если кто-то в это время захочет поработать. У меня эта операция начинается в 5:00 утра, кроме воскресенья. Само собой разумеется, что все действия журналируются, и по окончании операции будет сформировано письмо системному администратору.
  • еженедельное обслуживание в ночь с субботы на воскресенье — делаем vacuum full и reindex. Поскольку эта операция серьезная, перед началом нужно сделать следующее:
    • завершим все текущие сеансы пользователей;
    • заблокируем новые сеансы и регламентные задания;
    • сделаем резервную копию ИБ.
  • По окончании vacuum full и reindex все разблокируем и отошлем отчет с логом по почте.

Подготовительные настройки

Делаем эти настройки, если еще не сделали ранее:

  1. Устанавливаем 1С Обновлятор

  2. Покупаем и активируем лицензию. В бесплатной версии вы не сможете произвести пакетную обработку больше трех ИБ, не будут работать уведомления и запуск задач по расписанию. Очень рекомендую купить лицензию, она стоит недорого.

  3. Настраиваем уведомления: Настройки программы → Уведомления

  1. Поскольку скрипт vacuum_full_reindex предполагает резервное копирование, для каждой ИБ, которая будет обслуживаться, нужно настроить параметры архивирования. Для этого во вкладке «Базы» нужно сделать следующее:
  • встаньте на нужную базу, откройте свойства выделенной базы кнопкой «Свойства базы»;
  • в открывшемся окне свойств базы во вкладке «»Настройка» и в подвкладке «Общие» в строке «»СУБД» нажмите на ссылку «<выбрать сервер…>.»
  • при необходимости добавьте сервер, введите его параметры
  • в окне свойств базы во вкладке «Настройка» и в подвкладке «Архивация» в группе «Куда» настройте путь для архивации этой базы, в группе «Что» поставте галочку «Включить sql архив», параноики могут поставить галочку «Дополнительно делать dt выгрузку»
  1. Параметры архивирования необходимо настроить для каждой ИБ, которую вы будете обслуживать.

Настройки скриптов обслуживания

  1. Переходим во вкладку «Скрипты» и создаем скрипт vacuum_analyze, копируем код. Не забываем прописать в PGBIN — путь до вашего PostgreSQL, а также логин и пароль к БД. Должно получиться примерно так:

  1. Не забываем выбрать базы для запуска и затем сохранится. Для особо ленивых есть кнопочка «Перенести сюда отметки из основного списка». Это просто шедевр, я без иронии, очень удобно, особенно если у вас около полусотни ИБ.

  1. Аналогично создаем и сохраняем скрипт «vacuum_full_reindex». Не забываем поставить галочки «Делать резервную копию» и «Разблокировать»

Настройка запуска по расписанию

  1. Создаем задачу «Очистка баз ежедневная» примерно с такими параметрами. В строке «Операция» в выпадающем списке выбираем «Запуск скрипта» и выбираем нужный скрипт.

  1. Аналогично создаем задачу «Очистка и индексация еженедельная» с такими параметрами.

В конечном итоге будем иметь следующее:

Отчеты и уведомления

Если уведомления настроены, то по окончании работы скрипта будет высылаться письмо примерно вот такого содержания:

Удачи

Комментарии

Автор статьи: технический руководитель проектов внедрения 1С:ERP Внедренческого центра «Раздолье» Дмитрий Малышев.

Введение

pgAdmin— это интерфейс для администрирования баз данных PostgreSQL, в моём понимании это аналог MS SQL Management Studio. Ставится pgAdmin отдельно от PostgreSQL. Инструкцию установки найдите, пожалуйста, в интернет поисковиках. В данной инструкции будет описано как с помощью pgAdmin, bat-файлов и Планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

Открытие pgAdmin

Через пуск или в проводнике открываем приложение.

«C:Program FilespgAdmin 4v6pgAdmin4.ico

«Вводим пароль доступа (за дается ранее пользователем).

Откроется интерфейс управления базами данных.

Создание резервной копии

Рассмотрим создание резервной копии из pgAdmin и командным bat-файлом.

2.1. С помощью pgAdmin

Выбираем базу в дереве, правой кнопкой мыши открываем контекстное меню, где выбираем создание резервной копии/Backup… Указываем полный путь для сохранения копии, формат Custom и жмем [Создать / Create].

***

***

2.2. С помощью командного файла *.bat

Запускаем двойным кликом мыши командный файл backup_pdadmin_UH_IMD_everyday.bat, в котором уже прописан вызов архиватора формат и путь файла копии.

Копии сохраняются сюда.

Содержимое командного файла:

REM СОЗДАНИЯ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ POSTGRESQL

CLS

ECHO OFF

CHCP 1251

REM Установка переменных окружения

SET PGDATABASE=IMD_UH

SET PGHOST=localhost

SET PGPORT=5432

SET PGUSER=postgres

SET PGPASSWORD=ЗДЕСЬ_УКАЖИТЕ_ПАРОЛЬ_для_пользователя_postgres

REM Формирование имени файла резервной копии и файла-отчета

SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%

SET DUMPFILE=%PGDATABASE% %DATETIME%.backup

SET LOGFILE=%PGDATABASE% %DATETIME%.log

SET DUMPPATH=»E:UH_IMDBackup%DUMPFILE%»

SET LOGPATH=»E:UH_IMDBackup%LOGFILE%»

REM Создание резервной копии

IF NOT EXIST Backup MD Backup

CALL «C:Program FilespgAdmin 4v6runtimepg_dump.exe» —format=custom —verbose —file=%DUMPPATH% 2>%LOGPATH%

REM Анализ кода завершения

IF NOT %ERRORLEVEL%==0 GOTO Error

GOTO Successfull

REM В случае ошибки удаляется поврежденная резервная копия и делается соответствующая запись в журнале

:Error

DEL %DUMPPATH%

MSG * «ERROR to create backup!!! See the information E:UH_IMDBackupbackup.log.»

ECHO %DATETIME% Ошибка при создании резервной копии %DUMPFILE%. Смотрите %LOGFILE%. >> backup.log

GOTO End

REM В случае удачного резервного копирования просто делается запись в журнал

:Successfull

ECHO %DATETIME% Успешное создание резервной копии %DUMPFILE% >> backup.log

GOTO End

:End

Пояснения:

SET PGDATABASE=IMD_UH — здесь имя базы данных на СУБД равно IMD_UH, у вас будет свое поменяйте обязательно.

E:UH_IMDBackup — здесь путь хранения backup у вас будет свой, поменяйте.

C:Program FilespgAdmin 4v6runtime — папка утилиты pg_dump.exe для создания дампов, пусть может чуть отличаться, например, вместо v6 будет v4. И не забудьте pgAdmin установить, он ставится отдельно.

SET PGPASSWORD=ЗДЕСЬ_УКАЖИТЕ_ПАРОЛЬ_для_пользователя_postgres — тут укажите реальный пароль от пользователя postgres СУБД PostgreSQL

Восстановление резервной копии

Есть несколько способов: Из командной строки, из pgAdmin, заранее подготовленным командным файлом. Мы рассмотрим: pgAdmin.

3.1. С помощью pgAdmin

3.1.1. В существующую базу

Выбираем базу, вызываем правой кнопкой ее контекстное меню, где выбираем действие Восстановить / Restore.

Далее указываем путь к резервной копии, и в настройках ставим предварительно очищать существующую базу (иначе она не восстановится из-за конфликта таблиц).

***

***

***

3.1.2. В новую базу

3.1.2.1. Создаем новую базу в PostgreSQL

На корне дерева баз вызываем правой кнопкой мыши контекстное меню и действие Создать / Create – Базу данных / Database.

Задаем имя новой базы.

Выбираем обязательно схему создания template0 (иначе на следующем шаге база не развернется из backup из-за конфликта таблиц).

Для контроля смотрим итоговый запрос, и жмем кнопку [Сохранить]/[Save].

3.1.2.2. Восстанавливаем базу из архива в PostgreSQL

После создания пустой новой базы, её нужно восстановить из архива. Для этого смотрите пункт выше 3.1.1. Для восстановления в существующую базу, выполняем всё тоже самое только для базы с именем NewBaseName

3.1.2.3. Создаем новую базу 1С NewBaseName

После того как развернули базу на СУБД PostgreSQL её требуется опубликовать на сервере 1С, чтобы пользователи получили к ней доступ. Для этого выполним действия по созданию базы 1С и связывании её с существующей базой на СУБД.

***

***

***

***

Не забываем ставь флаг «Установить блокировку регламентных заданий», если это копия.

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

4.1. Вручную

Удаляем архивы старше 30 дней вручную. Затем чистим корзину на рабочем столе. В проводнике папка E:UH_IMDBackup.

***

4.2. С помощью командного файла *.bat

Запускаем двойным щелчком мыши командный файл. В файле указана очистка в каталоге файлов старше 30 дней.

Его содержимое:forfiles /p «E:UH_IMDBackup» /S /D -30 /C «cmd /c del /f /a /q @file»Пояснения:

E:UH_IMDBackup — здесь путь хранения backup’ов, у вас будет свое поменяйте обязательно.

30 — срок в днях хранения backup’ов

Автоматическое выполнение резервного копирования

Использован стандартный планировщик заданий Windows каждый день в 5:00 утра запуск, выполнения командного файла (архив рабочей базы примерно 1 час создается).

***

***

***

***

***

***

Автоматическое выполнение очистки копий старше 30 дней

Использован стандартный планировщик заданий Windows каждую субботу в 10:00 утра запуск, выполнения командного файла.

***

***

***

***

***

***

Приложения

Пример содержимого общего файла логов backup.log.

Пример содержимого файла лога конкретной выгрузки UH_IMD 2022-10-07 5-00-00.log

P.S. Коллеги, сразу скажу, что я не системный администратор, а программист 1С. Системщик решил бы, может быть, элегантнее. Хотя ситуация сложилась такая, что я делал настройки и эту инструкцию с bat-никами по просьбе системных администраторов (как бы странно это ни звучало). Нечасто такими настройками занимаюсь, поэтому не судите строго.

Добавил 2 батника, по обновлению статистики и реиндексации:

Они для регламентного обслуживания. 1С завершать для их работы не обязательно, но 1С будет притормаживать или пойдет блокировка на период реиндексации. В планировщик заданий Windows на эти батники добавьте задачи раз в неделю на свои базы, в Нерабочее время.

Также есть служебная база postgres на нее тоже раз в неделю добавьте обслуживание.Файл vacuumdb_BaseName.bat — обновление статистики.

Его содержимое: vacuumdb -d UH_IMD -Z -v -j 1

Пояснения: Обновление статистики базы с именем UH_IMD (тут поставьте свою) в 1 поток.

Можно поменять на обновление статистики во всех базах в 4 потока, тогда будет текст: vacuumdb -a -Z -v -j 4

Файл reindexdb_BaseName.bat — реиндексация таблиц в базе.

Его содержимое: reindexdb -d UH_IMD -v -j 1

Пояснения: Обновление индексов в базе с именем UH_IMD (тут поставьте свою) в 1 поток.

Можно поменять на обновление статистики во всех базах в 4 потока, тогда будет текст: reindexdb -a -v -j 4

Также обратите внимание на программу Effector Saver— программа резервного копирования 1С:Предприятия (поищите в инете). Делает копии в MS и PostgreSQL, настройка хранения и удаления. Есть возможность подключать скрипты и выполнять тестирование исправление 1С. Есть бесплатная версия (которой должно хватить), и есть также платная с плюшками.

Для использования пригодятся следующие материалы:

  • backup_pgadmin_BaseName_everyday.bat
  • delete_backup_BaseName_older than 30 days.bat
  • Резервное копирование и восстановление баз PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика.docx
  • vacuumdb_BaseName.bat
  • reindexdb_BaseName.bat

Понравилась статья? Поделить с друзьями:
  • Обс студио скачать бесплатно на русском языке для windows 10
  • Обрывается интернет соединение wi fi windows 10
  • Обрезка экрана windows 10 сочетание клавиш
  • Обрезка видео скачать бесплатно на русском языке для windows 7
  • Обрезать музыку приложение для windows 10