Создание резервной копии с использованием командного файла — различия между версиями
(не показано 17 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | |||
− | |||
− | |||
− | |||
1. Создайте командный файл | 1. Создайте командный файл | ||
1.1. Создайте и откройте текстовый документ. В меню файл выберите '''Сохранить как''' | 1.1. Создайте и откройте текстовый документ. В меню файл выберите '''Сохранить как''' | ||
− | [[Изображение: | + | [[Изображение:1301.PNG|300px|border|]] |
1.2 В диалоговом окне Сохранить как укажите '''имя файла''' и расширение '''bat''' (Например '''start_backup.bat'''). Нажмите '''Сохранить''' | 1.2 В диалоговом окне Сохранить как укажите '''имя файла''' и расширение '''bat''' (Например '''start_backup.bat'''). Нажмите '''Сохранить''' | ||
− | [[Изображение: | + | [[Изображение:1302.PNG|700px|border|]] |
1.3 В результате получится командный файл с расширением '''bat''' | 1.3 В результате получится командный файл с расширением '''bat''' | ||
− | [[Изображение: | + | [[Изображение:1303.PNG|100px|border|]] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | 2. | + | 2. Откройте файл для редактирования |
− | + | [[Изображение:1304.PNG|400px|border|]] | |
− | + | 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 | ||
− | 2. | + | <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> - дописывает данные в существующий файл. Таким образом можно вести журнал с подробными сведениями о результатах резервного копирования | ||
− | + | 4. '''Сохраните файл'''<br> | |
+ | Таким образом командный файл создан и '''после его исполнения''', будет сохраняться резервная копия схемы данных, в указанную папку | ||
− | [[Изображение: | + | [[Изображение:1305.PNG|800px|border|]] |
Текущая версия на 09:27, 23 июня 2017
1. Создайте командный файл
1.1. Создайте и откройте текстовый документ. В меню файл выберите Сохранить как
1.2 В диалоговом окне Сохранить как укажите имя файла и расширение bat (Например start_backup.bat). Нажмите Сохранить
1.3 В результате получится командный файл с расширением bat
2. Откройте файл для редактирования
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. Сохраните файл
Таким образом командный файл создан и после его исполнения, будет сохраняться резервная копия схемы данных, в указанную папку