PostgreSQL 数据库的备份和恢复

1. 备份数据库:

a. 备份格式选择

  • *.bak:压缩二进制格式
  • *.sql:明文转储
  • *.tar:tarball

b. 使用 pg_dump 命令备份数据库

  1. 使用 pg_dump 备份整个数据库:

    pg_dump -U 数据库角色 dbname > backup.sql
    pg_dump -U postgres mydata > mydata.sql

这将备份整个数据库,并将备份数据保存到 backup.sql 文件中。

注:查询数据库角色语句:

复制代码
SELECT rolname FROM pg_roles;
  1. 使用 pg_dump 备份特定表或特定模式**:

    pg_dump -U username -t tablename dbname > backup.sql

或者:

复制代码
pg_dump -U username -n schemaname dbname > backup.sql

这将备份特定表或特定模式的数据,并将备份数据保存到 backup.sql 文件中。

c. 将数据库备份输出到指定的文件

sh 复制代码
pg_dump -U username -d dbname -f /path/to/backup.sql
  • -U username 指定要连接到数据库的用户名。
  • -d dbname 指定要备份的数据库名称。
  • -f /path/to/backup.sql 指定备份文件的路径和名称。

d. 备份所有的数据库

sh 复制代码
pg_dumpall > backup.sql
或
pg_dumpall > backup.bak

2. 恢复数据库:

  1. 使用 pg_restore 工具恢复数据库

    pg_restore -U username -d dbname < backup.sql

在这个命令中,-U username 指定要连接到数据库的用户名,-d dbname 指定要恢复的数据库名称。恢复操作将从 backup.sql 文件中读取备份数据,并将其导入到指定的数据库中。

3. 注意事项:

  • 在进行数据库恢复之前,请确保已经创建了要恢复到的数据库。如果数据库不存在,可以使用 createdb 命令创建新的数据库。
  • 在进行数据库恢复之前,请确保备份文件的路径和名称正确,并且备份文件具有合适的权限。
  • 在进行数据库恢复之前,请备份现有的数据库,以防止意外数据丢失。
相关推荐
白露与泡影6 分钟前
Redis:我是如何与客户端进行通信的
数据库·redis·缓存
一只小bit4 小时前
MySQL 索引:从聚簇到普通索引,如何加快查询效率?
数据库·mysql·oracle
洛克大航海6 小时前
解锁 PySpark SQL 的强大功能:有关 App Store 数据的端到端教程
linux·数据库·sql·pyspark sql
XueminXu8 小时前
ClickHouse数据库的表引擎
数据库·clickhouse·log·表引擎·mergetree·special·integrations
冒泡的肥皂8 小时前
MVCC初学demo(二
数据库·后端·mysql
代码程序猿RIP8 小时前
【Redis 】Redis 详解以及安装教程
数据库·etcd
小生凡一8 小时前
redis 大key、热key优化技巧|空间存储优化|调优技巧(一)
数据库·redis·缓存
oe10198 小时前
好文与笔记分享 A Survey of Context Engineering for Large Language Models(上)
数据库·笔记·语言模型·agent·上下文工程
小马哥编程8 小时前
【软考架构】案例分析-对比MySQL查询缓存与Memcached
java·数据库·mysql·缓存·架构·memcached
一 乐8 小时前
高校后勤报修系统|物业管理|基于SprinBoot+vue的高校后勤报修系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·毕设