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

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

2023-12-11作者:gzslhs来源:www.gzslhs.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客服。

  • 【会议回顾】11月29日,国产开源数据库PolarDB&PG专家训练营 - 北京站
  • ocp认证烂大街了吗?并未烂大街
  • 在去Oracle环境下,市场还认可OCP认证吗?
  • PostgreSQL技术大讲堂 - 第74讲:PostgreSQL SQL调优二
  • 恭喜CUUG 11月16日考试的同学获得PG中级、PG高级证书
  • 推动国内信创数据库发展,考取信创PostgreSQL认证
  • 为什么要发展信创数据库-信创PostgreSQL认证
  • OCP是什么意思 OCP有用吗
  • PolarDB for PostgreSQL:OSS 外表
  • 中科方德「方德高可信服务操作系统」通过PolarDB产品生态集成认证
  • 【重磅消息】Oracle OCP 认证考试,CUUG赠送一次免费补考机会!
  • OCM认证烂大街了吗?OCM战袍在此,永不过时!
  • 报名OCP认证考试,送一次免费补考机会,限时活动,名额有限!
  • 恭喜CUUG韩同学通过Oracle考试拿到OCP 19c证书
  • 微软发布基于PostgreSQL的开源文档数据库平台DocumentDB
  • 25年3月通知!腾讯云TDSQL认证考试流程变更,原流程将作废
  • 2025年2月 恭喜CUUG王同学顺利拿到OCP认证证书
  • 2025年腾讯云TDSQL认证考试升级通知
  • MySQL技术公开课:Mysql-Server-8.4.4 Innodb 集群搭建与维护
  • Oracle OCP认证考试指南(超详细步骤)
  • 为什么去IOE化的背景下,还有必要学Oracle
  • 工业和信息化部人才交流中心关于培训考试评价证书更名的通告
  • 签约!北京某大型档案馆、成都市某科研所与CUUG签约工信人才PG认证学习
  • 2月22日,工信部人才交流中心 & CUUG - PGCP-PGCM认证考试完成!
  • PostgreSQL技术大讲堂 - 第81讲:PG数据安全利器--行级安全策略构建
  • PostgreSQL数据库从入门到精通教程(进行中)
  • 工信部人才交流中心PostgreSQL认证考试 - 聊一下更多精彩
  • 中国PostgreSQL数据库认证体系和学习方向
  • 11月30日,工信部人才交流中心 & CUUG - PGCPPGCM认证考试完成!
  • 2024年12月PostgreSQL排名第四,已对SQL Server造成威胁
  • PostgreSQL技术大讲堂 - 第72讲:索引与SQL调优之禁忌之恋
  • 12月6日恭喜CUUG郑同学通过OCP考试获得OCP证书
  • PostgreSQL技术大讲堂 - 第75讲:SQL调优(3)索引调优升级版
  • PostgreSQL技术大讲堂 - 第76讲:调优(4)分区表索引调优
  • PostgreSQL与MySQL相似之处与不同之处
  • 免费学习PostgreSQL,来这里看看PG从小白到专家技术公开课
  • PostgreSQL技术大讲堂 - 第77讲:DB4AI 搭建PG向量数据库AI机器人
  • PostgreSQL技术大讲堂 - 第78讲:分布式数据库-GreenPlum应用实践
  • PostgreSQL技术大讲堂 - 第79讲:PG流复制管理利器repmgr应用实践
  • PostgreSQL数据库管理员认证的含金量
  • 1月15日证书来啦!工信部人才交流中心PostgreSQL中级高级认证
  • OCP英文全称是什么
  • PolarDB PostgreSQL版高可用原理分析
  • 工信部人才交流中心与教育部学生服务与素质发展中心战略合作
  • 为什么说开展信创数据库势在必行
  • PostgreSQL认证是什么,值得考吗
  • PostgreSQL证书什么样子的
  • RAG,搭建PG向量数据库AI机器人(文档下载+视频)
  • 从中美贸易战金融战科技战,看我国发展信创的必要性
  • 信创领域的PostgreSQL管理员认证