2008年(239)
分类: Sybase
2008-06-17 22:33:48
SYBASE数据库系统只能使用日志的归档模式。日志表中的空间再次被使用前,日志信息必须被删除。SYBASE系统不支持任何形式的部分备份(包括增量备份),也只能对整个数据库进行恢复。
1. 数据库备份
SYBAS系统采用单实例多数据库结构。系统中的多个数据库可以分为:系统数据库和用户数据库,这些数据库之间的关系比较紧密。系统的启动,将一并启动整个实例、打开所有数据库。备份操作基于单个数据库、在系统的运行环境中进行。
对SYBASE数据库进行备份,可以使用联机和脱机备份,但不支持任何形式的部分备份。缺省情况下,数据库备份是在系统运行环境中联机进行。要执行数据库的脱机备份,可以设置数据库属性,使数据库处于单用户操作模式。数据库备份操作通过命令dump database完成。
由于SYBASE系统中日志信息以表的形式存放,因此数据库备份要包含日志信息,但数据库备份操作不会清除已经被备份的日志。一种好的做法就是首先使用命令dump transaction备份并清除不再被使用的日志,然后再执行数据库备份。
如果系统的数据字典发生了改变,就应当备份master系统数据库,以方便整个系统的恢复。
2. 数据库恢复
用户要访问SYBASE数据库,首先要启动整个系统。系统启动时将打开所有数据库,数据库按照系统数据库、用户数据库以及用户数据库在系统表sysdatabases中的顺序依次打开。数据库在被打开时,系统会检查它的状态。如果数据库处于不一致状态,就自动执行崩溃恢复。
系统中被破坏数据库的类型决定了介质恢复可以使用的处理过程。如果master系统数据库遭到破坏,那么整个系统无法启动、运行。在这种情况下,可以使用命令创建一个新的master数据库,然后启动到单用户环境,使用备份或者相关结构信息,对master数据库进行恢复。对其他的系统数据库,由于损坏不会导致系统不能运行,对它们的修复只要在系统运行环境下使用备份进行恢复即可。
如果用户数据库遭到破坏,则该数据库中的数据无法被使用,而整个系统仍旧可以运行。对它的恢复,需要在系统运行环境下进行。但必须要注意的是,在恢复之前要使用带with no_truncate选项的dump transaction命令,备份失败数据库当前的日志记录。有了这些日志信息,就可以将该用户数据库恢复到故障发生的那一刻。
对用户数据库的介质恢复,需要两个处理过程,分别对应介质恢复的两个阶段:
(1)使用命令load database,通过备份将数据库恢复到备份操作执行的那一时刻;
(2)使用命令load transaction,通过日志信息将数据库恢复到故障发生的那一刻或者之前的任一时刻。
在以上的恢复操作完成之后,使用online database命令使用户数据库处于联机状态,从而该数据库就可以被用户访问。