postgresql自动备份和还原 .

实测OK

 设置win定时任务每天执行即可.

@echo off

:: 设置变量
SET PGPATH=C:\Program Files\PostgreSQL\16\bin
SET BACKUPDIR=C:\test\
SET DBNAME=spring
SET PGUSER=postgres
SET PGPASSWORD=postgres



set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
md %ymd%
:: 构建备份文件名
SET BACKUPFILE=%BACKUPDIR%\backup_%ymd%.dump

:: 创建备份目录(如果不存在)
IF NOT EXIST "%BACKUPDIR%" MKDIR "%BACKUPDIR%"

:: 执行 pg_dump 命令进行备份
"%PGPATH%\pg_dump.exe" -U "%PGUSER%" -F c -b -v -f "%BACKUPFILE%" "%DBNAME%"

:: 检查备份是否成功
IF %ERRORLEVEL% NEQ 0 (
    echo 备份失败!
    EXIT /B %ERRORLEVEL%
) ELSE (
    echo 备份成功!备份文件保存在 %BACKUPFILE%
)

EXIT /B 0

  

:: 可选:删除一定天数前的旧备份文件(例如,只保留最近 7 天的备份)
FORFILES /P "%BACKUPDIR%" /S /M *.dump /D -7 /C "cmd /c del @path"

  

 

恢复: (需要先创建好数据库)

C:\"Program Files"\PostgreSQL\16\bin\pg_restore.exe -U postgres -h 127.0.0.1 -p 5432 -d spring -F c C:\test\backup_20250215.dump

  

posted @ 2025-02-15 09:21  CrossPython  阅读(32)  评论(0)    收藏  举报