黄东旭解析 TiDB 的核心优势
1343
2023-06-09
本文讲述了数据库的故障及可恢复模型,数据库常见四种故障
一.常见故障:
1.错误的数据输入,应用程序检测机制进行检测
2.系统错误,掉电或软件错误造成主存中数据的丢失或错误,通过数据库的恢复机制进行恢复,例如DBMS的恢复子系统
3.介质故障,磁盘的局部故障,如磁头损坏,扇区损坏,可以用数据存贮时奇偶校验来进行校正,或采用RAID技术(磁盘列阵)
4.灾难性故障,数据库介质完成顺坏,请及时备份
这里主要介绍系统恢复,主要用事务和日志恢复
二.事务和日志
1.事务的概念
一个事物是访问数据库的一个逻辑单位,由若干查询或更新数据库的语句进行,由编程者进行控制范围,可以独立的SQL语句,也可以包括在宿主语言中使用
2.事务的特点(ACID)
原子性
一致性
隔离性
持久性
3.事务的状态
一般发生故障日志就会被扫描,那么日志的扫描又是谁来启动的呢?
恢复管理器!它来读取日志数据,对日志进行扫描,再基于机制对数据库系统来进行恢复。若修改一个数据库里的某一项数据,它要通知缓冲区管理器,然后让缓冲区管理器去磁盘上读数据,直接读到缓冲区里面去,缓冲区读进来的数据是不能够为查询来使用的,查询实际上是某一个事务分配出来的,它目前实际上是CPU直接寻址的这样一个空间,这个空间可以把它称为事务的局部地址空间,这个事务提交的SQL语句,实际上要是读数据,会给它开辟一个变量用变量来接收读入的数据,这个数据应该是缓冲区直接拿过来赋予给事务的局部地址空间里的一个变量
这样来看,整个事务,整个数据如果从磁盘到这个内存里,需要经过的空间大概是这样的:进入磁盘再到缓冲区,再到事务的局部地址空间,赋给相应的变量
接下来介绍日志,日志记录操作的序列,对于数据库来说,日志记录每个事物每个步骤执行及其效果,一个日志可以记录多个事物的执行情况。日志记录以文件形式存盘。“刷新日志记录”命令(flush Log)使当前在缓冲区的日志记录“强制性”写入磁盘。如果系统奔溃则日志被查阅,以回复数据库的一致性。日志记录所包含的元素:
<START T>:标志事务T开始
<COMMIT T>:标志事务T执行成功
<ABORT T>:标志事务T失败。
数据对象更新操作类型,及其取值(原值/新值),例如<T2, Update, A, 100, 200>
检查点记录....CheckPoint记录。checkpoint:恢复到什么程度,更新前的值是什么,更新后是什么需要一个标志
一个日志实际上比数据库大很多。
1. 事务内部的故障
事务内部的故障可分为预期的和非预期的,其中大部分故障都是非预期的。预期的事务内部故障是指可以通过事务程序本身发现的事务内部故障,非预期的事务内部故障是不能由事务程序处理的,如运算溢出故障,并发事务死领只故障、违反了某些完整性限制而
导致的故障等。
2.系统故障(也称为软故障):
是指教据库在运行过程中,由于硬件故障、数据库软件及操作系统的漏洞、突然停电灯情况,导致系统停止运转,所有正在运行的事务以非正常方式终止,需要系统重新启动的一类故障。这类事务不破坏数据库,但是影响正在运行的所有事务.
3.个质故障:
介质故障也称为硬故障,主要指数据库在运行过程中,由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸等情况,使得数据库中的数据部分或全部丢失的一类故障,
4.计算机病毒故障:
计算机病毒故障是一种恶意的计算机程序,它可以像病毒一样繁殖和传播,在对计算机系统造成破坏的同时也可能对数据库系统造成破坏(破坏方式以数据库文件为主)。
四种故障的解决方法
1.预期的事物内部故障:将事物回滚,撤销数据库的修改
2.非预期的事物内部故障:强制回滚事务,在保证该事务对其他事务没有影响的条件下,利用日志文件撤销其对数据库的修改,
3.系统故:待计算机重新启动之后,对于未完成的事务可能写入数据库的内容,回滚所有未完成的事务写的结果:对于已完成的事务可能部分或全部留在缓冲区的结果,需要重做所有已提交的事务(即撤销所有未提交的事务,重做所有已提交的事务)。
4.个质故的软件容错:使用数据库备份及事务日志文件,通过恢复技术,恢复数据库到备份结束时的状态。
5.个质故障的硬件容错:采用双物理存储设备,使两个硬盘存储内容相同,当其中一个硬盘出现故障时,及时使用另一个备份硬盘6.计算机病毒故障:使用防火墙软件防止病毒侵入,对于已感染病毒的数据库文件,使用杀毒软件进行查杀,如果杀毒软件杀毒失败
此时只能用数据库备份文件,以软件容错的方式恢复数据库文件。
上文就是小编为大家整理的数据库的故障及可恢复模型,数据库常见四种故障。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。