sql >> データベース >  >> RDS >> PostgreSQL

バッチファイルのpg_dumpですべてのデータベースをバックアップする方法-postgres

    スクリップを再確認してください、私はその場でそれを行います。 pg_dumpの-wが何であるかを覚えていません。このようにして、各データベースのファイルを取得します。提案として、Windowsのフォルダパスについて話すときは/の代わりに\を使用してください。

    @echo off
    
    set BASELOG=LOG
    set BACKUPDIR=C:/postgres/backups/
    set BACKUPDIR2=C:\postgres\backups
    set PGHOST=localhost
    set PGUSER=postgres
    set PGBIN="C:/Program Files/PostgreSQL/9.3/bin/"
    set FILELOG=log.txt
    
    set BACKUPDIRDATE="%BACKUPDIR%%date%/"
    for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
     set dow=%%i
     set month=%%j
     set day=%%k
     set year=%%l
    )
    if not exist %BACKUPDIRDATE% mkdir %BACKUPDIRDATE%
    
    (
    
    if exist dbs.lst del dbs.lst
    psql -h %PGHOST% -p 5432 -U %PGUSER% -c "SELECT datname FROM pg_database WHERE datistemplate = false;" -o "dbs.lst"
    
    for /f %%a IN (dbs.lst) DO (
    
        echo Backup start %date%  %time%
        %PGBIN%pg_dump -w -i -h %PGHOST% -U %PGUSER% -F c -b -v -f "%BACKUPDIRDATE%-%%a.compressed" %%a
        echo End of backup %BASELOG%
    
    )
    
    FORFILES /p %BACKUPDIR2% /s /D -7 /C "cmd /c rd /S /Q @path"
    echo Files are deleted
     )>> %BACKUPDIRDATE%%FILELOG% 2>&1
    



    1. SQL ServerでのACOS()の例

    2. 親と無限の子を返すステートメントを選択します

    3. 配列要素にアクセスする方法

    4. 整数配列をc#でoracleプロシージャに渡します