服务器本身时区及时间均正确,但数据库中查询 select sysdate; 比实际时间早 8 小时。
dm_svc.conf 文件是 DM 安装时生成一个配置文件,不同平台的目录有所不同:
主要通过以下两点进行排查:
导入 DCR 配置文件时,报如下错误:
出现该报错是由于导入 dcr 文件时,dcr 配置信息被 css 进程占用。需要把 css 服务关闭才可以导入修改 dcr 信息。
利用 DM 管理工具,创建表空间报错,具体报错信息如下:
达梦管理工具创建表空间在输入文件路径时,不需要手动新建.dbf 文件,只需要在确认文件路径后,输入文件名即可。具体步骤如下:
步骤 1:新建表空间;
步骤 2:输入表空间名(TEST);
步骤 3:点击添加数据文件,设置文件大小,自动扩展等;
步骤 4:输入文件路径,选择需要存放的路径;
步骤 5:在选择好文件存放路径后,直接输入想要创建的文件名,不需要自己手动新建.dbf 文件。
可利用如下语句查询表空间大小及其使用情况:
在数据库的安装目录下的../log 文件夹中的 tool.log 文件获取,该日志文件中有详细的错误信息。
方法一:等待数据库自动检测并更新。
默认每天凌晨数据库会自动检测 key 信息,如果 key 被替换,会自动更新,建议第三天查询授权是否生效。
方法二:不重启数据库,执行函数生效。
该方法非所有版本都有,需要查看手册进行确认。打开数据库工具,新建查询:
方法三:重启数据库使 key 文件生效。
若为集群,请和工程师确定重启方式。
若查询返回结果是否为'NULL',则表示已更新为永久授权,否则返回到期时间。
- 切勿在生产环境下,随意替换 key 文件;
- key 文件名称一定要改成 dm.key,如果不修改直接放到服务器上是不生效的;
- 如果之前的旧授权也在,可以先移走或者删除;
- 替换 key 文件前,请确保与服务器架构匹配,否则有可能造成服务启动失败;
- 若 key 替换完后,查询结果未达到预期,请确保 key 文件的权限属组正常。
利用如下 SQL 语句,可以查看某用户下的统计信息收集情况:
可通过以下步骤进行检查:
审计日志文件缺省使用 SYSTEM_PATH 路径,若要把审计日志文件单独指定到自定义的路径下,dm.ini 文件中提供了 AUD_PATH 参数,可以指定自定义路径,该参数为静态参数,修改后重启数据库生效。
dm.ini 提供了 DEL_HP_OPT_FLAG 参数来控制分区表的操作优化,该参数为动态会话级参数。出现如上问题,需要修改 DEL_HP_OPT_FLAG 的取值,使其包含 4:允许语句块中的间隔分区表自动扩展。
2:控制范围分区表创建的优化处理,转换为数据流方式实现;
4:允许语句块中的间隔分区表自动扩展;
8:开启对 truncate 分区表的优化处理;
16:完全刷新时删除老数据使用 delete 方式。
DEL_HP_OPT_FLAG 参数取值支持使用上述有效值的组合值,如 7 表示同时进行 1、2、4 的优化。
该情况一般出现在 dmagent 是从其他数据库拷贝过来的情况,拷贝过来后文件权限改变,导致报错,修改 dmagent 文件权限即可。
A 主机 Dmagent 正常启动,B 主机部署的 DEM 检测不到对应的主机信息。DEM 主机部署和 dmagent 均按照规范部署。
查看两台主机的时间,发现 A、B 主机间的时间不一致,如下图:
DEM 监控 5 分钟为消息有效时间,即如果收到 dmagent 发送的消息的时间与 DEM 运行机器当前时间相差 5 分钟,则认为该消息无效,不处理该消息。
因此需要重新同步时间,并重启 dmagent。之后查看 DEM 主机监控信息,可以查看到监控的主机信息。
返回创建 dblink 的语法确定用户名与密码是否正常,注意检查大小写,如果密码为小写,请注意用双引号引起来。
1.检查操作系统内核版本。
操作系统内核版本为 27 之前和 27 之后的修改方法有所不同,如果是 27 版本之后的用通用方法关闭,如果是 27 版本之前的用下面的方法关 numa ,透明大页和磁盘调度;
重启生效,如用命令查看 numa 没有生效,请联系友商,从 BIOS 上进行关闭 numa 。
出现该问题是由于 DmAgentService 服务未注册导致。可通过如下方法解决:
在此种情况下,用户未安装 JDK 环境,可以使用 DM 数据库自带的 JDK 环境,位于数据库安装目录 $DM_HOME/jdk 下,具体步骤如下:
(2)以服务方式启动。需要在 root 用户中先载入数据库的 JDK 环境变量,参考第 1 步(未执行此步骤将无法注册服务)。然后进入dmagent 的目录中执行:./service.sh install 进行注册。
最后,注册完成后,在dmagent/service/DmAgentService 中添加第(1)步的 JDK 环境变量保存后即可使用服务方式启动。注意,JDK的路径一定要使用达梦数据库 JDK 的绝对路径,否则还是无法正常启动 dmagent。
然后,修改启动服务内容
---修改服务启动方式为 open
最后,将配置文件做备份,并修改回原本的参数:
DEM 添加 DSC 集群时,主要包含以下两类问题:
问题一: DEM 监控 DSC 集群无法通过扫描站点添加成功
DEM 监控 DSC 集群通过扫描站点测试连接成功,但点击确定后,报错:站点扫描失败。
通过新增站点来添加 DSC 集群,点击下图中的“+”号,填写 DSC 集群信息,新增即可(DSC 每个节点都要新增一次)。
问题二:添加站点时候无法无法直接修改保存
当需要修改下图中服务名和启动命令时报错,并提示以下信息:主机和对应端口已存在。
点击标记的倒三角形图标,如下图,选择“编辑”,进行修改即可。
如果用户的资源一直没有释放,可以从应用层和数据库两个方面来做设置。
注意需要考虑实际业务场景:如果从数据库层面断开,应用层面再次连接数据库会报错,那么最好从应用层面来设置资源限制。
从应用层面设置会话空闲期,请联系应用负责人进行相应设置,以下主要介绍从数据库层面进行资源限制。
2、通过 select id_code 查询服务器端版本为 号的,再查看 manager 客户端为 号的版本,客户端版本超过服务端版本;
3、更换客户端为 2021.06 月份左右的版本后,修改普通用户,正常执行;
总结:建议在 DM8 的数据库上,客户端版本尽量和服务端版本保持一致。
可以通过单独授权或者授权 dba 角色进行解决。
方法一: 通过管理工具授予用户 admin job 权限。
方法二: 通过命令的方式进行授权。
说明:也可通过授予用户 dba 权限解决该问题,但生产环境中不推荐使用该方法。
结束会话一般使用 sp_close_session() 命令。如果想批量执行的话,可以根据条件在 v$sessions 中查询,并使用游标去执行。
批量结束会话操作要小心,可以先根据条件查看相关的 SQL_TEXT,确定后再去执行。
以下例子是结束 60 秒以上的活动会话。
1.首先查看一下符合条件的相关会话:
使用系统包:DBMS_STATS.GATHER_SCHEMA_STATS(),收集一个模式下的表的统计信息时,应如何查看收集进度。
--收集SYSDBA模式下所有对象的统计信息
系统表 dba_tables 中的 last_analyzed 字段可以看到调用系统包收集统计信息的最后收集时间,所以一般可以使用下面的 SQL 以表个数为单位查看收集进度(可根据实际情况调整 OWNER):
如果 WARNING 非常频繁,可能会导致告警日志文件特别大。这里的 Failure occurs in data_recv_inet_once 是消息检验的告警,与网络环境有一定的关系,网络不稳定的情况下触发此告警的可能性较大,可以直接修改 dm.ini 的 COMM_VALIDATE 参数来关闭该功能。该参数可以动态或系统级修改,用来控制是否对消息进行校验。0 表示不检验;1
表示检验,默认值为 1。
关闭消息校验的警告操作如下:
修改完成后在 dm.ini 中检查是否参数是否已修改。
2.如果报语法错误或其它错误,检查是否屏蔽了关键字;
DEM 在长期使用后,后台数据库中会保存很多历史数据信息,后台数据总数据量会变的很大,占用磁盘空间。同时,部分记录详细信息表的数据量会变的很大,导致前台部分功能点涉及到大表的关联查询时,会出现缓慢卡顿的问题。
可通过以下两种方法解决问题:
方法一: 使用 DEM 管理平台的历史数据管理功能,设置历史数据保留时间上限。进行该设置后,系统会自动删除指定天数之前的历史数据。
1.选择系统配置模块。
2.历史数据管理选项,选择数据保留时间,勾选对应表,点击应用。
方法二: 在相应表上设置索引和定时作业,解决查询慢和占用磁盘空间大的问题。
1.在大表上添加索引。
2.创建存储过程,更新大表统计信息和清理大表数据。
3.创建定时作业,定时执行存储过程。