postgresql windows自動バックアップ
1651 ワード
Windows下postgresql自動バックアップスクリプトはbatバッチスクリプトで作成され、windowsタスク計画はタイミング的に実行されます.
毎日1回バックアップし、主にpg_を採用する.dumpは指定されたライブラリをバックアップし、7日前のバックアップファイルを削除します.
1.Task Schedulerシステムサービス自動起動
2.タスクプランの実行ユーザーはパスワード付きアカウント
3.実行ユーザが現在のシステムの実行ユーザであるか否者pg_dumpコマンドが詰まっています.この点はだれがどう解決するか知っているだろうか.
毎日1回バックアップし、主にpg_を採用する.dumpは指定されたライブラリをバックアップし、7日前のバックアップファイルを削除します.
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
set PGHOME="D:\Program Files\PostgreSQL\9.2\bin"
set PGDATA="D:\Program Files\PostgreSQL\9.2\data"
set BACKUP_DIR="E:\lier\backup\test"
set day=%date%
::
for /f "tokens=1-3 delims=-/. " %%i in ("%day%") do (
set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100
)
set DATE_1=%sy%-%sm:~-2%-%sd:~-2%
::echo %DATE_1%
::pause>nul
:: 7
set /a sd-=7
if %sd% leq 0 call :count
set DATE_2=%sy%-%sm:~-2%-%sd:~-2%
if exist %BACKUP_DIR%\db_lier_back_%DATE_2% (del /f %BACKUP_DIR%\db_lier_back_%DATE_2%)
if not exist %BACKUP_DIR%\db_lier_back_%DATE_1% (%PGHOME%\pg_dump.exe -h localhost -p 5432 -U postgres -b -Fp lierserver > %BACKUP_DIR%\db_lier_back_%DATE_1%)
:count
set /a sm-=1
if !sm! equ 0 set /a sm=12, sy-=1
call :days
set /a sd+=days
if %sd% leq 0 goto count
goto :eof
:days
::
set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
set /a max=28+leap
for /f "tokens=%sm%" %%i in ("31 %max% 31 30 31 30 31 31 30 31 30 31") do set days=%%i
goto :eof
タスク計画を設定する際に、いくつかの注意点があります.1.Task Schedulerシステムサービス自動起動
2.タスクプランの実行ユーザーはパスワード付きアカウント
3.実行ユーザが現在のシステムの実行ユーザであるか否者pg_dumpコマンドが詰まっています.この点はだれがどう解決するか知っているだろうか.