事务故障意味着事务没有达到预期的终点(commit或者显示的rollback),因此,数据库可能处于不正确状态,恢复程序要在不影响其它事务运行的情况系,强行回滚(rollback)该事务, 即撤销该事务已经作出的任何对数据库的修改,使得该事务好像根本没有启动一样。这类恢复操作称为事务撤销(undo)。
系统故障时指造成系统停止运转的任何事件,使得系统要重新启动。有(CPU故障、操作系统故障、DBMS代码故障、突然停电)
系统故障称为软故障,介质故障称为硬故障。硬故障是指外存故障,如磁盘损坏等,这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事故。
数据库大多数的故障都能用数据库恢复技术来解决。
1)数据转储储:可以分为静态转储和动态转储。
静态转储是在系统中无运行事务时进行的转储操作。即转储操作开始的时刻,数据库处于一致性状态,而转储期间不允许对数据库的任何存取、 修改活动。显然,静态转储得到的一定是一个数据一致性的副本。
动态转储是指转储期间允许对数据库进行存取或修改。但是,转储结束时后援副本上的数据并不能保证正确有效。为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件,这样,后援副本加上日志文件就能把数据库恢复到某一时刻的正确状态。
转储可以分为海量转储和增量转储两种方式。海量转储是指每次转储全部数据库。增量转储则指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般来说更方便一些。
数据转储方法可以分为四类:动态增量转储、动态海量转储、静态增量转储、静态海量转储。
1)登记日志文件
日志文件是用来记录事务对数据库的更新操作的文件。以记录为单位的日志文件和以数据块为单位的日志文件。
以记录为单位的日志文件,需要登记的内容包括:
1.各个事务的开始标记
2.各个事务的结束标记
3.各个事务的所有更新操作
每个日志记录的内容包括:
1.事务标识(标明是哪个事务)
2.操作的类型(插入、删除或修改)
3.操作对象(记录内部标识)
4.更新前数据的旧值
5.更新后数据的新值
可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。具体作用是:
1.事务故障恢复和系统故障恢复必须用日志文件
2.在动态转储方式必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。
3.在静态转储方式中,也可以建立日志文件。
为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:
1.登记的次序严格按并发事务执行的时间次序
2.必须先些日志文件,后写数据库。
1)加密
对数据加密可以有效地防止非法活动对数据地破坏。
A 对授权用户而言,加密数据和解密数据相对简单
B 加密模式不应该依赖于算法的保密,而是依赖于算法参数
C 对入侵者来说,确定密钥越困来越好
2)数据库权限的种类
数据库权限一般分为两类
A 对数据库管理系统进行维护的权限
B 对数据库中的对象和数据进行操作的权限
3)数据库用户的种类
A 数据库系统管理员:具有全部的权限
B 数据库对象拥有者:对其具有的对象具有一切权限
C 普通用户:select、insert、update、delete。
本文摘自全国计算机等级考试教材系列(三级数据库技术教程)——主编 赵宏杰
本文分享自 ellipse数据库技术 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!