15 Ocak 2015 Perşembe

PostgreSQL Auto Backup Script for Windows

PostgreSQL 'de komut satırından yedek alma için pg_dump.exe kullanılmaktadır. Yedekleme için birçok filtre (database, shema, tablo vb.) kullanılabilir. Bu yazıda iki adet batch script yayınlıyorum. Birinci versiyonda FULL yedek alınmakta ve ikinci versiyonda ek olarak sadece belirtilen DATABASE yedek alınmaktadır.

PGSqlAutoBackup01

 

Script Versiyon 1 (PGBackup_v1_Full.batKaynak Kod: 

Bu versiyon ile FULL yedek alabilirsiniz.






@ECHO OFF
Rem http://siberblog.org/index.php/postgresql-auto-backup-script-for-windows
Rem Bu script ile FULL yedek alınır.Rem ------------- TANIMLAMALAR ---------------
@SET PGBINPATH=D:\ESYA\PostgreSQL\9.3\bin
@SET PGUSER=postgres
@SET PGPASSWORD=Aa12345
@SET PGPORT=5432
@SET HOSTNAME=192.168.1.10
@SET BACKUPFILESPATH=D:\Backups

for /f %%t in ('wmic os get LocalDateTime ^| findstr /b [0-9]') do set T=%%t
@SET Year=%T:~0,4%
@SET Month=%T:~4,2%
@SET Day=%T:~6,2%
@SET Hour=%T:~8,2%
@SET Minute=%T:~10,2%
@SET Second=%T:~12,2%
@SET "DateFormat=%Year%%Month%%Day%_%Hour%%Minute%%Second%"
@SET BackupFileName=PGBackup_Full_%DateFormat%.tar

IF not exist %PGBINPATH%\pg_dump.exe ( @echo %PGBINPATH%\pg_dump.exe bulunamadi.
goto :eof )IF not exist %BACKUPFILESPATH% (mkdir %BACKUPFILESPATH%)cls

IF exist %BACKUPFILESPATH% (
@echo Backup Filename: %BACKUPFILESPATH%\%BackupFileName%
@echo.
%PGBINPATH%\pg_dump.exe -i -h %HOSTNAME% -p 5432 -U %PGUSER% -F t -b -v -f %BACKUPFILESPATH%\%BackupFileName%
) ELSE ( @Echo %BACKUPFILESPATH% bulunamadi.)pause

Download: PGBackup_v1_Full.rar

PGSqlAutoBackup02

 

 

Script Versiyon 2 (PGBackup_v2_Database.bat) Kaynak Kod: 

Bu versiyon ile istediğiniz bir DATABASE yedeğini alabilirsiniz.






@ECHO OFF
Rem http://siberblog.org/index.php/postgresql-auto-backup-script-for-windows
Rem Bu script ile sadece seçilen DATABASE yedek alınır.Rem ------------- TANIMLAMALAR ---------------
@SET PGBINPATH=D:\ESYA\PostgreSQL\9.3\bin
@SET PGDATABASE=Deneme
@SET PGUSER=postgres
@SET PGPASSWORD=Aa12345
@SET PGPORT=5432
@SET HOSTNAME=192.168.1.10
@SET BACKUPFILESPATH=D:\Backups

for /f %%t in ('wmic os get LocalDateTime ^| findstr /b [0-9]') do set T=%%t
@SET Year=%T:~0,4%
@SET Month=%T:~4,2%
@SET Day=%T:~6,2%
@SET Hour=%T:~8,2%
@SET Minute=%T:~10,2%
@SET Second=%T:~12,2%
@SET "DateFormat=%Year%%Month%%Day%_%Hour%%Minute%%Second%"
@SET BackupFileName=PGBackup_%PGDATABASE%_%DateFormat%.tar

IF not exist %PGBINPATH%\pg_dump.exe ( @echo %PGBINPATH%\pg_dump.exe bulunamadi.
goto :eof )IF not exist %BACKUPFILESPATH% (mkdir %BACKUPFILESPATH%)
cls

IF exist %BACKUPFILESPATH% (
@echo Backup Filename: %BACKUPFILESPATH%\%BackupFileName%
@echo.
%PGBINPATH%\pg_dump.exe -i -h %HOSTNAME% -p 5432 -U %PGUSER% -F t -b -v -f %BACKUPFILESPATH%\%BackupFileName% %PGDATABASE%
) ELSE ( @Echo %BACKUPFILESPATH% bulunamadi.)
pause

Download: PGBackup_v2_Database.rar

 

Scripti geliştirmek üzere pg_dump.exe kullanımı konusunda ayrıntılı bilgi için aşağıdaki linki inceleyebilirsiniz:

http://www.postgresql.org/docs/9.4/static/app-pgdump.html

Hiç yorum yok:

Yorum Gönder