Windows下實現PostgreSQL自動備份

2021-06-17 21:00:33 字數 1517 閱讀 3223

本文介紹怎樣建立乙個windows批處理檔案來自動備份postgresql資料庫。

背景

在我工作上乙個使用postgresql資料庫的專案上需要乙個自動化系統來每天執行備份。經過一番研究決定通過建立乙個windows批處理檔案並新增到windows計畫任務中來實現。

下面是具體步驟:

怎樣配置

第一步:

第二步:

你可以通過乙個簡單的命令(schtasks /?檢視幫助)或者使用圖形介面(開始-控制面板-系統和安全-管理工具-任務計畫程式)執行任務計畫管理工具,還可以在%systemroot%\system32目錄下雙擊taskschd.msc來啟動它。

第三步:

你可以通過嚮導或通過xml檔案匯入資訊來建立基本任務。嚮導方式建立方法見任務計畫程式幫助,下面介紹下命令列語法:

schtasks /create [/s [/u [/p ]]]

[/ru [/rp ]] /sc [/mo ] [/d ]

[/m ] [/i ] /tn /tr [/st ]

[/ri ] [ [/k] [/xml ] [/v1]]

[/sd ] [/ed ] [/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%

初始值

參考

autobackupforpostgresql.zip

windows下守護程序實現

這裡的守護程序指的是無控制終端的程序。linux下執行程序只需要後面新增 就可以實現。有的時候需要設計乙個可以同時在windows和linux下執行的守護程序 為了避免過多的修改 可以新增如下偽指令來實現 ifndef win32 pragma comment linker,subsystem wi...

windows下實現oracle自動備份 bat

echo off setlocal enabledelayedexpansion title date time 8 by liaoning sunray software technology 定義資料庫sid set sid sryx254 定義使用者名稱陣列 各使用者間用空格分隔 例如 use...

windows下實現oracle自動備份 bat

echo off setlocal enabledelayedexpansion title date time 8 by liaoning sunray software technology 定義資料庫sid set sid sryx254 定義使用者名稱陣列 各使用者間用空格分隔 例如 use...