postgres 数据库备份

postgres数据提供了pg_dump备份数据库工具

su postgres
在此用户下面会有一个命令工具如ceatedb,dropdb,pgsql,pg_dump等工具   

备份数据库使用pg_dump

备份数据库

备份数据库有多种的format

  • SQL转储
  • 文件系统级别备份(冷备份)
  • 在线热备份(归档)
SQL转储
  • pg_dump -h localhost -U postgres databasename > /opt/databasename.bak
  • psql gpscloud < /opt/databasename.ba
另一种备份方式(推荐)
  • 备份 : pg_dump –host 127.0.0.1 –port 5432 –username “username” –no-password –format custom –blobs –verbose –file “/opt/bak.custom” “bak”
  • 恢复 : pg_restore –host 127.0.0.1 –port 5432 –username “postgres” –dbname “postgres” –no-password –verbose “path”

如果出现认证失败
需要将pg_hap.conf的本地认证设置成trust

pg_dump只能备份单个数据库,而且恢复的时候需要创建空数据库。pg_dumpall可以备份所有数据库,并且备份角色、表空间。

1,创建数据库
createdb pg1
createdb pg2
2, pg1中创建表并插入数据
psql pg1
pg=# create table tb1(a int)
pg=# insert into tb1(a) values(1);
3, pg2中创建表并插入数据
psql pg2
pg=# create table tb2(a int)
pg=# insert into tb2(a) values(2);
4,备份数据库
pg_dumpall > /usr/local/pgsql/backup/pg_all.dmp
5,删除数据库
dropdb pg1
dropdb pg2
6,恢复数据库
psql –f /usr/local/pgsql/backup/pg_all.dmp postgres
可以指定任何数据库名,如果恢复到一个空的集群中,通常使用postgres数据库
7,查看数据库pg1是否恢复
psql pg1
pg= select * from tb1;
8,查看数据库pg2是否恢复
psql pg2
pg= select * from tb2;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值