Rumah >pangkalan data >tutorial mysql > 【MySQL 07】数据库恢复技术
1、四种故障
事务故障、系统故障、介质故障、计算机病毒
1、事务故障:事务内部故障可分为预期的和非预期的,其中大部分的故障都是非预期的。预期的事务内部故障是指可以通过事务程序本身发现的事务内部故障;非预期的事务内部故障是不能由事务程序处理的,如运算溢出故障、并发事务死锁故障、违反了某些完整性限制而导致的故障等。
2、系统故障:系统故障也称为软故障,是指数据库在运行过程中,由于硬件故障、数据库软件及操作系统的漏洞、突然停电灯情况,导致系统停止运转,所有正在运行的事务以非正常方式终止,需要系统重新启动的一类故障。这类事务不破坏数据库,但是影响正在运行的所有事务。
3、介质故障:介质故障也称为硬故障,主要指数据库在运行过程中,由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸等情况,使得数据库中的数据部分或全部丢失的一类故障。
4、计算机病毒故障:计算机病毒故障是一种恶意的计算机程序,它可以像病毒一样繁殖和传播,在对计算机系统造成破坏的同时也可能对数据库系统造成破坏(破坏方式以数据库文件为主)。
2、解决方案
1、预期的事务内部故障:将事务回滚,撤销对数据库的修改。
2、非预期的事务内部故障:强制回滚事务,在保证该事务对其他事务没有影响的条件下,利用日志文件撤销其对数据库的修改。
3、系统故障:待计算机重新启动之后,对于未完成的事务可能写入数据库的内容,回滚所有未完成的事务写的结果;对于已完成的事务可能部分或全部留在缓冲区的结果,需要重做所有已提交的事务(即撤销所有未提交的事务,重做所有已提交的事务)。
4、介质故障的软件容错:使用数据库备份及事务日志文件,通过恢复技术,恢复数据库到备份结束时的状态。
5、介质故障的硬件容错:采用双物理存储设备,使两个硬盘存储内容相同,当其中一个硬盘出现故障时,及时使用另一个备份硬盘。
6、计算机病毒故障:使用防火墙软件防止病毒侵入,对于已感染病毒的数据库文件,使用杀毒软件进行查杀,如果杀毒软件杀毒失败,此时只能用数据库备份文件,以软件容错的方式恢复数据库文件。
3、数据恢复实现技术
数据库恢复的基本原理就是冗余,即利用存储在系统其他地方的冗余数据来重建数据库中已被破坏的数据库或不正确的那部分数据。
建立冗余数据主要包括两种方法:数据转储(Backup)和登记日志(Logging)。
1、数据转储
由DBA定期把整个数据库或数据库中的部分数据复制到其他磁盘上保存起来,这些备份的数据文件称为后备副本或后援副本。
静态转储:在系统中无事务运行时进行的转储操作,转储期间不允许有对数据库的任何存取或修改活动。
动态转储:转储期间允许对数据库进行存取或修改,即转储操作与用户事务并发执行。
海量转储:每次转储全部数据库。
增量转储:每次只转储上一次转储后更新过的数据。
2、登记日志
登记日志就是由系统自动记录事务对数据库的更新操作,日志通常记录在稳定存储器中。
以记录为单位的日志文件:
事务标识(标明是哪个事务)、操作类型(插入、删除或修改)、操作对象(记录内部标识)、更新前数据的旧值、更新后数据的新值
以数据块为单位的日志文件:
事务标识、被更新的数据块
登记日志文件的原则:
(1)登记的次序严格按并行事务的时间次序
(2)必须先写日志文件,后写数据库
3、检查点
以上就是 【MySQL 07】数据库恢复技术的内容,更多相关内容请关注PHP中文网(www.php.cn)!