windows系統下postgresql的自動備份及維護的指令碼
可達到指定備份維護及保留指定備份個數的目的,結合遠端可達到遠端備份的目的[@more@]@echo off
rem 需指定變數
rem 指定pgsql用來備份的使用者及密碼,另一種方式是修改pg_hba.conf的認證方式等
set PGUSER=使用者
set PGPASSWORD=密碼
rem 指定備份保留個數
set inum=5
rem 指定備份資料庫
set idb=webpos
rem 備份字首,避免誤操作
set iprefix=webpos
rem 備份目錄,不建議有空格,避免不同軟體都需測試
set back_dir=E:backtemp
rem pg_dump.exe的絕對路徑
set isql=D:PostgreSQLbinpg_dump.exe
rem vacuumdb.exe的絕對路徑
set vsql=D:PostgreSQLbinvacuumdb.exe
rem 用7z壓縮,此處指定7z.exe的絕對路徑
set myzip=d:tools7-zip7z.exe
rem 檢查完整性
set ierr="0"
set verr="0"
set zerr="0"
set derr="0"
IF NOT EXIST "%isql%" set ierr="1"
IF NOT EXIST "%vsql%" set verr="1"
IF NOT EXIST "%myzip%" set zerr="1"
IF NOT EXIST "%back_dir%" MKDIR "%back_dir%"
IF NOT EXIST "%back_dir%" set derr="1"
:dcheck
IF %derr%=="0" goto icheck
ECHO "%back_dir%" error!>>pgback.err
goto end
:icheck
IF %ierr%=="0" goto vcheck
ECHO "%isql%" error!>>pgback.err
goto end
:vcheck
IF %verr%=="0" goto start
ECHO "%vsql%" error!>>pgback.err
goto end
:zcheck
IF %zerr%=="0" goto start
ECHO "%myzip%" error!>>pgback.err
goto end
:start
set date_str=%date:~0,4%%date:~5,2%%date:~8,2%
if "%time:~0,1%"==" " (set time_str=0%time:~1,1%%time:~3,2%%time:~6,2%) ELSE (set time_str=%time:~0,2%%time:~3,2%%time:~6,2%)
set dbback_file=%back_dir%%iprefix%_%date_str%_%time_str%
rem pg備份
"%isql%" -i -h localhost -p5432 -F c -b -v -f "%dbback_file%.backup" %idb%
rem pg資料維護
"%vsql%" -h localhost -p5432 -d %idb% -q
rem 只保留指定個數備份,基本無必要壓縮處理
For /F "SKIP=%inum%" %%i IN ('DIR "%back_dir%%iprefix%_*.backup" /B /TC /O-D') DO DEL "%back_dir%%%i" /Q
rem "%myzip%" a -ptjjtDs -t7z "%dbback_file%.7z" "%dbback_file%.backup" -m0=BCJ -m1=LZMA:d=21 -ms -mmt
rem For /F "SKIP=%inum%" %%i IN ('DIR "%back_dir%%iprefix%_*.7z" /B /TC /O-D') DO DEL "%back_dir%%%i" /Q
rem del "%dbback_file%.backup" /Q
:end
rem 變數處理
set PGUSER=
set PGPASSWORD=
set inum=
set iprefix=
set back_dir=
set isql=
set vsql=
set myzip=
set date_str=
set time_str=
set dbback_file=
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7110/viewspace-1006862/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- windows下rman自動備份指令碼Windows指令碼
- rman 自動備份指令碼-windows指令碼Windows
- windows下oracle資料庫的exp自動備份指令碼WindowsOracle資料庫指令碼
- suse下oracle的自動備份指令碼Oracle指令碼
- windows部分聯機自動備份指令碼!Windows指令碼
- Windows環境PgSql自動備份指令碼WindowsSQL指令碼
- 讓Windows XP自動維護系統Windows
- windows 下的Oracle 冷備份指令碼WindowsOracle指令碼
- 自動備份指令碼指令碼
- Windows下RMAN備份指令碼Windows指令碼
- MySQL自動備份指令碼MySql指令碼
- windows下exp邏輯備份並且定期維護備份Windows
- Oracle Windows平臺自動排程備份指令碼OracleWindows指令碼
- Oracle自動備份指令碼的實現Oracle指令碼
- 簡單有效的windows下的RMAN備份指令碼Windows指令碼
- windows下自動備份指令碼(exp)Windows指令碼
- oracle自動冷備份指令碼Oracle指令碼
- ORACLE自動備份shell指令碼Oracle指令碼
- MySQL:Windows下分庫備份指令碼MySqlWindows指令碼
- linux下rman增量備份指令碼以及指令碼自動執行Linux指令碼
- MySQL自動備份指令碼及異地定時FTPMySql指令碼FTP
- 【Oracle指令碼】-很不錯的Windows下資料庫備份EXP指令碼Oracle指令碼Windows資料庫
- svn dump 全自動備份指令碼指令碼
- oracle 自動冷備份指令碼(轉)Oracle指令碼
- rman映像copy自動備份的一個指令碼指令碼
- windows mysqldump備份指令碼WindowsMySql指令碼
- windows rman備份指令碼Windows指令碼
- Windows 快速備份指令碼Windows指令碼
- oracle自動備份,儲存每天備份日誌的指令碼編寫Oracle指令碼
- linux基於cron的rman自動增量備份指令碼及設定Linux指令碼
- windows下oracle自動啟動指令碼WindowsOracle指令碼
- MySQL自動備份指令碼30天自動刪除MySql指令碼
- shell 備份檔案指令碼+自動清理指令碼
- TSM+RMAN 自動備份指令碼 on aix指令碼AI
- 一個簡單的自動備份alert log指令碼指令碼
- windows10系統如何設定自動維護時間Windows
- shell指令碼:自動記憶體監控及日誌備份指令碼記憶體
- RAC模式下的備份策略以及RMAN備份指令碼模式指令碼