PostgreSQL自动备份批处理脚本(Windows版本)

本文详细介绍了在Windows Server 2003环境下,通过批处理脚本自动执行数据库备份操作,并利用WinRAR进行备份文件压缩的过程。包括备份文件命名规则、使用WinRAR命令行程序进行压缩、异地备份目录设定等关键步骤。

根据网上公布的批处理改写,在此感谢~

在Windows Server 2003 with SP2 x64上添加到任务计划中运行通过~

:: 备份文件命名规则: 数据库名_当前时间戳_数据库管理系统名.sql	e.g. info_platform_20120503101305_PostgreSQL.sql
:: 使用WinRAR的命令行程序Rar.exe来压缩备份好的.sql文件,前提是系统上要安装有WinRAR而且在此处的路径正确!
:: @author  libeely@gmail.com

@echo  off

echo 正在初始化环境变量...
echo.

:: 对于路径中有空格的路径字符串,需要加上英文双引号包裹!否则就会出现命令错误!
set POSTGRESQL_DIR="E:\PostgreSQL\9.1\bin\"
:: "D:\MySQL\MySQL Server 5.5\bin\"
:: 数据库管理系统名
set DBMS_NAME=PostgreSQL
set DBBAK_DIR="G:\info_platform_databackup"
set UPLOADS_DIR="E:\apache\Apache2.2\wwwroot\info_platform\uploads\"
:: 异地备份目录
set DEST_DIR="\\10.30.100.22\info_form_databackup"
set WINRAR_DIR="C:\Program Files (x86)\WinRAR\"
set DB_NAME=info_platform
set USER="postgres"
:: PostgreSQL的pg_dump命令行工具没有带密码的参数,但是可以设置一个PGPASSWORD的环境变量来提供密码
set PGPASSWORD=123456


echo 正在备份数据库...
echo.

:: 以下是获得当前系统时间的命令,e.g. 20120503101305
:: 年
set myyy=%date:~0,4%
:: 月
set mymm=%date:~5,2%
:: 日
set mydd=%date:~8,2%

echo %myyy% %mymm% %mydd%

set /a TODAY=%date:~0,4%%date:~5,2%%date:~8,2%
set _TIME=%time:~0,8%
::echo %_TIME%
set CURRENTTIME=%_time::=%
set CURRENTTIME=%CURRENTTIME: =0%
set MYDATETIME=%TODAY%%CURRENTTIME%
::echo %MYDATETIME%

E:
cd %POSTGRESQL_DIR%

:: 使用PostgreSQL提供的pg_dump命令将具体数据库导出为.sql文件
pg_dump -h localhost -p 5432 -U %USER% %DB_NAME% >%DBBAK_DIR%\%DB_NAME%_%MYDATETIME%_%DBMS_NAME%.sql


echo 正在压缩备份结果...
echo.
C:
cd %WINRAR_DIR%
:: 最好压缩(-m5)、固实压缩(-s)、从名称中排除路径(即不创建路径中包含的文件夹,-ep)
:: 压缩后删除文件到回收站(-dr)、压缩后删除文件(-df)
rar a %DBBAK_DIR%\%DB_NAME%_%MYDATETIME% %DBBAK_DIR%\%DB_NAME%_%MYDATETIME%_%DBMS_NAME%.sql -m5 -s -ep -dr


echo 正在复制压缩文件到异地...

xcopy %DBBAK_DIR%\*.*  %DEST_DIR%$ /s /y
xcopy %UPLOADS_DIR%\*.*  %DEST_DIR%$ /s /y


:: 删除生成的sql文件,不再启用,直接使用rar命令参数删除,更安全!
::echo 正在删除临时文件...
::del %DBBAK_DIR%\%DB_NAME%_*.sql

:: 按任意键退出
::PAUSE

exit

转载于:https://my.oschina.net/leeoo/blog/75177

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值