当前位置: fljsyy->postgresql > postgresql从小白到高手 - 第38讲:数据库备份

postgresql从小白到高手 - 第38讲:数据库备份

2023-12-11作者:fljsyy来源:www.fljsyy.com


PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。


第38讲:数据库备份


PostgreSQL第38讲:12月09日(周六)19:30,钉钉群直播,群号:35822460

内容1:备份术语

内容2:备份工具

内容3:备份模式

内容4:basebackup简介

内容5:全库备份

内容6:表空间备份

内容7:只读数据库备份


术语

全库备份

目标数据库处于打开或者关闭状态

备份$PGDATA下所有的数据文件

部分备份

备份除了pg_global的其它表空间

一致性备份

不一致性备份


备份工具

使用操作系统命令对数据库文件进行备份和恢复

使用pg_basebackup对数据库文件进行备份

使用pg_rman对数据库文件进行备份和恢复


备份模式


一致性备份(数据库关闭)

备份$PGDATA目录下所有文件


一致性全库备份的好处

概念简单

易于执行

需要很少的操作员交互


执行一致性全库备份


数据库打开模式下备份


数据库打开模式下备份好处

保持高数据库可用性

支持不间断的业务运营


数据库打开模式下备份要求


数据库归档

· 归档日志

连续归档是在WAL段切换时将WAL段文件复制到归档区域的功能,由archiver(后台)进程执行。其中,占位符%p是复制的WAL段,而%f是存档日志。

ALTER SYSTEM SET archive_command = 'cp %p /home/postgres/archives/%f';

ALTER SYSTEM SET archive_mod = on;


执行数据库打开模式下备份

· pg_basebackup 基本备份的标准过程如下所示:

(1) 执行pg_start_backup 命令 

(2) 使用tar/cp命令对$PGDATA目录进行备份

(3) 执行pg_stop_backup 命令



pg_basebackup工作原理

· pg_start_backup执行以下四个操作

Force into the full-page wirte mode.

Switch to the current WAL segment file (version 8.4 or later).

Do checkpoint.

Create a backup_label file–此文件创建于base目录的同一层,包含有关基本备份本身的基本信息,例如此检查点的检查点位置。

· backup_label文件包含如下内容

CHECKPOINT LOCATION –这是记录此命令创建的检查点的LSN位置。

START WAL LOCATION –这不与PITR一起使用,而是与流式复制一起使用。它被命名为“START WAL LOCATION”,因为处于复制模式的备用服务器在初始启动时只读取一次该值。

BACKUP METHOD–这是用于进行此基础备份的方法。(pg_start_backup或pg_basebackup。)

BACKUP FROM –这显示此备份是从主备份还是从备用备份。

START TIME –这是执行pg_start_backup时的时间戳。

LABEL –这是在pg_start_backup中指定的标签。

START TIMELINE –这是备份开始的时间线。这是为了进行健全性检查,并已在版本11中引入。

· pg_stop_backup

如果pg_start_backup强制更改了非整页写入模式,则将其重置为非整页写入模式。

写一个备份结束的XLOG记录。

切换WAL日志。

创建备份历史文件–此文件包含备份标签文件的内容和执行pg_stop_backup的时间戳。

删除备份标签文件–备份标签文件是从基本备份恢复所必需的,一旦复制,就不必在原始数据库群集中。


执行pg_basebackup备份

· 示例

产生压缩的tar包,-Ft参数指定:

pg_basebackup -D bk1 -Ft -z -P

此备份花的时间比较长,但是节省空间。支持表空间文件存放在其它目录下。

产生跟源文件一样的格式,即原样格式,-Fp参数指定:

pg_basebackup -D bk2 -Fp -P

此备份方式很快,但是不节省空间。如果有表空间路径放在其它目录下,则备份失败。


执行用户管理全库备份

· 示例

数据库中执行开始备份函数

select pg_start_backup('full');

使用tar命令进行备份

cd $PGATA

tar -zcf /backup/data.tar.gz .

数据库中执行结束备份函数

select pg_stop_backup();


执行表空间备份

· 示例

数据库中执行开始备份函数

select pg_start_backup('tbs');

使用tar命令进行备份(备份pg_default表空间所在的目录)

