1、首先新建一个bat文件,用来执行数据库备份命令。

  内容如下:(路径、IP、文件名等按需指定)


@ECHO OFF
@setlocal enableextensions
@cd /d "%~dp0"
SET PGPATH=C:\WTI-CPMS\pgsql\bin\pg_dump
SET SVPATH=C:\WTI-CPMS\pgsql\gzjh_back\
SET PRJDB=gzjh
SET DBUSR=postgres
SET DBROLE=postgres
FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k
FOR /F "TOKENS=1,2,3 DELIMS=: " %%i IN ('TIME /T') DO SET t=%%i%%j%%k
SET DBDUMP=%PRJDB%_%d%_%t%.backup
@ECHO OFF
%PGPATH% -h localhost -p 5432 -U %DBUSR% --role %DBROLE% -w -F c -b -v -f %SVPATH%%DBDUMP% %PRJDB% 
echo Backup Taken Complete %SVPATH%%DBDUMP%
pause





        注:  SET SVPATH=E:\ 表示文件存放路径

                SET PRJDB=BaoShan 表示要备份的数据库名称


2、执行上边的bat时会要求输入数据库密码,为解决该问题,


    2.1在数据库data目录下C:\Program Files\PostgreSQL\9.4\data新建文件:pgpass.conf,内容如下:    localhost:5432:njcdc20180510:postgres:postgres

    注:ip:端口:数据库名:用户名:密码


    2.2在环境变量得系统变量中新建:变量名: PGPASSFILE,变量值: C:\Program Files\PostgreSQL\9.4\data\pgpass.conf


1.4运行taskschd.msc把pg_backup.bat配置为windows计划任务。

 



-------202011-25------

使用命令恢复

D:\website\apms\code\init\init\pgsql\bin\psql.exe -d ptest1 -h 127.0.0.1 -p 5432 -U postgres -f D:\website\apms\code\init\init\init915.backup