PostGresql备份和恢复

备份

pg_dump 数据库名 > 备份文件名
pg_dump将结果写到标准输出中,可以用操作系统的重定向命令将结果写到文件中.
可以在运行数据库的机器上执行pg_dump命令,也可以在其它的机器上执行pg_dump命令。 可以使用选项-h和-p来指定运行数据库的主机名和数据库监听的端口。例如:

pg_dump -h db_server1 -p 5432
db_name > backup_file 

该命令连接机器db_server1上在端口5432处监听的数据库,将数据库db_name的数据备份到文件backup_file中。如果pg_dump命令没有使用-h-p选项,将使用环境变量PGHOST的值作为机器名,使用环境变量PGPORT的值作为数据库的端口。如果用户没有定义环境变量PGHOST,默认使用本机名作为运行数据库的机器名

一般情况下,应该使用超级用户连接数据库进行备份操作,因为超级用户可以访问数据库中的任何信息。使用普通数据用户连接数据库,有些表可能无法访问。

恢复

pg_dump创建的备份文件可以被工具psql识别。因此可以使用psql来读取pg_dump创建的备份文件,实现恢复数据库的功能。例如:
psql dbname < backup_file

psql后面的参数dbname指定的数据库必须已经存在。如果不存在,用户应当先创建dbname指定的数据库,然后再执行恢复数据的命令。psql也支持和pg_dump一样的命令行选项,如-h和-p等。创建数据库dbname时,必须使用template0作为模板数据库,可以使用工具createdb创建数据库,也可以在psql中执行SQL命令create database来创建数据库。下面是两个实例:

  • createdb -T template0 dbname
  • create database dbname template=template0
    另外,在执行恢复数据的操作以前,那些拥有数据库备份中的数据库对象或则对这些对象有访问权限的数据库的用户必须已经在数据库中存在,否则,恢复数据库以后,数据库备份中的数据库对象的所有者会发生改变。

参考地址: http://zwb8686.blog.51cto.com/982393/1140172

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值