postgres數據庫的數據備份與恢復


一 . 使用 pgAdmin4 

1 . 備份 

 

 

 

 

2 . 還原 

  注意 : 在還原數據庫的時候,要先把備份的那個數據庫在pgAdmin4上刪除 

 

 

 

二 . 命令行 

1.備份 

  pg_dump是一個非常有用的備份工具,它甚至可以在數據庫正在使用的事實進行完整的備份。pg_dump執行時會將數據庫備份成一個文本文件,這個文件包含了整個數據庫全部表的創建和數據的寫入操作的SQL語句,使用這些語句就可以重建數據庫了。
  注意 : 使用命令去備份數據的時候,要進入 postgres/bin 目錄下面
語法 : 輸入語句之后,會出現 口令 : (輸入密碼)
  
pg_dump [options...] [dbname]
#使用postgres用戶登錄並備份db1數據庫到/bak/db1_bak文件
pg_dump -U postgres -f /bak/db1_bak db1
#使用pg_dump備份數據庫中指定的表
pg_dump -U postgres -t tb1 -t tb2 -f /bak/db1_bak db1
使用pg_dumpall備份整個服務器的數據庫
#使用pg_dumpall備份整個服務器的數據庫
pg_dumpall -U postgres -f /bak/db_bak
pg_dump -U postgres -h 127.0.0.1 -p 5432  table> /c/test
# -U : 數據庫用戶名
# -h : 數據庫所在機器的用戶名,也可以是回環地址
# -p : 端口號 
# table: 要備份的數據庫名
# > 后面的就是備份到的地址

 免密碼輸入 : 需要修改配置文件(在windows上),可能會不太安全. 打開  postgres/data/pg_hba.conf  文件 . (在命令行,上面的命令都不要密碼,但是當我用Python去執行的時候只有上面這個可以.不知道原因)

 

 

 

2 . 還原

  pg_restore可以還原由pg_dump備份的文件,它會重新生成包括數據在內的所有用戶定義的類型、函數、表、索引的所有別要的命令

pg_restore -d db1 -U postgres -C /bak/db1_bak
#使用-d選項執行數據庫的名稱,-C指定備份文件的路徑

  psql是一個PostgreSQL的終端,它可以運行用戶輸入的語句。另外輸入的語句還可以來自一個文件。所以,對於備份的包含create、insert語句的文本文件,可以使用psql恢復到數據中。

psql -d db1 -U postgres -f /bak/db1_bak

 

三 . 代碼備份 

  本人使用的是Python 

import os

# 要保存的目錄  和 備份的文件名 databasename2.sql
backup_path = r'G:\code\rext\back\databasename2.sql'

# 進入postgres/bin 目錄下 
os.chdir('E:/postgres/bin')

# 備份的命令 
a = "pg_dump -U postgres -h 127.0.0.1 -p 5432  grid9 > {} ".format(backup_path)

# 利用 os 模塊在終端執行命令a
os.system(a)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM