PostgreSQL数据库备份还原全攻略


前言

  • 逻辑备份
    即SQL转储方式,使用pg_dump和pg_dumpall进行备份。逻辑备份在恢复时,介于逻辑备份与故障时间点之间的数据难以恢复,所以逻辑备份适用于留存某个时间点的备份或进行跨平台跨版本的数据迁移。
  • 文件系统级备份
    即拷贝数据文件的完整目录,备份时需要关闭数据库。恢复数据库时,只需将数据目录复制到原来的位置。该方式实际工作中很少使用。
  • 连续归档
    该方式是把一个文件系统级别的全量备份和WAL(预写式日志)级别的增量备份结合起来。当需要恢复时,我们先恢复文件系统级别的备份,然后重放备份的WAL文件,把系统恢复到之前的某个状态。

本文主要介绍逻辑备份和连续归档方式的备份及还原,文件系统级备份由于比较简单,这里不在赘述。
以下操作使用的数据库版本为PostgreSQL 12.5,不同的数据库版本在进行连续归档操作时会有细微差异。


一、逻辑备份

1.pg_dump工具

以下为pg_dump工具的常用参数选项(更多参数可使用pg_dump --help查看)

联接选项:
-h, --host=主机名  数据库服务器的主机名或套接字目录
-U, --username=名字  以指定的数据库用户联接
-d, --dbname=DBNAME  对数据库 DBNAME备份
-p, --port=端口号  数据库服务器的端口号
-w, --no-password  永远不提示输入口令
-W, --password   强制口令提示 (自动)
--role=ROLENAME   在转储前运行SET ROLE

一般选项:
-f, --file=FILENAME   输出文件或目录名,导出到指定文件
-F, --format= p|c|d|t 导出文件格式(p|c|d|t)
		p:plain-输出普通文字SQL脚本(默认);
		c:custom-输出自定义归档格式,适用于pg_restore导入,该格式是最灵活导出方式,允许在导入时自定义选择和重			排序归档条目。该格式默认启用压缩;
		d:directory-输出文件夹归档格式,适用于pg_restore导入。该格式会创建一个文件夹,一个表对应一个文件。该格式默认启用压缩,并且支持并行导出;
		t:tar-输出tar压缩归档格式,适用于pg_restore导入。该格式将文件夹归档格式产生的文件夹压缩成tar压缩包。但该格式不支持压缩(文件夹归档已经压缩了),并且在导入时也不能更改相关的表顺序。
控制输出内容选项:
-s, --schema-only   只转储模式, 不包括数据 
-a, --data-only    只转储数据,不包括模式
-t, --table=TABLE   只转储指定名称的表
-T, --exclude-table=TABLE 不转储指定名称的表
-C, --create     在转储中包括创建数据库语句
-c, --clean:包含drop删除语句,建议与--if-exists同时使用;
--if-exists,drop删除语句时带上IF EXISTS指令
-n, --schema=SCHEMA   只转储指定名称的模式
-N, --exclude-schema=SCHEMA 不转储已命名的模式
-O, --no-owner    在明文格式中, 忽略恢复对象所属者
-S, --superuser
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小马穿云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值