Was ist der Beste uns sicherste Weg PostgreSQL Datenbanken beim Kunden jeden Abend auf das Backupsystem zu saven (Windows Installation)? pg_dump?
Ich habe versucht über eine bat Datei automatisch einen Dump zu erstellen und diese dann in einen Task einzubauen, welcher automatisch jeden Abend ausgeführt wird.
pg_dump.exe db1 -f c:\temp\db1.tar -F t -h localhost -U postgres
Jedoch braucht er für diese Version jedes Mal das Passwort, welches ich über die Batch Datei nicht mitgeben kann. Einzige Variante über eine passwort.txt, welche das Passwort beinhaltet.
was mich jetzt doch noch interessiert (hat nichts mit Deiner Frage zu tun): Wie stellst Du sicher, dass während der Zeit des Backups kein User auf die Datenbank zugreift?
kanst Dir ja das nachfolgede CMD-Script anpassen. Es funktioniert!
@echo off
set CODEPAGE_DOS=850
set CODEPAGE_WIN=1252#
REM ========================================================================
set DIR_CMD=???-DIRECTORY OF POSTGRESQL BIN-???
set CMD_PSQL=%DIR_CMD%\psql.exe
set CMD_DUMP=%DIR_CMD%\pg_dump.exe
set CMD_DUMP_ALL=%DIR_CMD%\pg_dumpall.exe
REM ========================================================================
set PGHOST=???-HOST-???
set PGDATABASE=???-DATABASE-???
set PGUSER=???-USER-???
set PGPASSWORD=???-PASSWORD-???
set PGPORT=???-PORT-???
set PGCODING=???-CODING-???
REM ========================================================================
set DST_PATH=%~dp0\Data
REM ========================================================================
echo.%~n0
echo.
echo.
echo.Bachup Directory: %DST_PATH%
echo.
REM ========================================================================
set DST_FILE=Backup_Database_%PGDATABASE%.tar
%CMD_DUMP% %PGDATABASE% -Ft > "%DST_PATH%\%DST_FILE%"
echo.Backup created: %DST_FILE%
echo.
REM ========================================================================