postgresql-备份与恢复

postgresql-备份与恢复

  • 基本概念
  • 备份类型
    • 物理备份与逻辑备份
    • 在线备份与离线备份
    • 全量备份与增量备份
  • 备份恢复工具
  • 备份与恢复
    • 逻辑备份与还原
      • 备份单个数据库
      • psql
      • pg_dump
      • pg_store
  • 备份整个集群

基本概念

服务器系统错误、硬件故障或者人为失误都可能导致数据的丢失或损坏。因此,备份和恢复
对于数据库的高可用性至关重要。数据库管理员应该根据业务的需求制定合适的备份策略,并提
前演练各种故障情况下的恢复过程,做到有备无患。

在升级 PostgreSQL 版本之前,通常也需要先进行数据库的备份。另外,备份也可以用于主从复制结构中的从节点初始化

备份(backup)是通过某种方式(物理复制或者逻辑导出)将数据库的文件或结构和数据
拷贝到其他位置进行存储

还原(restore)是一种不完全的恢复,使用备份的文件将数据库恢复到执行备份时的状态。
备份时间点之后的数据变更无法通过还原进行恢复。

恢复(recovery)通常是先使用物理备份文件进行还原,然后再应用备份时间点到故障点之
间的日志文件(WAL),将数据库恢复到最新状态。

备份类型

根据备份的方式和内容的不同,可以进行以下分类。

物理备份与逻辑备份

在这里插入图片描述

在线备份与离线备份

在这里插入图片描述

全量备份与增量备份

全量备份(Full Backup)就是备份所有的数据库文件,执行一次完整的 PostgreSQL 数据库集群备份。这种方式需要备份的内容较多,备份时较慢,但是恢复速度更快。

增量备份(Incremental Backup)就是备份上一次备份(任何类型)之后改变的文件。另外,
差异备份(Differential Backup)是针对上一次完全备份后发生变化的所有文件进行备份。增量
备份每次备份的数据量较小,但是恢复时需要基于全量备份,并依次恢复增量部分,时间较长。
差异备份位于两者之间

在这里插入图片描述

备份恢复工具

在这里插入图片描述

  • pg_dump,逻辑备份工具,支持单个数据库(可以指定模式、表)的导出,可以选择导出的格式
  • pg_dumpall,逻辑备份工具,用于导出整个数据库集群,包括公用的全局对象
  • pg_basebackup,物理备份工具,为数据库集群创建一个基准备份。它也可以用于时间点恢复(point-in-time recovery)的基准备份,或者设置基于日志传输或流复制的从节点的初始化。
  • psql, PostgreSQL 交互式命令行工具,也可以用于导入逻辑备份产生的 SQL 文件
  • pg_restore,逻辑还原工具,用于还原 pg_dump 导出的归档格式的备份文件。
  • COPY,PostgreSQL 专有的 SQL 语句,将表中的数据复制到文件,或者将文件中的数据复制到表中

此外,还可以通过第三方工具执行备份与恢复操作。

  • pgAdmin(开源)
  • Barman(开源)
  • pg_probackup(开源)
  • pgBackRest(开源)
  • BART(商业)

备份与恢复

逻辑备份与还原

执行逻辑备份时,PostgreSQL 服务器必须已经启动,备份工具(例如 pg_dump)通过建立
数据库连接,从数据库中查询出相应的结构信息和数据,并生成备份文件。针对不同的备份格式,
PostgreSQL 提供了配套的还原工具。

备份单个数据库

PostgreSQL 提供了备份单个数据库的工具 pg_dump,在安装目录下bin文件夹下面,关于 pg_dump 工具的各种选项,可以参考官方文档
在这里插入图片描述

D:\tools\postgresql\bin\pg_dump.exe --help

在这里插入图片描述
它支持三种文件格式
在这里插入图片描述
使用windows dos命令行打开pg_dump,备份数据库
在这里插入图片描述
备份成功,文件内容
在这里插入图片描述

psql

官网介绍

-- 查询使用方式
D:\tools\postgresql\bin\psql.exe --help

在这里插入图片描述
使用psql恢复数据库
在这里插入图片描述
恢复成功
在这里插入图片描述

pg_dump

pg_dump 和 psql 支持的读写管道功能使得我们可以直接将数据库从一个服务器导出到另一
个服务器
-Fc 指定自定义格式,这种格式的备份,还原时需要使用PostgreSQL 提供的 pg_restore 工具
-f 指定导出的文件名
-h 数据库连接地址
-U 用户名
-d 数据库名

"D:\tools\postgresql\bin\pg_dump.exe" -h localhost  -U postgres -d cps  -f "C:\Users\16837\Desktop\1.dmp" -Fc

输入用户postgres对应的用户密码
在这里插入图片描述
备份成功,1.dmp文件内容
在这里插入图片描述

pg_store

pg_restore路径 -h数据库连接地址 -U 用户名 -d数据库名 恢复数据库文件地址

"D:\tools\postgresql\bin\pg_restore.exe" -h localhost  -U postgres -d newdb "C:\Users\16837\Desktop\1.dmp"