cd $PGATA

tar -zcf /backup/base.tar.gz base

cp backup_lable /backup

数据库中执行结束备份函数

select pg_stop_backup();


执行只读数据库备份

· 示例

把某个数据库变成只读

ALTER DATABASE new_db1 set default_transaction_read_only=on;

使用tar/cp命令进行备份(备份new_db1所在的目录)

cd $PGATA/base

tar -zcf /backup/90195.tar.gz 90195


CUUG PostgreSQL技术大讲堂系列公开课,往期视频及文档,请联系CUUG客服。

  • IBM Informix数据库
  • MySQL 8.0 OCP认证考试题库持续更新
  • 海若向量数据库HaiRuo VectorDB
  • 瀚高数据库HIGHGO
  • 鸿蒙PC正式发布,有望加速数据库国产化进程
  • 巨杉数据库SequoiaDB
  • 万里数据库GreatDB
  • PostgreSQL 17.5、16.9、15.13、14.18 和 13.21 发布!
  • PostgreSQL 18 测试版Beta 1 发布,新功能新特性!
  • PostgreSQL技术大讲堂 - 第89讲:重讲数据库完全恢复
  • PostgreSQL技术大讲堂 - 第90讲:重讲数据库不完全恢复
  • PostgreSQL证书有效期是几年
  • 学PostgreSQL技术,考工信部人才交流中心PG认证证书
  • OCM考试多少分及格?看看CUUG 张同学Oracle 19c OCM成绩单
  • 高校信创数据库人才培养创新与变革暨天职师大数据库教学平台国产化替代院长峰会
  • 六六大顺!2025年6月6日李同学OCP 19c认证证书
  • 腾讯云TCCA认证考试报名 - TDSQL数据库交付运维工程师(MySQL版)
  • 腾讯云TCCA认证考试报名 - TDSQL数据库交付运维工程师(PostgreSQL版)
  • 腾讯云TCCP认证考试报名 - TDSQL数据库交付运维高级工程师(MySQL版)
  • 腾讯云TCCP认证考试报名 - TDSQL数据库交付运维高级工程师(PostgreSQL版)
  • Easysearch分布式搜索型数据库
  • IvorySQL数据库
  • NebulaGraph数据库
  • OCP认证考试指南:费用、大纲、备考、题库、证书及有效期全面解析
  • SelectDB数据库
  • SourceDB数据库
  • SQLite数据库
  • Apache HBase数据库
  • 2025年5月安同学PostgreSQL PGCP中级认证证书
  • 2025年5月陈同学PostgreSQL PGCP中级认证证书
  • 2025年5月份工信部人才交流中心PostgreSQL认证证书
  • 2025年5月胡同学PostgreSQL PGCP中级认证证书
  • 2025年5月李同学PostgreSQL PGCM高级认证证书
  • 2025年5月李同学PostgreSQL PGCP中级认证证书
  • 2025年5月王同学PostgreSQL PGCP中级认证证书
  • 2025年5月赵同学PostgreSQL PGCM高级认证证书
  • PostgreSQL技术大讲堂 - 第91讲:重讲表空间恢复
  • PostgreSQL认证培训考试中心,及证书查询网址
  • PostgreSQL相比Oracle有哪些优势
  • 2025年5月30日证书,恭喜CUUG张同学通过OCM19c认证
  • CUUG入选2025年首批IITC工信人才岗位能力评价业务信息技术应用创新领域合作机构
  • PostgreSQL技术大讲堂 - 第92讲:重讲流复制原理
  • 河北建筑工程学院与北京优技教育(CUUG)达成产教整合校企合作
  • 推荐哪一家PostgreSQL认证?来看看工信部直属人才交流中心的PG认证
  • 信创PostgreSQL培训考试认证中心 -- 工信部人才交流中心唯一指定
  • 6月6日证书 - 工信部人才交流中心PostgreSQL中级PGCP高级PGCM认证
  • PostgreSQL从入门到精通教程- 第93讲:重讲pg流复制安装部署
  • OCP认证指南:学什么内容、考什么内容
  • PostgreSQL认证怎么选?PGCP中级认证PGCM高级认证
  • PostgreSQL数据库培训+认证+考试 - 工业和信息化部人才交流中心