当前位置:数据库 > SQLServer >>

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


PostgreSQL自动备份批处理脚本(Windows版本)
 
根据网上公布的批处理改写,在此感谢~
 
在Windows Server 2003 with SP2 x64上添加到任务计划中运行通过~
 
01
:: 备份文件命名规则: 数据库名_当前时间戳_数据库管理系统名.sql    e.g. info_platform_20120503101305_PostgreSQL.sql
02
:: 使用WinRAR的命令行程序Rar.exe来压缩备份好的.sql文件,前提是系统上要安装有WinRAR而且在此处的路径正确!
03  www.zzzyk.com  
:: <a href="http://my.oschina.net/arthor" class="referer" target="_blank">@author</a>  libeely@gmail.com
04
 
05
<a href="http://my.oschina.net/echolee1987" class="referer" target="_blank">@echo</a>  off
06
 
07
echo 正在初始化环境变量...
08
echo.
09
 
10
:: 对于路径中有空格的路径字符串,需要加上英文双引号包裹!否则就会出现命令错误!
11
set POSTGRESQL_DIR="E:\PostgreSQL\9.1\bin\"
12  www.zzzyk.com  
:: "D:\MySQL\MySQL Server 5.5\bin\"
13
:: 数据库管理系统名
14
set DBMS_NAME=PostgreSQL
15
set DBBAK_DIR="G:\info_platform_databackup"
16
set UPLOADS_DIR="E:\apache\Apache2.2\wwwroot\info_platform\uploads\"
17
:: 异地备份目录
18
set DEST_DIR="\\10.30.100.22\info_form_databackup"
19
set WINRAR_DIR="C:\Program Files (x86)\WinRAR\"
20
set DB_NAME=info_platform
21
set USER="postgres"
22
:: PostgreSQL的pg_dump命令行工具没有带密码的参数,但是可以设置一个PGPASSWORD的环境变量来提供密码
23
set PGPASSWORD=123456
24  www.zzzyk.com  
 
25
 
26
echo 正在备份数据库...
27
echo.
28
 
29
:: 以下是获得当前系统时间的命令,e.g. 20120503101305
30
:: 年
31
set myyy=%date:~0,4%
32
:: 月
33
set mymm=%date:~5,2%
34
:: 日
35
set mydd=%date:~8,2%
36
   www.zzzyk.com  
37
echo %myyy% %mymm% %mydd%
38
 
39
set /a TODAY=%date:~0,4%%date:~5,2%%date:~8,2%
40
set _TIME=%time:~0,8%
41
::echo %_TIME%
42
set CURRENTTIME=%_time::=%
43
set CURRENTTIME=%CURRENTTIME: =0%
44
set MYDATETIME=%TODAY%%CURRENTTIME%
45
::echo %MYDATETIME%
46
 
47
E:
48
cd %POSTGRESQL_DIR%
49
 
50
:: 使用PostgreSQL提供的pg_dump命令将具体数据库导出为.sql文件
51
pg_dump -h localhost -p 5432 -U %USER% %DB_NAME% >%DBBAK_DIR%\%DB_NAME%_%MYDATETIME%_%DBMS_NAME%.sql  www.zzzyk.com  
52
 
53
 
54
echo 正在压缩备份结果...
55
echo.
56
C:
57
cd %WINRAR_DIR%
58
:: 最好压缩(-m5)、固实压缩(-s)、从名称中排除路径(即不创建路径中包含的文件夹,-ep)
59
:: 压缩后删除文件到回收站(-dr)、压缩后删除文件(-df)
60
rar a %DBBAK_DIR%\%DB_NAME%_%MYDATETIME% %DBBAK_DIR%\%DB_NAME%_%MYDATETIME%_%DBMS_NAME%.sql -m5 -s -ep -dr
61
 
62
 
63
echo 正在复制压缩文件到异地...
64
 
65
xcopy %DBBAK_DIR%\*.*  %DEST_DIR%$ /s /y
66
xcopy %UPLOADS_DIR%\*.*  %DEST_DIR%$ /s /y
67  www.zzzyk.com  
 
68
 
69
:: 删除生成的sql文件,不再启用,直接使用rar命令参数删除,更安全!
70
::echo 正在删除临时文件...
71
::del %DBBAK_DIR%\%DB_NAME%_*.sql
72
 
73
:: 按任意键退出
74
::PAUSE
75
 
76
exit
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,