Windows下实现PostgreSQL自动备份

本文介绍怎样创建一个Windows批处理文件来自动备份PostgreSQL数据库。

背景
在我工作上一个使用PostgreSQL数据库的项目上需要一个自动化系统来每天执行备份。经过一番研究决定通过创建一个Windows批处理文件并添加到Windows计划任务中来实现。
下面是具体步骤:

怎样配置
第一步:
下载批处理文件。

第二步:
你可以通过一个简单的命令(schtasks /?查看帮助)或者使用图形界面(开始-控制面板-系统和安全-管理工具-任务计划程序)运行任务计划管理工具,还可以在%SYSTEMROOT%\System32目录下双击Taskschd.msc来启动它。

第三步:
你可以通过向导或通过XML文件导入信息来创建基本任务。向导方式创建方法见任务计划程序帮助,下面介绍下命令行语法:
schtasks /Create [/S <system> [/U <username> [/P [<password>]]]]
    [/RU <username> [/RP <password>]] /SC <schedule> [/MO <modifier>] [/D <day>]
    [/M <months>] [/I <idletime>] /TN <taskname> /TR <taskrun> [/ST <starttime>]
    [/RI <interval>] [ {/ET <endtime> | /DU <duration>} [/K] [/XML <xmlfile>] [/V1]]
    [/SD <startdate>] [/ED <enddate>] [/IT] [/Z] [/F]

查看此命令帮助:
schtasks /Create /?

如果在Windows防火墙中远程任务计划管理被禁用而文件和打印共享被启用并且远程注册表服务正在运行,远程计算机上将会被创建一个V1任务即使没有使用参数V1。参数V1表明一个任务对下层系统可见。

使用代码
脚本:
@ECHO  OFF
@setlocal enableextensions@cd  /d "%~dp0"

SET PGPATH=C:\"Program Files"\PostgreSQL\9.1\bin\
SET SVPATH=f:\
SET PRJDB=demo
SET DBUSR=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%.sql@ECHO  OFF
%PGPATH%pg_dump -h localhost -p 5432 -U postgres %PRJDB% > %SVPATH%%DBDUMP%

echo Backup Taken Complete %SVPATH%%DBDUMP%

初始值
  • PGPATH - PostgreSQL路径
  • SVPATH - 备份文件路径
  • PRJDB - 要备份的数据库名
  • DBUSR - 数据库用户名

参考
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值