PostGreSQL 自动备份脚本(.backup文件格式)

最近发布的项目操作系统使用的windows server 2012 ,数据库使用的是PostGreSQL9.4,数据库本身没有自动备份的功能,现在觉得最简单的实现方式就是利用windows的任务计划程序来每天定时的执行脚本来备份数据库。

网上一搜一大把,好多人都说已经用过,而且有实例,但拿下了之后不是运行不起来(不知道我系统的原因,还是版本不一致),就是不符合我想要的结果(我想要的是和PostGreSQL自带的备份功能结果一样的.backup文件格式,网上大多数rar或者sql),这里综合别人的写法和官网实例写出下面的bat文件,运行正常,做个备忘。

一、参考文章

1、https://xly3000.wordpress.com/2012/03/07/postgresql%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BDbackup%E4%B8%8E%E6%81%A2%E5%A4%8Drestore%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9B%BE%E8%A7%A3/

2、http://www.oschina.net/question/100267_71299

二、windows 任务计划程序

网上一搜一大把,这边就不写具体链接啦

三、改装后正常运行行的bat脚本文件

@ECHO OFF
@setlocal enableextensions
@cd /d "%~dp0"
SET PGPATH=C:\"Program Files"\PostgreSQL\9.4\bin\pg_dump
SET SVPATH=D:\
SET PRJDB=zckj
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

你可能感兴趣的:(PostGreSQL)