PostgreSQL9.2的WINDOWS下備份與還原pg_dump實現命令列下自動備份

來源:互聯網
上載者:User
pg_dump實現命令列下自動備份

這次在項目中需要利用工具pg_dump.exe來實現對PostgresQL資料庫的備份,之前的命令如下:

pg_dump --host localhost --port 5432 --username

"postgres" --format custom --blobs --verbose --file "C:\20111209pm-xfserver.backup" pipeline

但是,在測試的過程中,發現命令列下,需要輸入Password:才能繼續執行,這樣實現不了自動備份,而參數裡也沒有象設定username這樣 --password,網上說為了安全不提供這種參數。

 

後來,經過查閱資料,找到了一個方法,就是在命令前添加一行:

set PGPASSWORD=<password>

就可以了。

 

這樣,把命令集中在批次檔中執行,整個檔案看起來就像這個樣子:

備份:

@echo off
c:

cd C:\Program Files\PostgreSQL\9.2\bin

set PGPASSWORD=dsideal

pg_dump --host localhost --port 5432 --username "postgres" --format custom --blobs --verbose --file "C:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%.dump" dsideal
pause

 

 還原 

恢複資料庫執行個體dsideal

 為了示範好實驗,我們首先要刪除掉這個資料庫:dsideal

然後馬上:

cd C:\Program Files\PostgreSQL\9.2\bin

psql -U postgres

以迅雷不及掩耳盜鈴的速度快速執行:

drop database dsideal;

如果你的運氣好,那麼刪除成功,否則就需要再次重啟一下WINDOWS 服務。

 

還原的指令:

pg_restore.exe -hlocalhost -Upostgres -ddsideal -v "C:\2013-04-22-15-57-52.dump"

當然,前提是你的資料庫 dsideal需要提前建立好,它不負責建立資料庫的。

 

如果是在LINUX環境中,那麼簡單了:

.另一種是查詢出使用資料庫的服務進程,接著將服務進程殺死,最後刪除資料庫

圖1

圖1中,資料庫“test_db”不能被刪除,原因就是有其他使用者正在使用它,那要做的就是利用“ps -ef|grep test_db|grep -v grep”查出使用它的服務進程,見圖2

                                                               圖2

這時只要將圖2中三個服務進程殺死,然後再執行資料庫的刪除操作,見圖3、圖4

圖3

 

這次在項目中需要利用工具pg_dump.exe來實現對PostgresQL資料庫的備份,之前的命令如下:

pg_dump --host localhost --port 5432 --username

"postgres" --format custom --blobs --verbose --file "C:\20111209pm-xfserver.backup" pipeline

但是,在測試的過程中,發現命令列下,需要輸入Password:才能繼續執行,這樣實現不了自動備份,而參數裡也沒有象設定username這樣 --password,網上說為了安全不提供這種參數。

 

後來,經過查閱資料,找到了一個方法,就是在命令前添加一行:

set PGPASSWORD=<password>

就可以了。

 

這樣,把命令集中在批次檔中執行,整個檔案看起來就像這個樣子:

備份:

@echo off
c:

cd C:\Program Files\PostgreSQL\9.2\bin

set PGPASSWORD=dsideal

pg_dump --host localhost --port 5432 --username "postgres" --format custom --blobs --verbose --file "C:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%.dump" dsideal
pause

 

 還原 

恢複資料庫執行個體dsideal

 為了示範好實驗,我們首先要刪除掉這個資料庫:dsideal

然後馬上:

cd C:\Program Files\PostgreSQL\9.2\bin

psql -U postgres

以迅雷不及掩耳盜鈴的速度快速執行:

drop database dsideal;

如果你的運氣好,那麼刪除成功,否則就需要再次重啟一下WINDOWS 服務。

 

還原的指令:

pg_restore.exe -hlocalhost -Upostgres -ddsideal -v "C:\2013-04-22-15-57-52.dump"

當然,前提是你的資料庫 dsideal需要提前建立好,它不負責建立資料庫的。

 

如果是在LINUX環境中,那麼簡單了:

.另一種是查詢出使用資料庫的服務進程,接著將服務進程殺死,最後刪除資料庫

圖1

圖1中,資料庫“test_db”不能被刪除,原因就是有其他使用者正在使用它,那要做的就是利用“ps -ef|grep test_db|grep -v grep”查出使用它的服務進程,見圖2

                                                               圖2

這時只要將圖2中三個服務進程殺死,然後再執行資料庫的刪除操作,見圖3、圖4

圖3

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.