达梦数据库启动过程验证
本文的目的是验证达梦数据库在启动过程中所需要文件分别是什么,并且验证部分文件中数值的作用,以便在后续的维护过程中,更方便的处理数据库实例不能启动的问题(作为从oracle转dm的dba,在过程中也与oracle做少量对比)。
达梦数据库的实例共四种状态shutdown/mount/open/supend,在启动数据库时,必须指定初始化参数dm.ini,否则将会提示错误

dm.ini以纯文本键值对的方式进行存储启动时所需的实例参数,一个参数对应一个值。
根据以上启动时的错误信息了解,必须指定dm.ini参数文件,此文件以文本形式存放在操作系统中,存在被删除的风险,那么配置文件中哪些参数是必须的,同时也验证哪些参数是默认值
经过验证,CTL_PATH和TEMP_PATH两个参数是必须值,其他参数都可以以默认值形式在启动时生效,只有两个参数存在的情况下,实例既可以启动到mount状态,也可以启动到open状态。
但是因为未指定实例名,所以实例名称为空:

查询数据库名称正常,数据库名称是记录在控制文件中,只要控制文件存在,用strings查看控制文件内容为:

其中CTL_PATH指定控制文件的具体路径,如果参数文件存在,但是移除参数路径中指定的文件,则提示以下信息:

在数据库启动到mount状态的过程中,控制文件是必须的,这和oracle是一致的。
此时再验证表空间的数据文件移除情况下,是否影响实例启动到mount状态,先移除SYSTEM.DBF文件进行尝试

根据错误提示,在缺少SYSTEM.DBF数据库文件的情况下,启动到mount状态时报错,说明在启动过程中需要验证SYSTEM.DBF数据文件是否存在,这一点和oracle存在一些差异,但是此过程中只是验证文件是否存在,还是要进行数据的校验,暂时不清楚,还需要进行一步分析。
此时先touch一个空间的文件,看是否影响实例启动到mount状态

很明显,在启动到mount时,会校验SYSTEM.DBF数据文件的内容。
下面验证其他文件在启动时是否验证,移走MAIN.DBF或者重日志日志文件查看启动过程

先看重做日志的移动后效果,只移动了redo1,启动一次,提示故障不能启动,移动回来后,再移走MAIN.DBF这里显示重做日志需要恢复的情况,所以在实例启动到mount时,还会向redo日志中写入数据。
此时数据库可以启动到mount状态,但是强制把main表空间做离线处理。再尝试touch一个空的文件,启动实例到mount状态,直接crash,生成core文件,core文件的查看后续文章再继续研究,本文不做描述

通过以上验证,表明在实例启动到mount状态时,必须进行所有数据文件的校验,来确保整个实例的启动过程。
将移走的数据文件移回来,启动实例正常,但还会提示redo日志进行了恢复,将整个实例启动到open状态后,再重新启动到mount状态,则不会再提示重做日志的恢复,说明虽然在启动过程中是进行了校验,也进行了恢复提示,但未真的将恢复的数据写入到重做日志,也就是数据库处于不能读写的状态。
回滚数据文件和临时数据文件也单独进行验证,其中回滚数据文件丢失实例不能启动,TEMP表空间的数据文件在移动后,实例在启动过程中会自动生成一个。
小结一下:实例在启动到mount状态时,参数文件、控制文件、重做日志文件、system表空间文件、回滚表空间文件都是必须的,临时表空间文件在缺失的情况下会自动生成,用户数据表空间数据文件缺失的情况下,会强制将此表空间offline。
上面验证了将实例启动到mount状态,需要使用参数文件、控制文件、重做日志文件、数据文件等全部数据库相关的文件,并且都会对这些文件的内容进行验证,那和处于open状态的数据库有什么区别呢,下面验证一下,主要是通过启动过程中的日志进行验证。
相较于启动到mount状态的数据库,启动到open状态的数据库增加的内容为两部分内容:


根据以上内容显示,从mount状态到open状态,是从回滚段中查询是否存在crash的pages,如果存在则依据此文件中的内容进行前滚,如果不存在,也需要将所有的页进行检查。
总结:
下面描述一下实例过程中数据库文件的总结:
参数文件:启动必须,除CTL_PATH和TEMP_PATH两个参数外,其他参数均可以按照默认值启动
控制文件:启动必须,无此文件则启动失败
重做日志文件:启动必须,无此文件启动失败,同时如果只是缺失部分重做日志文件,则在后续启动过程中,会进行文件中数据的recover
系统表空间和回滚表空间数据文件:启动必须,无数据文件启动失败
用户表空间:非启动必须,如果文件丢失,则表空间强制offline
临时表空间:非启动必须,如果文件丢失,则系统自动生成
从以上验证过程中了解大部分启动过程需要的文件,基本验证每个文件在实例启动和运行过程中的具体作用,对启动过程也有清楚的了解,在后续的数据库运维过程中,为处理不同文件的丢失提供基础知识。
https://eco.dameng.com

浙公网安备 33010602011771号