PostgreSQL数据库备份和恢复

本文详细介绍了PostgreSQL数据库的两种备份与恢复方法:通过`bak`方式的命令行操作,包括`pg_dump`和`psql`,以及利用`sql`方式的pg_dumpall和pg_dump,展示了备份与恢复的步骤和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、bak方式备份和恢复

(一)备份

1、cmd到PostgreSQL安装目录bin下

2、备份命令

pg_dump -h 127.0.0.1 -U postgres postgres > D:\pgdb.bak

3、指令解释

如上命令,

pg_dump 是备份数据库指令;

127.0.0.1是数据库的ip地址;

postgres 是数据库的用户名;

postgres 是数据库名;

> 意思是导出到指定目录;

(二)恢复

1、恢复命令

psql -h localhost -U postgres -d test < D:\pgdb.bak

2、指令解释

如上命令,

psql 是恢复数据库指令;

localhost是要恢复的数据库的ip地址;

postgres 是数据库的用户名;

test 是数据库名;

> 意思是导出到指定目录;

(三)Linux中PostgreSQL数据库备份和恢复

在linux里依然有效。有一个值得注意的是:如果直接进入PostgreSQL的安装目录bin下,执行命令,可能会出现 找不到pg_dump,psql的现象,我们在可以这样:

1、备份

/opt/PostgreSQL/9.5/bin/pg_dump -h 127.0.0.1 -U postgres postgres > pgdb.bak

2、恢复

/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d postgres < pgdb.bak

二、sql方式备份和恢复

这里我们用到的工具是pg_dump和pg_dumpall。

这种方式可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。它会产生一个脚本文件,里面包含备份开始时,已创建的各种数据库对象的SQL语句和每个表中的数据。可以使用数据库提供的工具pg_dumpall和pg_dump来进行备份。pg_dump只备份数据库集群中的某个数据库的数据,它不会导出角色和表空间相关的信息,因为这些信息是整个数据库集群共用的,不属于某个单独的数据库。pg_dumpall,对集簇中的每个数据库调用pg_dump来完成该工作,还会还转储对所有数据库公用的全局对象(pg_dump不保存这些对象)。 目前这包括适数据库用户和组、表空间以及适合所有数据库的访问权限等属性。

例如,在我的计算机上,可使用如下命令对名为dbname的数据库进行备份:

 pg_dump  –h 127.0.0.1  -p  5432  -U  postgres -c  -C –f  pgdb.sql  postgres

使用如下命令可对全部pg数据库进行备份。

pg_dumpall –h 127.0.0.1 –p 5432 -U postgres –c  -C –f pgdb.sql

恢复方式很简单。执行恢复命令即可:

psql –h 127.0.0.1 -p 5432 -U postgres –f pgdb.sql
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值