当前位置: 首页 > news >正文

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

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

第38讲:数据库备份

PostgreSQL第38讲:12月09日(周六)19:30,钉钉群直播,群号:35-82-24-60

内容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客服。

相关文章:

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

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

OpenGL ES eglCreatePbufferSurface() 和 eglCreateWindowSurface() 的对比和使用

一、介绍 相同点: eglCreatePbufferSurface 和 eglCreateWindowSurface 都是 OpenGL ES 中用于创建不同类型的EGL表面的函数,以便在OpenGL ES中进行渲染。 不同点: 选择使用哪种表面类型取决于你的需求。如果你只是需要在内存中进行离屏渲…...

python之马尔科夫链(Markov Chain)

马尔可夫链(Markov Chain)是一种随机过程,具有“马尔可夫性质”,即在给定当前状态的条件下,未来状态的概率分布仅依赖于当前状态,而与过去状态无关。马尔可夫链在很多领域都有广泛的应用,包括蒙…...

数据库管理-第123期 Oracle相关两个参数(202301205)

数据库管理-第123期 Oracle相关两个参数(202301205) 最近在群聊中看到俩和Oracle数据库相关的俩参数,一个是Oracle数据库本身的,一个是来自于Weblogic的,挺有趣的,本期研究一下。(本期涉及参数…...

掌握vue中国际化使用及配置

文章目录 🍁i18n组件安装🍁项目中配置 vue-i18n🍁编写语言包🍁国际化的使用 随着互联网的普及和全球化的发展,开发国际化的应用程序已经成为一种趋势。因此,将 VUE 应用程序国际化是非常有必要的。 以下是…...

Ubuntu编译文件安装SNMP服务

net-snmp源码下载 http://www.net-snmp.org/download.html 编译步骤 指定参数编译 ./configure --prefix/root/snmpd --with-default-snmp-version"2" --with-logfile"/var/log/snmpd.log" --with-persistent-directory"/var/net-snmp" --wi…...

3D Web可视化平台助力Aras开发PLM系统:提供数据访问、可视化和发布功能

HOOPS中文网慧都科技是HOOPS全套产品中国地区指定授权经销商,提供3D软件开发工具HOOPS售卖、试用、中文试用指导服务、中文技术支持。http://techsoft3d.evget.com/ Aras是一个面向数字化工业应用的开放性平台,帮助世界领先的复杂互联产品制造商转变其产…...

Graphpad Prism10.1.0 安装教程 (含Win/Mac版)

GraphPad Prism GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件,它可以将科学图形、综合曲线拟合(非线性回归)、可理解的统计数据、数据组织结合在一起,除了最基本的数据统计分析外,还能自动生成统…...

【动态规划】路径问题_不同路径_C++

题目链接:leetcode不同路径 目录 题目解析: 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析: 题目让我们求总共有多少条不同的路径可到达右下角; 由题可得: 机器人位于…...

Python并发-线程和进程

一、线程和进程对应的问题 **1.进程:**CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可…...

微信小程序适配方案:rpx(responsive pixel响应式像素单位)

小程序适配单位:rpx 规定任何屏幕下宽度为750rpx 小程序会根据屏幕的宽度自动计算rpx值的大小 Iphone6下:1rpx 1物理像素 0.5css 小程序编译后,rpx会做一次px换算,换算是以375个物理像素为基准,也就是在一个宽度…...

vue2 echarts饼状图,柱状图,折线图,简单封装以及使用

vue2 echarts饼状图,柱状图,折线图,简单封装以及使用 1. 直接上代码(复制可直接用,请根据自己的文件修改引用地址,图表只是简单封装,可根据自身功能,进行进一步配置。) …...

Linux信息收集

Linux信息收集 本机基本信息 #管理员 $普通用户 之前表示登录的用户名称,之后表示主机名,再之后表示当前所在目录 / 表示根目录 ~表示当前用户家目录1、内核,操作系统和设备信息 uname -a 打印所有可用的系统信息 uname -r 内核版本 u…...

三种定时任务总结

前言 springboot中设置定时任务有三种常见的方式,分别为: 基于Scheduled注解。基于Quartz框架。基于xxl-job框架。 下面将分别阐述下这三种方式的实现方式和优缺点。 1. Scheduled 介绍 Scheduled注解是Spring Framework提供的一个非常简单的创建定…...

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number x 2 − 2 x 2 0 ⇒ x 1 i x^2-2x20\Rightarrow x1\pm i x2−2x20⇒x1i 代数表达: z a b i , R e ( z ) a , I m ( z ) b zabi,\mathrm{Re}…...

使用 MITRE ATTCK® 框架缓解网络安全威胁

什么是MITRE ATT&CK框架 MITRE Adversarial Tactics, Techniques, and Common Knowledge(ATT&CK)是一个威胁建模框架,用于对攻击者用来入侵企业、云和工业控制系统(ICS)并发起网络攻击…...

从零构建属于自己的GPT系列4:模型训练3(训练过程解读、序列填充函数、损失计算函数、评价函数、代码逐行解读)

🚩🚩🚩Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1:数据预处理 从零构建属于自己的GPT系列2:模型训…...

光学遥感显著目标检测初探笔记总结

目录 观看地址介绍什么是显著性目标检测根据不同的输入会有不同的变体(显著性目标检测家族)目前这个领域的挑战 技术方案论文1(2019)论文2(2021)论文3(2022) 未来展望 观看地址 b站链接 介绍 什么是显著性目标检测 一张图片里最吸引注意力的部分就是显著性物体,…...

HttpComponents: 领域对象的设计

1. HTTP协议 1.1 HTTP请求 HTTP请求由请求头、请求体两部分组成,请求头又分为请求行(request line)和普通的请求头组成。通过浏览器的开发者工具,我们能查看请求和响应的详情。 下面是一个HTTP请求发送的完整内容。 POST https://track.abc.com/v4/tr…...

使用wire重构商品微服务

一.wire简介 Wire 是一个轻巧的Golang依赖注入工具。它由Go Cloud团队开发,通过自动生成代码的方式在编译期完成依赖注入。 依赖注入是保持软件 “低耦合、易维护” 的重要设计准则之一。 此准则被广泛应用在各种开发平台之中,有很多与之相关的优秀工…...

从UE/Unity转战Godot:一个老引擎开发者的踩坑与真香实录

从UE/Unity转战Godot:一个老引擎开发者的踩坑与真香实录 第一次双击Godot图标时,我正坐在堆满Unity参考书的办公桌前。作为用过五年Unity、三年Unreal的"引擎老油条",我带着审视新玩具的心态点开了这个不到100MB的绿色软件——没想…...

别再只会用strlen了!CAPL脚本字符串处理实战:从CAN报文解析到日志生成

CAPL脚本字符串处理实战:从CAN报文解析到日志生成在汽车电子测试领域,CAPL脚本是工程师们不可或缺的利器。面对复杂的CAN总线数据流,字符串处理能力往往决定了脚本的效率和可靠性。本文将带您超越基础API的简单调用,探索如何组合运…...

三步制作多系统启动盘:Ventoy完全指南告别重复格式化

三步制作多系统启动盘:Ventoy完全指南告别重复格式化 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 你是否还在为每个系统镜像单独制作启动盘而烦恼?是否因为U盘容量充足却只能…...

差分隐私公平性:基于群体自适应裁剪的DP-SGD改进算法

1. 项目概述与核心问题在构建负责任的人工智能系统时,我们常常面临一个看似矛盾的双重目标:既要保护用户数据的隐私,又要确保算法决策对不同群体是公平的。差分隐私(Differential Privacy, DP)技术,通过在训…...

深度强化学习在自动驾驶赛车中的迁移优化实践

1. 项目概述:深度强化学习在自动驾驶赛车中的迁移优化在自动驾驶赛车领域,如何将仿真环境中训练的控制策略无缝迁移到真实车辆上一直是个棘手问题。传统方法通常面临两大挑战:仿真环境与真实物理世界之间的动力学差异(即所谓的&qu…...

ARM SVE2 STNT1H指令:非临时存储优化技术详解

1. ARM SVE指令集与STNT1H指令概述在现代处理器架构中,向量处理技术已经成为提升计算性能的关键手段。作为ARMv9架构的重要组成部分,可扩展向量扩展(Scalable Vector Extension, SVE)指令集通过引入可变长度的向量寄存器,为高性能计算应用提供…...

全局退火算法:用神经网络驱动蒙特卡洛,突破组合优化瓶颈

1. 全局退火算法:为什么我们需要一种新的优化范式?在组合优化和统计物理领域,我们经常面对一个看似简单、实则令人头疼的核心问题:如何在一个由无数个可能状态构成的、崎岖不平的“能量景观”中找到那个最低的谷底——也就是全局最…...

跨VM RowHammer攻击防御技术与DRAM安全研究

1. 跨VM RowHammer攻击与防御技术概述在云计算环境中,虚拟机(VM)之间的安全隔离是保障多租户数据安全的核心机制。然而,RowHammer攻击的出现对这一基础安全假设提出了严峻挑战。RowHammer是一种利用DRAM物理特性的硬件漏洞攻击方式,攻击者通过…...

手把手教你用Linux命令‘偷看’UEFI启动日志,排查系统启动失败问题

实战指南:用Linux命令深度解析UEFI启动日志当你的Linux系统卡在启动界面,或是反复重启无法进入桌面时,那种焦虑感每个运维人员都深有体会。UEFI启动过程就像一场精心编排的交响乐,任何一个环节出错都可能导致系统启动失败。本文将…...

雪球md5__1038签名逆向:从Chrome调试到Node.js稳定复现

1. 这不是“破解”,而是对前端加密逻辑的常规逆向工程实践你打开雪球网的行情接口,抓到一个带md5__1038xxx参数的请求,复制下来一试——换台电脑、换个时间、甚至只是刷新一下页面,参数就失效了。后端直接返回403 Forbidden或{&qu…...