Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
数据库恢复概述_专业的数据恢复中心,希望能够帮助你!!!。
故障是不可避免的,故障主要包括:硬件故障,软件故障,程序员操作失误,恶意破坏等
故障对数据库主要表现为:运行事务非正常中断,影响数据库中数据的正确性,数据库全部或部分数据丢失。
数据库恢复作用:将数据库从错误状态回复到之前一个已知的之前状态
数据库恢复子系统是数据库管理系统一个相当庞大的部分,约占总代码数的10%。恢复系统是衡量一个系统优劣的重要指标,对系统的可靠性有决定性作用。
故障的种类有四种 事务内部故障,系统故障,介质故障,计算机病毒。
BEGIN TRANSACTION read(BALANCE1);#读取甲存款 BALANCE1 := BALANCE1 - AMOUNT; IF (BALANCE1 < 0) THEN 打印{余额不足,无法转账}; ROLLBACK ELSE read(BALANCE2);#读取乙存款 BALANCE2 := BALANCE2 + AMOUNT; write(BALANCE2);#写回乙存款 COMMIT;
说明:
(1)例子中的两个更新要么全做,要么全不做
(2)当发现甲余额不足,应用程序可以发现故障,事务回滚,让数据库回到正确状态,避免事务内部故障。
(3)事务内部故障更多是非预期的,是不能由程序发现解决的,如死锁,运算溢出等。我们之后提到事务内部故障,默认指非预期。
(4)事务内部故障指程序没有到达既定的终点,数据库可能处于一种不正确状态。撤销该事务对数据库的修改,使得该事务好像根本没有启动过一样,这类恢复操作叫事务撤销(UNDO)
系统故障的恢复
表现一:发生系统故障时,一部分未完成事务对数据的修改可能已经写入物理数据库,此时数据库处于一种不正确的状态
解决办法:系统重新启动时,恢复程序将所有非正常中止事务回滚,将所有未完成事务撤销(UNDO)
表现二:发生系统故障时,有些已完成事务部分甚至全部留在缓冲区中,未写入物理数据库,系统重启使得这些事务对数据库的修改全部或部分丢失
解决办法:系统重新启动,需要重做(REDO)这些已提交事务
介质故障
又称硬故障,指外存故障,如磁盘损坏,磁头碰撞,强磁场干扰等
故障表现:破坏部分或全部数据库影响正在存取这部分数据的所有事务。介质故障比两种故障可能性小,但是破坏性大。
计算机病毒
计算机病毒是一种可传播,繁殖对计算机造成破坏的计算机程序。
计算机病毒特点:隐蔽性,潜伏性,传染性,破坏性,寄生性。
数据库一旦被计算机病毒破坏仍要用恢复技术进行恢复
总结:
各类故障对数据库的影响主要有数据库本身被破坏和数据库没有破坏,但数据不正确。
恢复技术的基本原理是冗余,恢复技术的实现很复杂,一个大型数据库产品中,恢复子系统代码量占10%以上。
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
下一篇