PostgreSQL是一個強大的開源關(guān)系數(shù)據(jù)庫系統(tǒng),它支持豐富的數(shù)據(jù)類型(如JSON和JSONB類型、數(shù)組類型等)和自定義類型。為了保障數(shù)據(jù)安全和完整性,建議大家做好數(shù)據(jù)庫備份。本文主要介紹下如何備份和恢復(fù)PostgreSQL數(shù)據(jù)庫。
要備份PostgreSQL數(shù)據(jù)庫,請登錄到數(shù)據(jù)庫服務(wù)器,然后切換到Postgres用戶帳戶,并運行pg_dump,如下所示:
$ pg_dump idcspy > idcspy.sql
pg_dump通過使用“-F”選項支持其他輸出格式,其中c表示自定義格式的歸檔文件,d表示目錄格式,t表示tar格式的文件。所有格式都適合輸入pg_restore。
$ pg_dump -F c idcspy > idcspy.dump
$ pg_dump -F t idcspy > idcspy.tar
要以目錄輸出格式轉(zhuǎn)儲輸出,請使用-f標(biāo)志指定目標(biāo)目錄。
$ pg_dump -F d idcspy -f idcspydirectory
要備份所有PostgreSQL數(shù)據(jù)庫:
$ pg_dumpall > all_pg_dbs.sql
您可以使用下面命令pgsql恢復(fù)轉(zhuǎn)儲。
$ pgsql -f all_pg_dbs.sql postgres
通過上述步驟,如無意外,您便成功備份好了PostgreSQL數(shù)據(jù)庫。接下來,您要是想恢復(fù)PostgreSQL數(shù)據(jù)庫,則可運行下面命令。
$ psql idcspy < idcspy.sql
使用pg_restore命令進(jìn)行恢復(fù),如下所示:
$ pg_restore -d idcspy idcspy.dump
$ pg_restore -d idcspy idcspy.tar
$ pg_restore -d idcspy idcspydirectory
如果您的數(shù)據(jù)庫很大,那么您可以通過壓縮它來進(jìn)行備份。
$ pg_dump idcspy | gzip > idcspy.gz
如果您希望備份遠(yuǎn)程PostgreSQL數(shù)據(jù)庫,可以使用下面的命令。在下面的示例中,IP地址1.1.1.1是遠(yuǎn)程數(shù)據(jù)庫服務(wù)器(用您的遠(yuǎn)程數(shù)據(jù)庫服務(wù)器IP地址替換1.1.1.1), rack是用戶名,1123是端口,idcspy是數(shù)據(jù)庫名。
$ pg_dump -U rack -h 1.1.1.1 -p 1123 idcspy > idcspy.sql
PostgreSQL作為先進(jìn)的數(shù)據(jù)庫管理系統(tǒng),現(xiàn)在許多主機商也推出了完全托管的PostgreSQL服務(wù),比如Vultr、DigitalOcean等。您可以選擇這些托管服務(wù),然后由主機商來維護和管理數(shù)據(jù)庫,您只需專注業(yè)務(wù)發(fā)展。