暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DM8启动报错:全局参数非法

原创 董小姐 2024-05-28
576

问题描述

开发让把数据库启动下,启动后输入如下报错:

字面意思的报错就是参数非法,推测是有人改参数没改对,可是和开发沟通没人改参数。

--查看进程
[root@topnet31 ~]# ps -ef | grep dmserver
dmdba    34732     1  1 5月27 ?       00:21:03 /opt/dmdba/dmdbms/bin/dmserver path=/opt/dmdba/data/topoers/dm.ini

--启动实例
[dmdba@topnet31 bin]$ cd /opt/dmdba/dmdbms/bin/
[dmdba@topnet31 bin]$ ./DmServiceTOPISP start
Starting DmServiceTOPISP:                                  [ FAILED ]
Global parameter value of LIKE_OPT_FLAG is illegal, use max value!
Global parameter value of VIEW_PULLUP_FLAG is illegal, use max value!
Global parameter value of GROUP_OPT_FLAG is illegal, use max value!
Global parameter value of HASH_PLL_OPT_FLAG is illegal, use max value!
Global parameter value of ENHANCED_SUBQ_MERGING is illegal, use default value!
Global parameter value of OUTER_CVT_INNER_PULL_UP_COND_FLAG is illegal, use default value!
Global parameter value of SUBQ_EXP_CVT_FLAG is illegal, use max value!
Global parameter value of TOP_ORDER_OPT_FLAG is illegal, use default value!
Global parameter value of SPEED_SEMI_JOIN_PLAN is illegal, use max value!
Global parameter value of CNNTB_OPT_FLAG is illegal, use max value!
Global parameter value of NBEXP_OPT_FLAG is illegal, use max value!
Global parameter value of VIEW_FILTER_MERGING is illegal, use max value!
Global parameter value of PSEG_RECV is illegal, use max value!
Global parameter value of ENABLE_IGNORE_PURGE_REC is illegal, use default value!
version info: enterprise
ctl file info get failed!

问题原因

一个服务器上部署了2个版本不同的数据库,dmserver命令所在的目录不对。

[dmdba@topnet31 ~]$ find / -name dmserver
/opt/dmdba/dm8/bin/dmserver
/opt/dmdba/dmdbms/bin/dmserver

解决办法

换个版本的安装目录启动解决

--启动实例
[dmdba@topnet31 bin]$ cd /opt/dmdba/dm8/bin
[dmdba@topnet31 bin]$ ./DmServiceTOPISP start

补充

数据库启动过程

shutdown->mount

根据配置文件 dm.ini 分配共享内存, 启动后台进程/线程, 找到控制文件的位置, 验证控制文件是否损坏, 最后打开控制文件。

mount->open

根据控制文件找到数据库的数据文件和重做日志文件, 分析数据库是否需要做恢复。

控制文件介绍

每个DM 数据库都有一个名为dm.ctl的控制文件。控制文件是一个二进制文件,它记录了数据库必要的初始信息,其中主要包含以下内容:

  • 数据库名称;
  • 数据库服务器模式;
  • OGUID 唯一标识;
  • 数据库服务器版本;
  • 数据文件版本;
  • 数据库的启动次数;
  • 数据库最近一次启动时间;
  • 表空间信息,包括表空间名,表空间物理文件路径等,记录了所有数据库中使用的表空间,数组的方式保存起来;
  • 控制文件校验码,校验码由数据库服务器在每次修改控制文件后计算生成,保证控制文件合法性,防止文件损坏及手工修改。

最后,达梦在数据文件保护方面做的还是挺好的,版本不匹配直接启动失败,保持数据文件不变化。但是在一个服务器上部署多个版本的场景下,有个弊端就是,库关闭后不好去查dm.ini对应的安装目录是哪个。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论