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

Материал из ЭЛЕСТА
Перейти к: навигация, поиск
 
(не показано 18 промежуточных версий этого же участника)
Строка 3: Строка 3:
 
1.1. Создайте и откройте текстовый документ. В меню файл выберите '''Сохранить как'''
 
1.1. Создайте и откройте текстовый документ. В меню файл выберите '''Сохранить как'''
  
[[Изображение:1505.PNG|800px|border|]]
+
[[Изображение:1301.PNG|300px|border|]]
  
 
1.2 В диалоговом окне Сохранить как укажите '''имя файла''' и расширение '''bat''' (Например '''start_backup.bat'''). Нажмите '''Сохранить'''
 
1.2 В диалоговом окне Сохранить как укажите '''имя файла''' и расширение '''bat''' (Например '''start_backup.bat'''). Нажмите '''Сохранить'''
  
[[Изображение:1505.PNG|800px|border|]]
+
[[Изображение:1302.PNG|700px|border|]]
  
 
1.3 В результате получится командный файл с расширением '''bat'''
 
1.3 В результате получится командный файл с расширением '''bat'''
  
[[Изображение:1505.PNG|800px|border|]]
+
[[Изображение:1303.PNG|100px|border|]]
  
2 Откройте файл для редактирования
+
2. Откройте файл для редактирования
  
[[Изображение:1505.PNG|800px|border|]]
+
[[Изображение:1304.PNG|400px|border|]]
  
3 Добавьте в командный файл следующий текст:
+
3. Добавьте в командный файл следующий текст:
  
<code>@echo Создание резервной копии<br>
+
REM Пример создание резервной копии базы данных POSTGRESQL
"C:\PostgreSQL\9.6\bin\pg_dump.exe" -h localhost -p 5432 -U postgres -F c -b –v -f "1.backup" jupiter</code>
+
CLS
 +
ECHO OFF
 +
Chcp 65001
 +
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 * "Error. See backup.log."
 +
ECHO %DATETIME% Error backup postgresql %DUMPFILE%. See %LOGFILE%. >> backup.log
 +
GOTO End
 +
REM В случае удачного резервного копирования просто делается запись в журнал
 +
:Successfull
 +
ECHO %DATETIME% OK backup %DUMPFILE% >> backup.log
 +
GOTO End
 +
:End
  
[[Изображение:1505.PNG|800px|border|]]
+
<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> - отправить вывод в указанный файл<br>
 +
<code>ECHO %DATETIME% OK backup %DUMPFILE% >> backup.log</code> - дописывает данные в существующий файл. Таким образом можно вести журнал с подробными сведениями о результатах резервного копирования
  
<code>@echo Создание резервной копии</code> - Вывод на экран консоли соответствующего текста<br>
+
4. '''Сохраните файл'''<br>
<code>"C:\PostgreSQL\9.6\bin\pg_dump.exe"</code> - путь к файлу, выполняющего резервирование (по умолчанию)<br>
+
Таким образом командный файл создан и '''после его исполнения''', будет сохраняться резервная копия схемы данных, в указанную папку
<code>-h localhost</code> - IP-адрес подключения, где localhost – собственный IP – адрес <br>
 
<code>-p 5432</code> - порт подключения к СУБД, по умолчанию 5432 <br>
 
<code>-U postgres</code> - пароль для подключения <br>
 
<code>-F c -b –v</code> - формат записи резервной копии<br>
 
<code>-f "1.backup"</code> - имя выходного файла<br>
 
<code>jupiter</code> - название резервируемой схемы данных
 
  
2.4 Сохраните файл. Таким образом командный файл создан и после его исполнения, будет
+
[[Изображение:1305.PNG|800px|border|]]
выполнятся резервная копия схемы данных, в указанный выходной файл.
 
 
 
2.5 Для сохранения каждой копии резерва в отдельный файл, возможно следующая реализация.
 
 
 
2.5.1 Создайте командный файл
 
 
 
2.5.2 Откройте файл для редактирования
 
 
 
2.5.3 Добавьте в командный файл следующий текст.
 
 
 
[[Изображение:1505.PNG|800px|border|]]
 
 
 
RAR.exe –запуск программы архивации RAR.
 
a – команда для программы RAR, о добавлении в архив файлов.
 
-ag – ключ для программы RAR, о добавлении в имя создаваемого архива, дату
 
и время.
 
С:\BUCKUP\mgs.rar - имя создаваемого архива.
 
MGS.backup – имя файла, подлежащего архивации. Здесь также можно указать полный
 
путь к папке.
 
При необходимости вы можете изменять параметры выполнения программы RAR.exe (Список
 
ключей находится в приложении №2).
 
 
 
2.5.4 Выложите в каталог с командным файлом программу RAR.exe.
 
 
 
2.5.5 В результате получится архивный файл. В котором хранится вся база данных
 
 
 
[[Изображение:1505.PNG|800px|border|]]
 

Текущая версия на 09:27, 23 июня 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 65001
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 * "Error. See backup.log."
ECHO %DATETIME% Error backup postgresql %DUMPFILE%. See %LOGFILE%. >> backup.log
GOTO End
REM В случае удачного резервного копирования просто делается запись в журнал
:Successfull
ECHO %DATETIME% OK backup %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% - отправить вывод в указанный файл
ECHO %DATETIME% OK backup %DUMPFILE% >> backup.log - дописывает данные в существующий файл. Таким образом можно вести журнал с подробными сведениями о результатах резервного копирования

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

1305.PNG