当前位置: 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客服。

  • 33条必看问题!腾讯云认证考试须知!
  • AI4DB系列公开课--让AI生成SQL语句
  • 11月16日,工信部人才交流中心 & CUUG - PGCP+PGCM认证考试完成
  • 2024年11月14日,工信人才发布红头文件:PostgreSQL数据库管理人才研修与评测班
  • 【会议回顾】11月29日,国产开源数据库PolarDB&PG专家训练营 - 北京站
  • PostgreSQL认证考试费用分析
  • 11月30日,工信部人才交流中心 & CUUG - PGCPPGCM认证考试完成!
  • 2024年12月PostgreSQL排名第四,已对SQL Server造成威胁
  • PostgreSQL技术大讲堂 - 第72讲:索引与SQL调优之禁忌之恋
  • PostgreSQL技术大讲堂 - 第69讲:PG17版本新特性--块级别增量备份
  • PostgreSQL技术大讲堂 - 第70讲:PG数据库数据加载调优案例
  • PostgreSQL技术大讲堂 - 第71讲:PostgreSQL 17 版本升级
  • PostgreSQL认证考试费用分析
  • PostgreSQL认证培训哪家好
  • 数据库 PostgreSQL 和 MySQL 开源协议的区别
  • 选择PGCA认证,还是选择PGCP认证
  • 用处多多!信创PostgreSQL认证证书含金量
  • 这么多家厂商都选择了PostgreSQL,是时候考个PG认证了
  • OCP认证考试哪家机构划算
  • Oracle认证证书的考试费用是多少
  • 恭喜CUUG 高同学通过Oracle考试获得OCP 19c证书
  • 靠谱的OCP培训机构推荐_北京CUUG
  • 去 IOE 环境下,Oracle OCM认证还值得考吗?
  • 腾讯云tdsql认证的优势和考试费用
  • 活动报名 《国产开源数据库PolarDB+PostgreSQL专家训练营》北京站
  • 金仓数据库认证值得考吗
  • 选择PGCA认证,还是选择PGCP认证
  • PostgreSQL技术大讲堂 - 第73讲:AI4DB系列公开课--搭建私域大模型
  • 百期PostgreSQL技术公开课进行时,已讲到第73期了
  • 如何建设国内postgresql数据库生态环境
  • ocp认证烂大街了吗?并未烂大街
  • 在去Oracle环境下,市场还认可OCP认证吗?
  • 工业和信息化部人才交流中心关于培训考试评价证书更名的通告
  • 签约!北京某大型档案馆、成都市某科研所与CUUG签约工信人才PG认证学习
  • PostgreSQL技术大讲堂 - 第75讲:SQL调优(3)索引调优升级版
  • PostgreSQL技术大讲堂 - 第76讲:调优(4)分区表索引调优
  • PostgreSQL与MySQL相似之处与不同之处
  • 免费学习PostgreSQL,来这里看看PG从小白到专家技术公开课
  • 【重磅消息】Oracle OCP 认证考试,CUUG赠送一次免费补考机会!
  • 12月6日恭喜CUUG郑同学通过OCP考试获得OCP证书
  • OCM认证烂大街了吗?OCM战袍在此,永不过时!
  • 报名OCP认证考试,送一次免费补考机会,限时活动,名额有限!
  • 恭喜CUUG韩同学通过Oracle考试拿到OCP 19c证书
  • PostgreSQL技术大讲堂 - 第74讲:PostgreSQL SQL调优二
  • 恭喜CUUG 11月16日考试的同学获得PG中级、PG高级证书
  • 推动国内信创数据库发展,考取信创PostgreSQL认证
  • 为什么要发展信创数据库-信创PostgreSQL认证
  • PolarDB for PostgreSQL:OSS 外表
  • 中科方德「方德高可信服务操作系统」通过PolarDB产品生态集成认证
  • OCP是什么意思 OCP有用吗