創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)建站長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為玉溪企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì),玉溪網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。這篇文章將為大家詳細(xì)講解有關(guān)postgresql恢復(fù)數(shù)據(jù)庫(kù)的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
PostgreSQL自帶一個(gè)客戶端pgAdmin,里面有個(gè)備份,恢復(fù)選項(xiàng),也能對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份 恢復(fù)(還原),但最近發(fā)現(xiàn)數(shù)據(jù)庫(kù)慢慢龐大的時(shí)候,經(jīng)常出錯(cuò),備份的文件過(guò)程中出錯(cuò)的幾率那是相當(dāng)大,手動(dòng)調(diào)節(jié)灰常有限。所以一直尋找完美的備份恢復(fù)方案。
夢(mèng)里尋他千百度,伊人卻在燈火闌珊處...其實(shí)PostgreSQL內(nèi)置不少的工具,尋找的備份恢復(fù)方案就在其中:pg_dump,psql。這兩個(gè)指令在數(shù)據(jù)庫(kù)的安裝目錄下,比如我自己本地安裝的,路徑形如:C:\Program Files\PostgreSQL\9.5\;然后進(jìn)入到bin文件夾,會(huì)看到不少的exe文件,這就是PostgreSQL內(nèi)置的工具了。里面會(huì)找到 pg_dump.exe,psql.exe兩個(gè)文件。我們?cè)趺从盟麄儯?/p>
用法:
備份數(shù)據(jù)庫(kù),指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
開(kāi)始-運(yùn)行-cmd 彈出dos控制臺(tái);然后 在控制臺(tái)里,進(jìn)入PostgreSQL安裝目錄bin下:
cd C:\Program Files\PostgreSQL\9.0\bin
最后執(zhí)行備份指令:
pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
指令解釋:如上命令,pg_dump 是備份數(shù)據(jù)庫(kù)指令,164.82.233.54是數(shù)據(jù)庫(kù)的ip地址(必須保證數(shù)據(jù)庫(kù)允許外部訪問(wèn)的權(quán)限哦~),當(dāng)然本地的數(shù)據(jù)庫(kù)ip寫(xiě) localhost;postgres 是數(shù)據(jù)庫(kù)的用戶名;databasename 是數(shù)據(jù)庫(kù)名。> 意思是導(dǎo)出到C:\databasename.bak文件里,如果沒(méi)有寫(xiě)路徑,單單寫(xiě)databasename.bak文件名,那么備份文件會(huì)保存在C: \Program Files\PostgreSQL\9.0\bin 文件夾里。
恢復(fù)數(shù)據(jù)庫(kù),指令如下:
psql -h localhost -U postgres -d databasename < C:\databasename.bak(測(cè)試沒(méi)有成功) pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password --verbose "databasename.backup"(測(cè)試成功)
指令解釋:如上命令,psql是恢復(fù)數(shù)據(jù)庫(kù)命令,localhost是要恢復(fù)到哪個(gè)數(shù)據(jù)庫(kù)的地址,當(dāng)然你可以寫(xiě)上ip地址,也就是說(shuō)能遠(yuǎn)程恢復(fù)(必須保證 數(shù)據(jù)庫(kù)允許外部訪問(wèn)的權(quán)限哦~);postgres 就是要恢復(fù)到哪個(gè)數(shù)據(jù)庫(kù)的用戶;databasename 是要恢復(fù)到哪個(gè)數(shù)據(jù)庫(kù)。< 的意思是把C:\databasename.bak文件導(dǎo)入到指定的數(shù)據(jù)庫(kù)里。
以上所有的是針對(duì)windows而言的,如果在linux下,會(huì)不會(huì)有效?
在linux里依然有效。有一個(gè)值得注意的是:如果直接進(jìn)入PostgreSQL的安裝目錄bin下,執(zhí)行命令,可能會(huì)出現(xiàn)找不到pg_dump,psql的現(xiàn)象,我們?cè)诳梢赃@樣:
備份:
/opt/PostgreSQL/9.5/bin/pg_dump -h 164.82.233.54 -U postgres databasename > databasename.bak
恢復(fù):
/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename < databasename.bak
關(guān)于postgresql恢復(fù)數(shù)據(jù)庫(kù)的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。