Для PostgreSQL существует менеджер – pgAdmin, в котором можно управлять всей СУБД, он намного нагляднее чем командная строка и более привычен большинству пользователей. Программу потребуется скачать, установить и подключится к серверу СУБД. В инструкции используется ОС Windows, но настройки pgAdmin будут аналогичны для других ОС, с которыми приложение совместимо. В инструкции используется pgAdmin 4.
Резервное копирование базы
- После того как подключились к серверу через pgAdmin, переходим в директорию Servers, выбираем базу, которую хотим сохранить и переходим к опции резервного копирования.
- Далее в открывшемся окне в поле Filename выбираем место куда будет сохранен бэкап, а также задаем имя, но без расширения, приложение само задаст его. Другие параметры оставляем без изменений и нажимаем Backup.
- Для того чтобы узнать, удалось ли выполнить резервное копирование, подскажут два этих сообщения. Нижнее говорит о том, что процесс начался, а верхнее что завершен успешно.
Восстановление базы
- Аналогично резервному копирования выбираем опцию Restore.
- И затем в поле Filename выбираем место где сохранен бэкап и переходим в Quary Options и ставим в активное положение Clean before restore (Очистка перед восстановлением). Это для того, чтобы при восстановлении не было конфликта таблиц при восстановлении базы.
- Затем нажимаем Restore. Затем появится всплывающие уведомления о статусе задачи. Действия схожи, как при создании резервной копии базы.
Автоматизация резервного копирования
Пример .bat-файла для резервного копирования, его нужно будет поместить в планировщик:
{rtf1ansiansicpg1251cocoartf2709 cocoatextscaling0cocoaplatform0{fonttblf0fswissfcharset0 Helvetica;} {colortbl;red255green255blue255;} {*expandedcolortbl;;} paperw11900paperh16840margl1440margr1440vieww11520viewh8400viewkind0 pardtx720tx1440tx2160tx2880tx3600tx4320tx5040tx5760tx6480tx7200tx7920tx8640pardirnaturalpartightenfactor0 f0fs24 cf0 REM uc0u1055 u1056 u1048 u1052 u1045 u1056 u1057 u1054 u1047 u1044 u1040 u1053 u1048 u1071 u1056 u1045 u1047 u1045 u1056 u1042 u1053 u1054 u1049 u1050 u1054 u1055 u1048 u1048 u1041 u1040 u1047 u1067 u1044 u1040 u1053 u1053 u1067 u1061 POSTGRESQL CLS ECHO OFF CHCP 1251 REM uc0u1059 u1089 u1090 u1072 u1085 u1086 u1074 u1082 u1072 u1087 u1077 u1088 u1077 u1084 u1077 u1085 u1085 u1099 u1093 u1086 u1082 u1088 u1091 u1078 u1077 u1085 u1080 u1103 SET PGBIN=путь в дерикторию файла «pgdump.exe» SET PGDATABASE=имя целевой базы данных (basename) SET PGHOST=сетевое расположение сервера баз данных SET PGPORT=используемый порт для баз данных (стандартный 5432) SET PGUSER=имя root пользователя PostgreSQL (стандартное postgres) SET PGPASSWORD=пароль root пользователя (Pa$$word) REM uc0u1057 u1084 u1077 u1085 u1072 u1076 u1080 u1089 u1082 u1072 u1080 u1087 u1077 u1088 u1077 u1093 u1086 u1076 u1074 u1087 u1072 u1087 u1082 u1091 u1080 u1079 u1082 u1086 u1090 u1086 u1088 u1086 u1081 u1079 u1072 u1087 u1091 u1097 u1077 u1085 bat-u1092 u1072 u1081 u1083 %~d0 CD %~dp0 REM uc0u1060 u1086 u1088 u1084 u1080 u1088 u1086 u1074 u1072 u1085 u1080 u1077 u1080 u1084 u1077 u1085 u1080 u1092 u1072 u1081 u1083 u1072 u1088 u1077 u1079 u1077 u1088 u1074 u1085 u1086 u1081 u1082 u1086 u1087 u1080 u1080 u1080 u1092 u1072 u1081 u1083 u1072 -u1086 u1090 u1095 u1077 u1090 u1072 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 (место хранения резервной копии)" SET LOGPATH="место_хранения_резервной_копии/имя_файла.log (место хранения лога)" REM uc0u1057 u1086 u1079 u1076 u1072 u1085 u1080 u1077 u1088 u1077 u1079 u1077 u1088 u1074 u1085 u1086 u1081 u1082 u1086 u1087 u1080 u1080 IF NOT EXIST Backup MD Backup CALL "%PGBIN%\pg_dump.exe" --format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH% REM uc0u1040 u1085 u1072 u1083 u1080 u1079 u1082 u1086 u1076 u1072 u1079 u1072 u1074 u1077 u1088 u1096 u1077 u1085 u1080 u1103 IF NOT %ERRORLEVEL%==0 GOTO Error GOTO Successfull REM uc0u1042 u1089 u1083 u1091 u1095 u1072 u1077 u1086 u1096 u1080 u1073 u1082 u1080 u1091 u1076 u1072 u1083 u1103 u1077 u1090 u1089 u1103 u1087 u1086 u1074 u1088 u1077 u1078 u1076 u1077 u1085 u1085 u1072 u1103 u1088 u1077 u1079 u1077 u1088 u1074 u1085 u1072 u1103 u1082 u1086 u1087 u1080 u1103 u1080 u1076 u1077 u1083 u1072 u1077 u1090 u1089 u1103 u1089 u1086 u1086 u1090 u1074 u1077 u1090 u1089 u1090 u1074 u1091 u1102 u1097 u1072 u1103 u1079 u1072 u1087 u1080 u1089 u1100 u1074 u1078 u1091 u1088 u1085 u1072 u1083 u1077 :Error DEL %DUMPPATH% MSG * "uc0u1054 u1096 u1080 u1073 u1082 u1072 u1087 u1088 u1080 u1089 u1086 u1079 u1076 u1072 u1085 u1080 u1080 u1088 u1077 u1079 u1077 u1088 u1074 u1085 u1086 u1081 u1082 u1086 u1087 u1080 u1080 u1073 u1072 u1079 u1099 u1076 u1072 u1085 u1085 u1099 u1093 . u1057 u1084 u1086 u1090 u1088 u1080 u1090 u1077 backup.log." ECHO %DATETIME% uc0u1054 u1096 u1080 u1073 u1082 u1080 u1087 u1088 u1080 u1089 u1086 u1079 u1076 u1072 u1085 u1080 u1080 u1088 u1077 u1079 u1077 u1088 u1074 u1085 u1086 u1081 u1082 u1086 u1087 u1080 u1080 u1073 u1072 u1079 u1099 u1076 u1072 u1085 u1085 u1099 u1093 %DUMPFILE%. u1057 u1084 u1086 u1090 u1088 u1080 u1090 u1077 u1086 u1090 u1095 u1077 u1090 %LOGFILE%. >> backup.log GOTO End REM uc0u1042 u1089 u1083 u1091 u1095 u1072 u1077 u1091 u1076 u1072 u1095 u1085 u1086 u1075 u1086 u1088 u1077 u1079 u1077 u1088 u1074 u1085 u1086 u1075 u1086 u1082 u1086 u1087 u1080 u1088 u1086 u1074 u1072 u1085 u1080 u1103 u1087 u1088 u1086 u1089 u1090 u1086 u1076 u1077 u1083 u1072 u1077 u1090 u1089 u1103 u1079 u1072 u1087 u1080 u1089 u1100 u1074 u1078 u1091 u1088 u1085 u1072 u1083 :Successfull ECHO %DATETIME% uc0u1059 u1089 u1087 u1077 u1096 u1085 u1086 u1077 u1089 u1086 u1079 u1076 u1072 u1085 u1080 u1077 u1088 u1077 u1079 u1077 u1088 u1074 u1085 u1086 u1081 u1082 u1086 u1087 u1080 u1080 %DUMPFILE% >> backup.log GOTO End :End pause}
Для удаления копий через определенной время, можно дописать строку:
1 forfiles -p "путь_к_папке_с_копиями" -s -m . -d -30 -c "cmd /c del /F /q @path"
30 – количество дней хранения, можно поменять на любое другое.
Нужна помощь? Администрирование Linux мы осуществляем в рамках услуги администрирование серверов и гипервизоров.