postgresql14管理(六)-备份与恢复

2023-10-29 06:52

本文主要是介绍postgresql14管理(六)-备份与恢复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定义

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

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

恢复(recovery):先做还原,然后使用处于备份时间点至故障点产生的日志文件(WAL),将数据库恢复到最新状态;

分类

物理备份(Physical Backup):直接复制数据库相关的文件,一般情况,物理备份比逻辑备份快,占用的空间也更大。PostgreSQL支持在线、离线的物理备份,实际环境中应该以物理备份为主。

逻辑备份(Logical Backup):将数据库的结构和数据导出为sql文件,还原时通过文件中的SQL语句和命令重建数据库并恢复数据。逻辑备份通常需要更多的备份时间、还原时间。逻辑备份可以作为物理备份的补充,或者用于测试目的的数据导入导出。

方式

在线备份(Online Backup)、热备份(Hot Backup):pg处于启动状态时的备份;

离线备份(Offline Backup)、冷备份(Cold Backup):pg处于关闭状态时的备份;

方法

全量备份(Full Backup):一次备份所有,备份时间长,恢复时间短;
增量备份(Incremental Backup):备份与上一次改变的文件,备份时间短,恢复时间长;
差异备份(Differential Backup):针对第一次完全备份后发生变化的所有文件进行备份,备份、恢复时间居中;

在这里插入图片描述
pg通过一个基准备份(Base Backup),加上不断备份的事务日志文件(WAL),做到增量备份的效果。

工具

在这里插入图片描述

pg_dump:逻辑备份工具,支持单个数据库(可以指定模式、表)的导出,可以选择导出的格式;

pg_dumpall:逻辑备份工具,用于导出整个数据库集群,包括公用的全局对象;

pg_basebackup:物理备份工具,为数据库集群创建一个基准备份。或者设置基于日志传输或流复制的从节点的初始化;

psql:交互式命令行工具,也可以用于导入逻辑备份产生的 SQL 文件;

pg_restore:逻辑还原工具,用于还原 pg_dump 导出的归档格式的备份文件;

COPY:专有sql语句,将表中的数据复制到文件,或者将文件中的数据复制到表中;

第三方开源:pgAdmin、Barman、pg_probackup、pgBackRest

在这里插入图片描述

逻辑备份与还原

#plain格式:转储一个可读的脚本
pg_dump -U postgres -d hrdb -f "D:\bak\hrdb.sql"
#导入
pgsql -U postgres newdb -f "D:\bak\hrdb.sql"#-Fc 自定义格式,不可直接查看
pg_dump -U postgres -d hrdb -f "D:\bak\hrdb.dmp" -Fc
#恢复
pg_restore -U postgres -d hrdb "D:\bak\hrdb.dmp"

备份整个pg

#连接每个数据库都要输入密码,可用密码选项代替
pg_dumpall -U postgres -f "D:\bak\cluster.sql"
#复原
psql -f "D:\bak\cluster.sql" postgres

这篇关于postgresql14管理(六)-备份与恢复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298981

相关文章

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

Mysql中的用户管理实践

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录13. 用户管理13.1 用户 13.1.1 用户信息 13.1.2 创建用户 13.1.3 删除用户 13.1.4 修改用户

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

Python+PyQt5实现MySQL数据库备份神器

《Python+PyQt5实现MySQL数据库备份神器》在数据库管理工作中,定期备份是确保数据安全的重要措施,本文将介绍如何使用Python+PyQt5开发一个高颜值,多功能的MySQL数据库备份工具... 目录概述功能特性核心功能矩阵特色功能界面展示主界面设计动态效果演示使用教程环境准备操作流程代码深度解

linux服务之NIS账户管理服务方式

《linux服务之NIS账户管理服务方式》:本文主要介绍linux服务之NIS账户管理服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、所需要的软件二、服务器配置1、安装 NIS 服务2、设定 NIS 的域名 (NIS domain name)3、修改主

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件