Windows下实现PostgreSQL自动备份

运维 系统运维 PostgreSQL
在我工作上一个使用PostgreSQL数据库的项目上需要一个自动化系统来每天执行备份。经过一番研究决定通过创建一个Windows批处理文件并添加到Windows计划任务中来实现。本文将详细介绍。

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

  背景

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

  下面是具体步骤:

  ***步

  下载批处理文件。

  第二步:

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

  第三步:

  你可以通过向导或通过XML文件导入信息来创建基本任务。向导方式创建方法见任务计划程序帮助,下面介绍下命令行语法:

  1. schtasks /Create [/S <system> [/U <username> [/P [<password>]]]]  
  2. [/RU <username> [/RP <password>]] /SC <schedule> [/MO <modifier>] [/D <day>]  
  3. [/M <months>] [/I <idletime>] /TN <taskname> /TR <taskrun> [/ST <starttime>]  
  4. [/RI <interval>] [ {/ET <endtime> | /DU <duration>} [/K] [/XML <xmlfile>] [/V1]]  
  5. [/SD <startdate>] [/ED <enddate>] [/IT] [/Z] [/F]  

  查看此命令帮助:

  1. schtasks /Create /? 

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

  使用代码

  脚本:

  1. <a href="http://my.oschina.net/echolee1987" target="_blank" rel="nofollow">@ECHO</a>  OFF  
  2.  
  3. @setlocal enableextensions<a href="http://my.oschina.net/duini" target="_blank" rel="nofollow">@cd</a>  /d "%~dp0"  
  4.  
  5. SET PGPATH=C:\"Program Files"\PostgreSQL\9.1\bin\  
  6.  
  7. SET SVPATH=f:\  
  8.  
  9. SET PRJDB=demo 
  10.  
  11. SET DBUSR=postgres 
  12.  
  13. FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k  
  14.  
  15. FOR /F "TOKENS=1,2,3 DELIMS=: " %%i IN ('TIME /T') DO SET t=%%i%%j%%k  
  16.  
  17. SET DBDUMP=%PRJDB%_%d%_%t%.sql<a href="http://my.oschina.net/echolee1987" target="_blank" rel="nofollow">@ECHO</a>  OFF  
  18.  
  19. %PGPATH%pg_dump -h localhost -p 5432 -U postgres %PRJDB% > %SVPATH%%DBDUMP%  
  20.  
  21. echo Backup Taken Complete %SVPATH%%DBDUMP% 

  初始值

  • PGPATH - PostgreSQL路径
  • SVPATH - 备份文件路径
  • PRJDB - 要备份的数据库名
  • DBUSR - 数据库用户名
责任编辑:黄丹 来源: oschina.net
相关推荐

2010-05-26 15:07:36

SVN版本库自动备份

2011-05-12 13:42:01

2009-06-24 10:44:08

2018-06-07 09:22:16

LinuxMysql备份

2021-09-22 09:55:20

LinuxMySQL数据库

2011-03-28 16:12:55

mysql自动远程备份

2023-05-11 08:46:28

MySQL

2009-08-12 18:16:37

Oracle数据库自动UNIX

2019-09-20 08:17:15

Windows软件脚本语言

2019-07-25 18:57:36

Linux数据库自动备份

2011-05-16 11:29:00

MySQL自动备份

2010-04-28 11:00:55

2011-07-25 17:50:42

PostgreSQLODBC

2010-06-09 14:04:34

MySQL数据库

2011-03-16 10:11:41

WindowsEnterpriseD

2010-10-26 10:56:04

Oracle备份

2010-11-29 13:28:55

sybase自动备份

2010-05-26 14:53:28

SVN版本库自动备份

2018-07-12 10:24:15

Windows 10Windows自动备份

2011-05-17 14:19:28

Oracle异地数据库自动备份
点赞
收藏

51CTO技术栈公众号