Создание резервной копии с использованием командного файла — различия между версиями

Материал из ЭЛЕСТА
Перейти к: навигация, поиск
Строка 61: Строка 61:
 
  :End
 
  :End
  
 +
<code>SET PGBIN=C:\PostgreSQL\9.6\bin</code> - указывается путь к pg_dump<br>
 +
<code>SET PGDATABASE=jupiter</code> - название базы данных<br>
 +
<code>SET PGHOST=localhost</code> - расположение базы данных<br>
 +
<code>SET PGPORT=5432</code> - порт для подключения к базе<br>
 +
<code>SET PGUSER=postgres</code> - имя пользователя<br>
 +
<code>SET PGPASSWORD=postgres</code> - пароль для данной базы данных<br>
 +
<code>SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%</code> - задание имени backup (содержит имя, дату и время создания backup)<br>
 +
<code>SET DUMPFILE=%PGDATABASE% %DATETIME%.backup</code> - расширение файла backup<br>
 +
<code>SET LOGFILE=%PGDATABASE% %DATETIME%.log</code> - запись лога (что копировалось)<br>
 +
<code>SET DUMPPATH="Backup\%DUMPFILE%"</code> - указывается путь, куда сохранить backup базы данных<br>
 +
<code>SET LOGPATH="Backup\%LOGFILE%"</code> - указывается путь, куда сохранить лог файл<br>
 +
<code>CALL "%PGBIN%\pg_dump.exe"</code> --format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH% - настройка метода сжатия базы данных при backup<br>
 +
<code>--format=custom</code> - вывести копию в архивном формате<br>
 +
<code>--verbose</code> - включить подробный режим. pg_dump будет выводить в стандартный поток ошибок подробные комментарии к объектам, включая время начала и окончания выгрузки, а также сообщения о прогрессе выполнения<br>
 +
<code>--file=%DUMPPATH% 2>%LOGPATH%</code> - отправить вывод в указанный файл
  
 
4. Сохраните файл<br>
 
4. Сохраните файл<br>

Версия 10:33, 8 июня 2017

СТРАНИЦА СОЗДАЕТСЯ, ИНФОРМАЦИЯ НЕ АКТУАЛЬНАЯ

1. Создайте командный файл

1.1. Создайте и откройте текстовый документ. В меню файл выберите Сохранить как

1301.PNG

1.2 В диалоговом окне Сохранить как укажите имя файла и расширение bat (Например start_backup.bat). Нажмите Сохранить

1302.PNG

1.3 В результате получится командный файл с расширением bat

1303.PNG

2. Откройте файл для редактирования

1304.PNG

3. Добавьте в командный файл следующий текст:

REM Пример создание резервной копии базы данных POSTGRESQL
CLS
ECHO OFF
CHCP 1251
REM Установка переменных окружения
SET PGBIN=C:\PostgreSQL\9.6\bin
SET PGDATABASE=jupiter
SET PGHOST=localhost
SET PGPORT=5432
SET PGUSER=postgres
SET PGPASSWORD=postgres
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 DUMPFILE=%PGDATABASE% %DATETIME%.backup
SET LOGFILE=%PGDATABASE% %DATETIME%.log
SET DUMPPATH="Backup\%DUMPFILE%"
SET LOGPATH="Backup\%LOGFILE%"
REM Создание резервной копии
IF NOT EXIST Backup MD Backup
CALL "%PGBIN%\pg_dump.exe" --format=custom --verbose --file=%DUMPPATH% 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
GOTO End
:End

SET PGBIN=C:\PostgreSQL\9.6\bin - указывается путь к pg_dump
SET PGDATABASE=jupiter - название базы данных
SET PGHOST=localhost - расположение базы данных
SET PGPORT=5432 - порт для подключения к базе
SET PGUSER=postgres - имя пользователя
SET PGPASSWORD=postgres - пароль для данной базы данных
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% - задание имени backup (содержит имя, дату и время создания backup)
SET DUMPFILE=%PGDATABASE% %DATETIME%.backup - расширение файла backup
SET LOGFILE=%PGDATABASE% %DATETIME%.log - запись лога (что копировалось)
SET DUMPPATH="Backup\%DUMPFILE%" - указывается путь, куда сохранить backup базы данных
SET LOGPATH="Backup\%LOGFILE%" - указывается путь, куда сохранить лог файл
CALL "%PGBIN%\pg_dump.exe" --format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH% - настройка метода сжатия базы данных при backup
--format=custom - вывести копию в архивном формате
--verbose - включить подробный режим. pg_dump будет выводить в стандартный поток ошибок подробные комментарии к объектам, включая время начала и окончания выгрузки, а также сообщения о прогрессе выполнения
--file=%DUMPPATH% 2>%LOGPATH% - отправить вывод в указанный файл

4. Сохраните файл
Таким образом командный файл создан и после его исполнения, будет выполнятся резервная копия схемы данных, в указанную папку

1305.PNG