首页 > 数据库 >postgresql从入门到精通 - 第37讲:postgres物理备份和恢复概述

postgresql从入门到精通 - 第37讲:postgres物理备份和恢复概述

时间:2023-12-07 17:12:06浏览次数:29  
标签:postgresql postgres 恢复 备份 37 用户 失败 SQL 数据库

 

 

 

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

 

第37讲:物理备份和恢复概述

 

第37讲:12月09日(周六)19:30,钉钉群直播,往期公开课的文档及视频,联系CUUG

 

内容1:描述数据库备份、恢复和恢复的基本知识

内容2:列出数据库环境中可能发生的故障类型

内容3:定义备份和恢复策略

 

备份和恢复议题

保护数据库免受多种类型的故障

增加平均故障间隔时间(MTBF)

减少平均恢复时间(MTTR)

最小化数据丢失

 

故障类别

语句失败

用户进程失败

用户错误

网络故障

实例失败

介质故障

 

声明失败的原因

应用程序中的逻辑错误

试图在表中输入无效数据

尝试权限不足的操作

试图创建表,但超出了分配的配额限制

尝试对表执行INSERT或UPDATE操作,导致分配扩展数据块,但可用空间不足

 

声明失败的解决方案

纠正程序的逻辑流程

修改并重新发布SQL语句

提供必要的数据库权限

向数据库添加文件空间

 

用户进程失败的原因

用户在会话中执行了异常断开连接

用户的会话异常终止

用户的程序引发了地址异常,从而终止了会话

 

用户进程失败解决方案

postgres进程检测异常终止的用户进程

postgres回滚事务并释放其持有的所有资源和锁

 

用户可能的失误

SQL> DROP TABLE employees;

SQL> TRUNCATE TABLE employees;

SQL> DELETE FROM employees;

SQL> COMMIT;

SQL> UPDATE employees

2> SET salary = salary * 1.5;

SQL> COMMIT;

 

用户失误解决方案

培训数据库用户

从有效备份恢复

从导出文件导入表

使用WalMiner确定错误时间,使用时间点恢复进行恢复

使用WalMiner执行对象级恢复

 

实例失败的原因

断电

操作系统bug

数据库系统bug

后台进程意外kill

 

实例失败解决方案

不需要DBA采取特殊的恢复操作

启动实例

等待“数据库打开”通知

通知用户

检查警报日志以确定故障原因

 

介质失败的原因

磁盘驱动器上的磁头损坏

读取或写入数据库文件时出现物理问题

文件被意外删除

 

介质失败解决方案

恢复策略取决于选择的备份方法和受影响的文件

如果可用,请应用存档的重做日志文件以恢复自上次备份以来提交的数据

 

制定一个备份策略

业务要求

操作要求

技术注意事项

管理层同意

 

业务要求

平均恢复时间

决定备份的频率

平均无故障时间

缩短恢复时间

进化过程

根据实际情况,不断调整策略,比如:索引表空间的备份等等。

 

操作要求

24小时运营

测试和验证备份可用性

数据库波动性

 

技术考虑因素

资源:硬件、软件、人力和时间

操作系统文件的物理映像副本

数据库中对象的逻辑副本

数据库配置

影响所需备份频率的事务量

 

灾难恢复问题

如果发生重大灾难,如:

地震、洪水或火灾

机器完全丢失

存储硬件或软件故障

失去关键人员,例如数据库管理员

你有计划定期测试你的策略吗?

 

CUUG PostgreSQL技术大讲堂系列公开课,往期视频及文档,请联系CUUG客服。

标签:postgresql,postgres,恢复,备份,37,用户,失败,SQL,数据库
From: https://www.cnblogs.com/cnblogs5359/p/17883423.html

相关文章

  • luogu P3783 [SDOI2017] 天才黑客
    题面传送门为啥大家都写两个log的线段树优化建边啊,神秘,这1log做法好想又好写捏。首先显然是可以把边看成点的,这样会变成\(O(m)\)个点和\(O(m^2)\)条边,寄。但是还没有完全寄掉,我们发现,对于原图的每个点,对于第一个跑到这个点的边暴力转移,剩下的边转移只有一个子树,否则会......
  • PostgreSQL筛选包含中文的字段
    筛选中文内容匹配一个或多个非中文字符SELECT*FROMtable1WHEREfield1~'[^\u4e00-\u9fa5]+';[\u4e00-\u9fa5]表示匹配中文字符,加上前面的取反符号^即表示匹配不是中文字符,+表示一个或多个。\u4e00-\u9fa5是中文字符的Unicode范围。如果想筛选字段不包含中文可以......
  • linux安装postgresql三种方式【转】
    linux下安装PostgreSQL可采用三种方式,二进制已编绎安装包、安装、源码安装三种方式进行安装方式1:yum安装,建议使用这种参看官方文档如下地址:sudoyuminstall-ysudoyuminstall-ypostgresql15-serversudo/usr/pgsql-15/bin/postgresql-15-setupinitdbsudosystemctlena......
  • [GraphicBufferSource](id:5cd400000003,api:1,p:1674,c:23764) cancelBuffer: Buffer
    开发中遇到的问题,这个问题吧属于我们公司开发使用的RSR然后我们做好的app就是一个录屏软件将视频推到RSR当中去,可是推送的同时只会在RSR中出现一下我查看日志文件输出的信息唯一出现爆红的地方就是GraphicBufferSourcecancelBuffer:BufferQueuehasbeenabandoned这个,有没有经......
  • StackGres 数据库平台工程,使用 Citus + Patroni 创建生产级高可用分布式 PostgreSQL
    系列StackGres,可私有部署的云原生数据库平台工程StackGres 数据库平台工程功能介绍与快速上手StackGres1.6数据库平台工程集群配置管理(K8SPods/PostgreSQL/PgBouncer)StackGres1.6数据库平台工程,集群高可用(Patroni3管理)什么是ShardedCluster(分片集群)Sha......
  • [AGC037D] Sorting a Grid 题解
    题目链接点击打开链接题目解法从后往前推一下,可以得到\(C\)一定要把每一行的数都归位到那一行,\(B\)一定要每一列的目标行数互不相同考虑构造\(B\)这个限制看起来略有些网络流,所以考虑如何建图令\(a_{i,j}\)的目标行数为\(ln_{i,j}\),我们由\(i\toln_{i,j}\)连边不......
  • PostgreSQL: select for update实战
    场景需要获取用户申请的流水号,其值记录在number_of_form表中。但当多个用户同时申请时,会出现单号重复的情况,现在需要保证单据号码的一致性解决方案以我搜寻来看,大体有两种做法。悲观锁:总是假设最坏的情况,也就是每次拿数据的时候,都认为别人会修改,所以每次拿数据,都会对符合条......
  • Github Actions - Creating PostgreSQL service containers
     #Servicecontainerstorunwith`container-job`services:#Labelusedtoaccesstheservicecontainerpostgres:#DockerHubimageimage:postgres#Providethepasswordforpostgresenv:......
  • 力扣137
    Problem: 137.只出现一次的数字II思路①排序后,前后不一样的就是答案②map计数后找出值为1的数复杂度时间复杂度、空间复杂度:思路①较优classSolution{public:intsingleNumber(vector<int>&nums){intn=nums.size();//排序后,前后不一样的就是答案......
  • PostgreSQL - ERROR: deadlock detected
    ERROR:deadlockdetectedDETAIL:Process209waitsforShareLockontransaction1034;blockedbyprocess201.Process201waitsforShareLockontransaction1035;blockedbyprocess209.HINT:Seeserverlogforquerydetails.CONTEXT:whilelockingtuple......