1.数据转储
所谓数据转储是DBA定期地将整个数据库复制到磁盘上保存起来的过程。这些备用的数据文本成为后备副本或者后援副本。用于恢复数据,增强数据库的容灾能力。
数据转储非常耗费时间和资源,不能频繁进行。分为静态转储和动态转储。
静态转储是在系统中无运行事务时进行的转储操作,即转储操作开始的时刻,数据库处于一致性状态,二转储期间不允许(或者不存在)对数据库的任何存取、修改活动。显然,静态转储得到的一定是一个数据一致性的副本。静态转储简单,但是转储必须等待正运行的用户事务结束才能进行,同样,新的事务必须等待转储结束才能执行。这显然会降低数据库的可用性。
动态转储是指转储期间允许对数据库进行存取或者修改,即转储和用户事务可以并发执行。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后备副本上的数据并不能保证正确有效。比如,在转储T0时刻,系统把数据A=100转储到磁盘上,而在下一时刻T1,某一个事务将A修改为200。转储结束,后备副本上的A已经是过时的数据了。为此,必须把转储期间的各事务对数据库的修改活动登记下来,建立日志文件。这样,后备副本加上日志文件就能把数据库恢复到某一时刻的争取状态。
转储还分为全量转储和增量转储。
2.日志文件
日志文件是用来记录事务对数据库的更新操作的文件,不同数据库管理系统采用的日志文件格式不完全一样,主要有:以记录为单位的日志文件和以数据块为单位的日志文件。
以记录为单位的日志文件,必须登记:
各个事务的开始标志(begin transaction)
各个事务的结束标志(commit 或roll back)
各个事务的所有更新操作。
每个日志记录的内容包括:
事务标识(标明是哪个事务)、操作的类型(插入、删除或者修改)、操作对象(记录内部标识)、更新前数据的旧值(对插入操作而言,此为空值)、更新后数据的新值(对删除操作而言,此为空值)。
日志文件在数据库恢复中起着非常重要的作用。可以用来进行实物故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。利用日志文件,把已经完成的事务进行重做处理(REDO),对故障发生时尚未完成的事务进行撤销处理(UNDO)。
为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:
登记的次序严格按照并发事务执行的时间次序;
必须先写日志文件,后写数据库。
3.数据容灾
容灾的登记划分:本地容灾、异地数据冷备份、异地数据热备份、异地应用级容灾。
容灾的技术:数据备份技术、数据复制技术、灾难检测技术、系统迁移技术。