数据库恢复技术

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 数据库恢复技术

1.前言


数据库恢复技术是一种事务处理技术,谈到事务,这里可以先介绍一下事务的概念。

事务是指用户定义的一个不可分割的操作序列,什么意思,就是这些操作要么全做,要么全不做,其可以是一条、一组SQL语句甚至整个程序。其定义语句如下:

BEGIN TRANSACTION//开始标志
COMMIT|ROLLBACK//结束标志(分别代表正常结束|撤销)

事务有四个特性,我们称为ACID,即原子性、一致性、隔离性、持续性。

原子性指事务要么做要么不做

一致性是指事务处于要么做了要么没做的状态

隔离性保证事务并发执行不受其他事务的干扰

持续性也称永久性,即他对数据库数据的改变是永久的。


介绍完事务,再来接着了解数据库恢复技术,数据库恢复技术具有能够把数据库从错误状态恢复到某一已知正确状态的功能,这些错误由故障产生,常见故障分类有:

事务故障:指事务未正常终止时被终止。影响事务。

系统故障:软故障,指造成系统停止运转的任何事件。影响事务。

介质故障:硬故障,破坏数据库并影响正在运行的事务。

计算机病毒;破坏数据库。

可见这么故障要么破坏数据库本身,要么影响事务造成数据错误,这些错误,需要用到数据库恢复技术来恢复。


2.数据库恢复技术


数据库恢复技术原理即冗余,即建立冗余数据,再利用冗余对数据库进行恢复。下面是建立冗余数据的两个方法。

数据转储:

所谓转储即DBA(数据库管理员)定期将各个数据库复制保存的过程,这些备用数据称为后备副本。下面是两种其分类

1.

静态转储:无运行事务时转储,转储期间不能对数据库存取修改,其符合一致性。但会降低数据库可用性。

动态存储:转储期间可以允许对数据库的存取和修改,但可能某一刻A未变,转储A后A已经修改了,造成A过时,所以困难会存在不一致状态。

2.

海量转储:每次转储整个数据库,恢复方便,但低效。

增量存储:只转储上一次转储更新后的数据库,恢复复杂但高效

登陆日志文件:

其是用来记录事务对数据库更新操作的文件,以记录为单位或以数据块为单位。总之,明白其按时间次序严格记录了事务更新前后的数据和操作即可。

值得注意,登记日志文件是有两条重要原则:

一是次序严格按并发事务执行的次序;二是先写日志文件,后写数据库(避免无法修复更改)


3.数据库恢复策略


利用建立的冗余对数据库进行恢复是,针对不同的故障有不同的策略。

1.事务故障的恢复,

由于事务故障本身不能运行到终点,则把他恢复到事务执行前即可。

策略:反向扫描日志文件,对事务更新操作进行逆操作,直至读到事务开始标志,即UNDO撤销。

2.系统故障的恢复

系统故障造成数据库不一致的原因有两个,一是未完成事务对数据更新已经写入数据库,二是已经提交事务还没有来得及写入数据库。因此,只要撤销未完成事务,重做已完成事务即可。

策略:正向扫描日志文件,将未完成事务标记如UNDO队列,将已完成事务标记入REDO队列,再分别在REDO中执行正向扫描重做处理,UNDO中执行逆向扫描日志文件进行撤销处理即可。

3.介质故障的恢复

介质故障对数据库和事务均有影响,因此需要重装数据库,然后重做已完成事务。

策略:装入离故障最近的后备副本,使用恢复进一次转储的一致性状态(动态存储还要装入转储开始时刻的日志状态副本,利用对系统恢复的方法才能解决),装入转储结束时刻的日志状态副本,再重装已完成事务即可。


以上三种故障,第三种需要DBA的介入。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
24天前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
43 3
|
24天前
|
数据库 索引
深入理解数据库索引技术:回表与索引下推详解
【10月更文挑战第23天】 在数据库查询性能优化中,索引的使用是提升查询效率的关键。然而,并非所有的索引都能直接加速查询。本文将深入探讨两个重要的数据库索引技术:回表和索引下推,解释它们的概念、工作原理以及对性能的影响。
45 3
|
1月前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
56 8
|
30天前
|
存储 NoSQL 关系型数据库
数据库技术深度解析:从基础到进阶
【10月更文挑战第17天】数据库技术深度解析:从基础到进阶
57 0
|
2月前
|
存储 NoSQL 关系型数据库
非关系型数据库-MongoDB技术(二)
非关系型数据库-MongoDB技术(二)
|
2月前
|
NoSQL 关系型数据库 MongoDB
非关系型数据库-MongoDB技术(一)
非关系型数据库-MongoDB技术(一)
|
23天前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
107 61
|
21天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
35 3
|
23天前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
23天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
27 4
下一篇
无影云桌面