天天看點

pgsql資料庫備份與還原

-- 一個隻會使用java的男人

一、如果是在同一個服務下複制一個資料庫,pgsql相當簡單,一條語句即可完成

CREATE DATABASE taobao_copy WITH TEMPLATE taobao;

但是需要沒有服務連接配接資料庫才能複制。

二、備份 - 非明文(以window環境為例)

同mysql一樣,pgsql也可以滿足資料和表的備份、還原

進入到pgsql按照目錄,找到bin目錄下的pg_dump.exe程式,執行

1、備份: pg_dump.exe -U postgres -h 192.168.5.21 -p 5432 -W -d taobao >"F://a.backup"

-U:資料庫使用者名,-h: 資料庫所在機器ip, -p:端口号, -W: 強制密碼提示,  -d: 資料庫名 

2、還原:這種方式的備份隻能使用以下方式還原。

psql -U postgres -h 127.0.0.1 -p 5432 taobao_copy<F://a.backup

三、備份-使用restore還原:

1、備份: pg_dump.exe -U postgres -h 192.168.5.21 -p 5432 -W -F c -f "F://b.backup" "taobao"

-U:資料庫使用者名,-h: 資料庫所在機器ip, -p:端口号, -W: 強制密碼提示,  -d: 資料庫名 

2、還原: 使用pg_restore

pg_restore.exe -U postgres -h 192.168.5.21 -p 5432 -W -d taobao_copy "F://b.backup"

四、以上方式打開檔案發現是copy類型,如果我們想備份成sql檔案呢?

1、pg_dump.exe -U postgres -h 192.168.5.21 -p 5432 -W -s -f "F://c.sql" taobao

-s:隻存表結構,不包括資料

2、備份資料,備份成insert語句

pg_dump.exe -U postgres -h 192.168.5.21 -p 5432 -W --inserts -a -f "F://b.sql" "lediaocha"

--inserts:使用insert語句  -a:隻備份資料,不備份表結構。