Windows下實現PostgreSQL自動備份

jopen 12年前發布 | 32K 次閱讀 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 - 數據庫用戶名

參考
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!