重庆思庄Oracle、、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 202|回复: 0
打印 上一主题 下一主题

PostgreSQL的备份方式

[复制链接]
跳转到指定楼层
楼主
发表于 6 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 逻辑备份(pg_dump 和 pg_dumpall)
1.1 使用 pg_dump 备份单个数据库
pg_dump 是 PostgreSQL 内置的逻辑备份工具,可以将数据库导出为 SQL 脚本或二进制文件。


备份命令
备份为 SQL 文件:


pg_dump -U username -d database_name -F p -f /path/to/backup.sql
1
参数说明:


-U: 用户名。
-d: 数据库名称。
-F p: 输出为纯文本格式(Plain text)。
-f: 指定备份文件路径。
备份为压缩文件:


pg_dump -U username -d database_name -F c -f /path/to/backup.dump

参数说明:


-F c: 压缩格式(Custom format)。
压缩格式可以使用 pg_restore 还原。
还原命令
对于 SQL 文件:
psql -U username -d new_database_name -f /path/to/backup.sql
1
对于压缩文件:
pg_restore -U username -d new_database_name /path/to/backup.dump
1
1.2 使用 pg_dumpall 备份所有数据库
pg_dumpall 用于备份整个 PostgreSQL 实例(包括所有数据库和全局对象,如角色、权限等)。


备份命令
pg_dumpall -U username -f /path/to/backup_all.sql
1
还原命令
psql -U username -f /path/to/backup_all.sql
1
2. 物理备份(pg_basebackup)
2.1 使用 pg_basebackup
pg_basebackup 是 PostgreSQL 提供的物理备份工具,适合对数据库进行完整二进制备份。


备份命令
pg_basebackup -U replication_user -D /path/to/backup_directory -Fp -Xs -P
1
参数说明:


-U: 备份用户(需要配置 replication 权限)。
-D: 目标备份目录。
-Fp: 文件模式(Plain format)。
-Xs: 包含 WAL 日志。
-P: 显示进度。
还原步骤
停止 PostgreSQL 服务:
systemctl stop postgresql
1
将备份数据复制到 PostgreSQL 数据目录:
cp -r /path/to/backup_directory/* /var/lib/pgsql/data/
1
启动 PostgreSQL 服务:
systemctl start postgresql
1
3. 归档日志备份(WAL 日志)
归档日志备份适用于需要时间点恢复 (Point-in-Time Recovery, PITR) 的场景。


步骤
配置归档模式:
编辑 postgresql.conf:


archive_mode = on
archive_command = 'cp %p /path/to/archive/%f'
1
2
重启 PostgreSQL:


systemctl restart postgresql
1
定期备份归档日志:
配置脚本定期复制 /path/to/archive/ 目录。


使用日志和备份恢复:
在需要恢复时,结合初始物理备份和归档日志文件执行恢复。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2025-4-16 11:31 , Processed in 0.083620 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表