数据库表空间dbf文件设置最大上限空间撑满100%后,掉电异常宕机后回滚文件无法写入dbf空间无法正常启动问题处理
专栏/培训园地/ 文章详情 /

数据库表空间dbf文件设置最大上限空间撑满100%后,掉电异常宕机后回滚文件无法写入dbf空间无法正常启动问题处理

DM_myysp 2024/03/13 864 0 0
摘要

前言:
在某项目中很多使用DM数据库,在数据库以及应用中对某些指定用户的模式表空间大小进行了最大大小限制。如果后期数据库将这个表空间的dbf全部撑满100%的时候,如果这个时候数据库宕机时候,回滚rol文件比较大,存在大量回滚段,那么数据库在回滚的时候如果还有写入这些表空间dbf的数据,那么就会造成数据库无法写入被限制表空间dbf数据,而一直反复宕机。 目前能处理的办法可以将数据库先修改端口,然后将ctl控制文件里的跳过回滚文件参数屏蔽掉,同时修改所有dbf文件的限制大小为全部不限制。然后再重启数据库,然后再新添加表空间。然后在修改回端口,再恢复应用。
特别注意:以上方法供学习测试环境使用,如果是生产环境,请联系达梦数据库工程师处置,以避免发生不可知风险。

实施步骤:
某项目中使用的数据库系统是一套DM的凌思6.0的HA系统,数据库从前一天晚上到第二天上午一直再进行重启,应用无法连上。然后按如下操作恢复。
故障截图和日志如下:
2017-10-13 09:54:30 database T 140581912135456 DM Database Server x64 V7.1.3.132-Build(2014.08.20-47641trunc) startup...
2017-10-13 09:54:34 database T 140581912135456 ep 0 set rac status to 1
2017-10-13 09:54:34 database T 140581912135456 begin redo pwr log collect, last ckpt lsn: 40633582905 ...
2017-10-13 09:54:34 database T 140581912135456 redo pwr log collect finished
2017-10-13 09:54:34 database T 140581912135456 arch file recv begin: arch_lsn: 40633783952, clsn: 40633783953
2017-10-13 09:54:37 database T 140581912135456 rafil_file_create [/arch/dmarch/ARCHIVE_LOCAL1_20171013095434401.log] success
2017-10-13 09:54:37 database T 140581912135456 arch file recv end: arch_lsn: 40633783953, clsn: 40633783953
2017-10-13 09:54:37 database T 140581912135456 begin redo log recover, last ckpt lsn: 40633582905 ...
2017-10-13 09:54:37 database T 140581912135456 Apply redo log ok, 203066 ptx, begin_lsn: 40633582905, end_lsn: 40633783953
2017-10-13 09:54:37 database T 140581912135456 redo log recover finished
2017-10-13 09:54:37 database T 140581912135456 total redo 776353 rrec, 199843 rrec opt by pwr
2017-10-13 09:54:37 database T 140581912135456 redo rrec used 249ms
2017-10-13 09:54:37 database T 140581912135456 trx: 881517595 rollbacking...
2017-10-13 09:54:38 database T 140581912135456 Tablespace [HA2_SPC] reserve free extents fail, check disk space or autoextend option!
2017-10-13 09:54:54 database T 139984258774816 DM Database Server x64 V7.1.3.132-Build(2014.08.20-47641trunc) startup...
2017-10-13 09:54:57 database T 139984258774816 ep 0 set rac status to 1
2017-10-13 09:54:57 database T 139984258774816 begin redo pwr log collect, last ckpt lsn: 40633582905 ...
2017-10-13 09:54:57 database T 139984258774816 redo pwr log collect finished
2017-10-13 09:54:58 database T 139984258774816 arch file recv begin: arch_lsn: 40633783953, clsn: 40633783954
2017-10-13 09:55:01 database T 139984258774816 rafil_file_create [/arch/dmarch/ARCHIVE_LOCAL1_20171013095458156.log] success
2017-10-13 09:55:01 database T 139984258774816 arch file recv end: arch_lsn: 40633783954, clsn: 40633783954
2017-10-13 09:55:01 database T 139984258774816 begin redo log recover, last ckpt lsn: 40633582905 ...
2017-10-13 09:55:01 database T 139984258774816 Apply redo log ok, 203067 ptx, begin_lsn: 40633582905, end_lsn: 40633783954
2017-10-13 09:55:01 database T 139984258774816 redo log recover finished
2017-10-13 09:55:01 database T 139984258774816 total redo 776354 rrec, 199843 rrec opt by pwr
2017-10-13 09:55:01 database T 139984258774816 redo rrec used 248ms
2017-10-13 09:55:01 database T 139984258774816 trx: 881517595 rollbacking...
2017-10-13 09:55:02 database T 139984258774816 Tablespace [HA2_SPC] reserve free extents fail, check disk space or autoextend option!

1 首先停止ha系统,service openais stop,停止主备机ha系统,停止数据,然后修改主机dm.ini文件里port_num,把5236修改成5246。
2 备份好数据库控制文件dm.ctl,然后使用dmctlcvt工具,将dm.ctl文件转换成dm.txt文件。然后打开编辑,修改dm.txt文件里AUTOEXTEND=1,打开自动扩展。 同时修改maxsize属性为0,不限制。 然后在使用dmctlctv工具,将dm.txt转换成dm.ctl文件。
image.png
image.png
image.png
将受限表空间最大上限暂时改为0,不限制
3 然后重启DM数据库,看数据库是否能够正常回滚后启动,然后检查表数据正常后,然后添加两个新的对应表空间dbf文件。
4 最后再将数据库停止,然后将dm.ini里port_num端口号改回5236,然后重启数据库,检查应用。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服