欢迎来到夜的世界

莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生.料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。
扩大
缩小

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)

 

 

posted on 2020-05-14 16:09  二十四桥_明月夜  阅读(2957)  评论(0编辑  收藏  举报

导航