進入到Postgresql下的bin文件夾,會看到很多的exe文件,這就是PostgreSQL內置的工具了.裏面會找到pg_dump.exe.咱們實際使用的就是這個.linux
用法:sql
1. cd C:\Program Files\PostgreSQL\9.3\bin 2. pg_dump -h localhost -U postgres kar > C:\kar.bak 3. psql -h localhost -U postgres -d KunlunApple < C:\kar.bak
1.開始-運行-cmd 彈出dos控制檯,而後進入PostgreSQL安裝目錄bin下,如上面第一條命令.數據庫
2.備份windows
pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak bash
指令解釋:markdown
如上面第二條進行備份.less
3.恢復工具
psql -h localhost -U postgres -d KunlunApple < C:\kar.bakpost
指令解釋:ui
以上全部的是針對windows.
Linux:
在linux裏依然有效。有一個值得注意的是:若是直接進入PostgreSQL的安裝目錄bin下,執行命令,可能會出現 找不到pg_dump,psql 的現象,咱們在能夠這樣:
備份
/opt/PostgreSQL/9.0/bin/pg_dump -h 164.82.233.54 -U postgres databasename > databasename.bak
恢復:
/opt/PostgreSQL/9.0/bin/psql -h localhost -U postgres -d databasename < databasename.bak
打開 pg_hba.conf
修改
host all all 0.0.0.0/0 md5
在windows2003安裝失敗,報警告,而且沒有postgresql服務
problem running post-install step.Installation may not complete correctly
the database cluster initialisation failed
http://forums.enterprisedb.com/posts/list/3984.page
這我的是PostgreSQL 9.3.5
http://my.oschina.net/congqian/blog/135590
這我的是postgresql-windows-9.2.4版本.
都是和權限有關係.
後來諮詢了下實施的同事,
1.安裝前,若是安裝過,請卸載,並刪除postgresql的目錄
2.安裝前,建立好你要安裝到的目錄,好比 D:\xxx\postgresql 目錄.
右鍵postgresql文件夾,設置user有控制權限
3.安裝過程當中,選擇Locale選擇 chinese singnapore
4.按常規安裝便可成功.
發生這種狀況的緣由在於某些 PostgreSQL 說依賴的庫依賴於 user32.dll ,而 user32.dll 要從"Desktop Heap"中分配內存。"Desktop Heap"用於爲每一個登錄會話分配內存,每一個非交互式會話大約分配 512KB ,同時每一個 postgres.exe 進程消耗大約 3.2KB 的"Desktop Heap",這樣大約 125 鏈接就差很少能夠耗盡所有的"Desktop Heap"空間。不過這種狀況不會發生在從命令行運行的場合,由於命令行是交互式登錄會話,一般只須要 3MB 大小的"Desktop Heap"就能夠了。 http://support.microsoft.com/kb/184802
要解決這個問題,你必須經過修改註冊表中的 SharedSection 值來增長非交互式"Desktop Heap"的尺寸,具體方法參見微軟知識庫中的文章。須要注意的是,設置過高的值有可能致使系統沒法啓動。
新建bat文件,使用如下腳本
@ECHO OFF @setlocal enableextensions @cd /d "%~dp0" SET PGPATH=D:\db\postgresql\bin\ SET SVPATH=E:\DatabaseBackup\ SET PRJDB=dbname SET DBUSR=postgres FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k SET DBDUMP=%PRJDB%_%d%.bak @ECHO OFF %PGPATH%pg_dump -h localhost -U postgres %PRJDB% > %SVPATH%%DBDUMP% echo Backup Taken Complete %SVPATH%%DBDUMP% forfiles /p %SVPATH% /d -5 /c "cmd /c echo deleting @file ... && del /f @path"