转储是数据库恢复中采用的基本技术。所谓转储即DBA(数据库管理员)定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。在线运行过程中,也有可能发生一些未知的错误,即错误转储。
简介转储数据库(Dump database)指出现灾难性错误(例如恢复日志毁坏)通过数据库管理员DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程。恢复即当数据库遭到破坏后可以利用后备副本把数据库恢复,这时,数据库只能恢复到转储时的状态,从那以后的所有更新事务必须重新运行才能恢复到故障时的状态。
转储是十分耗费时间和资源的,不能频繁进行,DBA应该根据数据库的使用情况确定一个适当的转储周期1。
错误转储参数在OnLine运行过程中,也有可能发生一些未知的错误,为了保存错误现场,以备程序调试使用,在ONCONFIG文件中提供了相关的错误转储(Error Dump)参数:DUMPCORE、DUMPCNT、DUMPDIR、DUMPGCORE。对最终用户的应用而言,可以不必去理会这些参数。
DUMPCORE
DUMPCORE指示OnLine在发生系统内部的错误(assertion failure)时是否使虚拟处理器转储核心(dump core) -1=转储核心,0=不转储核心。核心文件将被存储在OnLine启动时所在的目录中(与DUMPDIR参数无关)。
DUMPCNT
DUMPCNT指定发生系统内部错误的次数,发生这些错误后OnLine将转储共享内存或调用gcore产生一个核心转储文件。
DUMPDIR
DUMPDIR指定转储共享内存、gcore文件或错误信息所使用的目录。由于共享内存可能非常大,DUMPDIR指定目录所在的文件系统应具有很大的空闲空间。DUMPDIR的缺省值为/tmp。
DUMPGCORE
DUMPGCORE指示OnLine是否转储gcore文件-1=转储gcore,0=不转储gcore。只有操作系统支持gcore实用程序时,才能使用该参数,否则使用DUMPCORE2。
转储的分类转储分为静态转储、动态转储、海量转储和增量转储4类。
静态转储:指转储期间不允许(或不存在)对数据库进行任何存取或修改活动。静态转储简单,但转储必须等待用户事务结束才能进行;同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。
动态转储:指转储期间允许对数据库进行存取或修改,即转储和用户事务可以并发执行。动态转储可克服静态转储的缺点,但是,转储结束时后援副本上的数据并不能保证正确有效。
海量转储:海量转储是指每次转储全部数据库。
增量转储:增量转储指每次只转储上次转储后更新过的数据。如果数据库很大,事务处理又十分频繁,则增量转储方式是很有效的1。
本词条内容贡献者为:
王伟 - 副教授 - 上海交通大学