输入用户postgres对应的用户密码

在这里插入图片描述
恢复成功,newdb下的表products被创建
在这里插入图片描述

备份整个集群

pg_dump 每次只导出一个数据库,而且它不会导出角色或表空间(属于集群范围)相关的信
息。为此,PostgreSQL 还提供了导出数据库集群的 pg_dumpall 工具。它会针对集群中的每个数
据库调用 pg_dump 来完成导出工作,同时还导出所有数据库公用的全局对象(pg_dump 不保存
这些对象),包括数据库用户和组、表空间以及所有数据库的访问权限等属性
pg_dumpall官网介绍
因为 pg_dumpall 从所有数据库中读取表,所以需要以一个超级用户的身份连接以便生成完
整的导出操作。同样,还原时也需要超级用户特权执行备份的脚本,这样才能增加用户和组以及
创建数据库

-- pg_dumpall路径  -U用户名   -f备份文件路径
"D:\tools\postgresql\bin\pg_dumpall.exe" -U postgres  -f "C:\Users\16837\Desktop\1.sql"

在这里插入图片描述
备份成功,文件内容
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/123778.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小谈设计模式(15)—观察者模式

小谈设计模式(15)—观察者模式 专栏介绍专栏地址专栏介绍 观察者模式核心思想主要角色Subject(被观察者)ConcreteSubject(具体被观察者)Observer(观察者)ConcreteObserver&#xff0…

创建型设计模式 原型模式 建造者模式 创建者模式对比

创建型设计模式 单例 工厂模式 看这一篇就够了_软工菜鸡的博客-CSDN博客 4.3 原型模式 4.3.1 概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 4.3.2 结构 原型模式包含如下角色: 抽象原型类:规定了…

趋势列表上又多了两个漏洞!

CVE-2023-24955 和 CVE-2023-29360 来自微软产品 5 月和 6 月的安全补丁报告。它们之所以特别危险,是因为出现了公开漏洞利用。 以下是详细信息。 第一个漏洞 CVE-2023-24955存在于 Microsoft SharePoint Server 中。它可导致远程代码执行。 它与覆盖随后由服务器执…

MeterSphere v2.10.X-lts 双节点HA部署方案

一、MeterSphere高可用部署架构及服务器配置 1.1 服务器信息 序号应用名称操作系统要求配置要求描述1负载均衡器CentOS 7.X /RedHat 7.X2C,4G,200GB部署Nginx,实现负载路由。 部署NFS服务器。2MeterSphere应用节点1CentOS 7.X /RedHat 7.X8C,16GB,200G…

Scala第十一章节

Scala第十一章节 1.模式匹配 2. Option 类型 3.偏函数 4.正则表达式 5.异常处理 6.提取器 7.案例:随机职业 scala总目录 文档资料下载

《计算机视觉中的多视图几何》笔记(12)

12 Structure Computation 本章讲述如何在已知基本矩阵 F F F和两幅图像中若干对对应点 x ↔ x ′ x \leftrightarrow x x↔x′的情况下计算三维空间点 X X X的位置。 文章目录 12 Structure Computation12.1 Problem statement12.2 Linear triangulation methods12.3 Geomet…

【计算机网络】高级IO之select

文章目录 1. 什么是IO?什么是高效 IO? 2. IO的五种模型五种IO模型的概念理解同步IO与异步IO整体理解 3. 阻塞IO4. 非阻塞IOsetnonblock函数为什么非阻塞IO会读取错误?对错误码的进一步判断检测数据没有就绪时,返回做一些其他事情完整代码myt…

匿名上位机V7波形显示教程-简单能用

匿名上位机V7波形显示教程-简单能用 匿名上位机V7下位机数据格式根据匿名上位机V7的手册说明文档,编写对应的指令在主函数中初始化ANDmessage驱动连接匿名上位机V7 匿名上位机V7下位机数据格式 DATA区域内容: 举例说明DATA区域格式,例如上文&…

亚信科技AntDB数据库 高并发、低延迟、无死锁,深入了解AntDB-M元数据锁的实现

AntDB-M在架构上分为两层,服务层和存储引擎层。元数据的并发管理集中在服务层,数据的存储访问在存储引擎层。为了保证DDL操作与DML操作之间的一致性,引入了元数据锁(MDL)。 AntDB-M提供了丰富的元数据锁功能&#xff0…

竞赛 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列&#x…

【NLP的python库(03/4) 】: 全面概述

一、说明 Python 对自然语言处理库有丰富的支持。从文本处理、标记化文本并确定其引理开始,到句法分析、解析文本并分配句法角色,再到语义处理,例如识别命名实体、情感分析和文档分类,一切都由至少一个库提供。那么,你…

栈的应用场景(二)

有效的括号匹配 1.题目2.图分析3.代码实现 1.题目 2.图分析 3.代码实现 class Solution {public boolean isValid(String s) {//创建一个栈,来放左括号.Stack<Character> stack new Stack<>();//遍历字符串,左括号放进栈for(int i 0 ; i < s.length(); i){ch…