PostgreSQL数据库逻辑备份与恢复

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

PostgreSQL数据库逻辑备份与恢复

1 PG备份工具介绍


        数据库类型

备份类型

       还原方法

                             特点

pg_dump

逻辑备份

pg_restore

只能备份单库,支持并发备份

pg_dumpall

逻辑备份

输入重定向

只能备份全库,不支持并发备份

pg_basebackup

物理备份

文件替换

需要准备另一个数据库实例进行备份,常用于流复制搭建

pg_start_backup()

pg_stop_backup()

物理备份

文件替换

在线热备份,可以不开启归档

pgbackrest

物理备份

pgbackrest

支持全备、增备、差备,结合归档可恢复任意时间点

需单独安装插件,必须开启归档


注意事项:逻辑备份推荐使用pg_dump


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命令

导入库参考:pg_restore -U postgres --no-owner --role ptest_biz_baseline_bdai  -d ptest_biz_baseline_bdai  -v ptest_biz_baseline_bdai.dump



pg_dumpall工具

3.1 备份

pg_dumpall 可以备份整库。


# pg_dumpall --help 可以查看用法

-a, --data-only               仅转储数据,而不转储schema

-c, --clean                      重新创建数据库之前清除(删除)数据库

-g, --globals-only          仅转储全局对象,而不转储数据库

-r, --roles-only               仅转储角色,而不转储数据库和表空间

-s, --schema-only          仅转储schema,而不转储数据

-O, --no-owner              以纯文本格式跳过对象所有权的恢复

--inserts                         以INSERT命令(而非COPY命令)的形式转储数据


3.2 恢复

备份整库语句参考:

 pg_dumpall > /pgsql12/backup/mypg_all.sql

还原pg_dumpall备份的文件: psql -f /pgsql12/backup/mypg_all.sql(对象或数据存在会报错,忽略)



PostgreSQL数据库逻辑备份与恢复

1 PG备份工具介绍 数据库类型备份类型 还原方法 特点pg_dump逻辑备份pg_...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息