PostgreSQL数据库逻辑备份与恢复

1 PG备份工具介绍
数据库类型 | 备份类型 | 还原方法 | 特点 |
pg_dump | 逻辑备份 | pg_restore | 只能备份单库,支持并发备份 |
pg_dumpall | 逻辑备份 | 输入重定向 | 只能备份全库,不支持并发备份 |
pg_basebackup | 物理备份 | 文件替换 | 需要准备另一个数据库实例进行备份,常用于流复制搭建 |
pg_start_backup() pg_stop_backup() | 物理备份 | 文件替换 | 在线热备份,可以不开启归档 |
pgbackrest | 物理备份 | pgbackrest | 支持全备、增备、差备,结合归档可恢复任意时间点 需单独安装插件,必须开启归档 |
注意事项:逻辑备份推荐使用pg_dump。
2 pg_dump工具
2.1 备份
pg_dump只能备份单个数据库,不会导出角色和表空间相关的信息,便于迁移或异机恢复。
# pg_dump --help 可以查看用法
-U, --username=NAME 以指定的数据库用户联接
-v, --verbose 详细输出模式
-F, --format=c|d|t|p 导出文件的格式,-Fc备份为二进制格式, 压缩存储. 并且可被 pg_restore 用于精细还原。-Fp备份为文本, 大库不推荐
-d, --dbname=DBNAME 指定数据库名
-O, --no-owner 在明文格式中, 忽略恢复对象所属者
-f, --file=FILENAME 导出后保存的文件名
--insert 导出成sql语句类型(耗时长)
导出库语句参考:pg_dump -U postgres -v -Fc -d cosmic_fi --no-owner -f /data/backup/cosmic_fi.dump

2.2 恢复
pg_restore 可以从pg_dump创建的存档中恢复一个PostgreSQL数据库
# pg_restore --help 可以查看用法
-U, --username=NAME 以指定的数据库用户联接
-O, --no-owner 跳过对象所有权的恢复
-d, --dbname=DBNAME 指定数据库名
-v, --verbose 详细信息模式
--role=ROLENAME 在恢复之前执行SET ROLE命令
PostgreSQL数据库逻辑备份与恢复
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



