2008年(239)
分类:
2008-06-17 22:35:52
DB2数据库可以使用日志的非归档和归档模式。由于一个表空间只属于一个数据库,并且数据库使用几个系统文件,记录单个日志文件中更新操作所涉及到的表空间,从而使数据库系统的备份和恢复,可以基于单个的表空间进行。
1. 数据库备份
DB2系统采用单实例多数据库结构,数据库和数据库之间互相独立。备份操作基于单个数据库、在数据库管理器的运行环境中进行。
对DB2数据库进行备份,可以使用联机和脱机备份,也可以使用完整和部分备份,所有的备份操作通过命令backup database完成。数据库的日志归档模式,决定了可以采用的备份方式。
缺省情况下,数据库备份使用脱机备份,要求所有的用户断开和数据库的连接。可以使用force application all命令,强制断开所有用户和数据库的连接。要使用联机备份,需要在备份命令中指定online选项。
如果没有在备份命令中明确指定,备份操作就基于整个数据库进行。要执行部分备份,必须在备份命令中指定相关选项。DB2系统支持两种类型的部分备份。增量备份有两种处理方式:incremental和delta。在incremental方式下,将对上一次完整备份之后发生改变的所有数据进行备份。而使用delta方式,是备份上一次备份(可以是完整备份,也可以是增量备份)之后的所有数据改变。DB2系统的部件备份,只能够在表空间的级别上实现,可以在命令中指定要备份的一个或者多个表空间。
2. 数据库恢复
用户要访问DB2数据库,首先要启动数据库管理器。然而在数据库管理器启动之后,所有数据库并不会被打开。数据库可以由管理员使用命令手工激活,也可以在收到用户数据访问请求后被自动激活。数据库在被激活时,系统会检查它的状态。如果数据库处于不一致状态,就自动执行崩溃恢复。
DB2系统有三种类型的恢复方式:崩溃恢复(crash recovery)、版本恢复(version recovery)、前滚恢复(rollforward recovery)。版本恢复和前滚恢复属于介质恢复,分别对应介质恢复的两个阶段。版本恢复使用数据库备份,通过命令restore database将数据库恢复到备份操作执行的那一时刻;前滚恢复使用日志信息,通过命令rollforward database将数据库恢复到故障发生的那一刻或者之前的任一时刻。
DB2数据库的介质恢复,要求在实例的运行环境中进行。数据库的日志归档模式,决定了恢复操作的处理步骤。
在日志的非归档模式下,只能使用数据库的一致性备份进行版本恢复。在恢复完成后就可以打开数据库。
而在日志的归档模式下,在版本恢复完成后,还需要使用日志文件进行前滚恢复,在此之后才可以打开数据库。在前滚恢复时,可以根据需要,指定使用全部还是部分日志文件,从而决定执行完整恢复还是不完整恢复。
此外,在数据库的日志归档模式下,还可以基于表空间进行数据库的部分恢复。这种部分恢复,可以在系统联机状态下进行,从而不会中断用户对其它数据的访问。