Java教程

达梦数据库常见问题及处理

本文主要是介绍达梦数据库常见问题及处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  • 查询数据库字符集大小写敏感等初始化信息
  • 用户登录disql报错[-70070]初始化SSL环境失败
  • 用户登录数据库时,报错[-2148]提示标记不匹配
  • 修改备份作业时,提示锁超时
  • mysql迁移DM常见几种报错
    • 非法 IDENTITY 列类型
    • 约束表达式无效
    • 列长度超出定义[-6169]
  • 因关键字屏蔽导致报错[-2007]语法分析出错

查询数据库字符集大小写敏感等初始化信息

方法一:
打开DM管理工具,选择管理服务器-查看系统概览


方法二:进入实例的目录,查看初始化日志/dminit***.log
说明:
页大小 page size:32768/1024=32K
簇大小 extent size: 16
大小写是否敏感(1=敏感 0=不敏感) string case sensitive: 1
字符集(0=GB18030,1=UTF-8,2=EUC-KR) charset: 1
VARCHAR类型长度是否以字符为单位(1=是 0=否) length in char: 0
在这里插入图片描述
在这里插入图片描述
方法三:登录disql查询,或直接在DM管理工具查询

查询页大小:
SELECT SF_GET_PAGE_SIZE();  /* 32768/1024=32KB */ 
select cast(PAGE()/1024 as varchar);
查询簇大小:
select SF_GET_EXTENT_SIZE();  
查询字符集:
SELECT SF_GET_UNICODE_FLAG();
select unicode();
select (case SF_GET_UNICODE_FLAG() when '0' then 'GBK18030' when '1' then 'UTF-8' when '2' then 'EUC-KR' end);
查询大小写是否敏感:
SELECT SF_GET_CASE_SENSITIVE_FLAG(); 
select CONCAT( '大小写',(case SF_GET_CASE_SENSITIVE_FLAG() when '1' then '敏感' when '0' then '不敏感' end));

用户登录disql报错[-70070]初始化SSL环境失败

在这里插入图片描述
先查询数据库版本,如图,可见其为安全版
在这里插入图片描述
这是因为安全版数据库中默认开启了SSL加密。
可将ENABLE_ENCRYPT参数的值设置为0,数据库执行以下语句
sp_set_para_value(2,‘ENABLE_ENCRYPT’,0);将其关闭,或在 dm.ini 配置文件里面直接修改。
执行完后重启数据库才能生效。

用户登录数据库时,报错[-2148]提示标记不匹配

在这里插入图片描述
原因是企业版初始化实例是priv_flag=0
登录数据库SYSSSO用户,修改应用策略。策略特权,将读权限,完全,向上写,向下写,交叉写都勾选上点击确定即可。
然后重新登录SYSDBA。
在这里插入图片描述
在这里插入图片描述

修改备份作业时,提示锁超时

在这里插入图片描述
查询数据库表的锁的情况:select * from v l o c k ; 查 询 对 象 信 息 : s e l e c t ∗ f r o m s y s o b j e c t s ; 查 询 会 话 信 息 : s e l e c t ∗ f r o m v lock; 查询对象信息:select * from sysobjects; 查询会话信息:select * from v lock;查询对象信息:select∗fromsysobjects;查询会话信息:select∗fromvsessions;
使用系统过程sp_close_session(sess_id)干掉对应的会话即可。

mysql迁移DM常见几种报错

非法 IDENTITY 列类型

在这里插入图片描述
在这里插入图片描述
如上图将自增列类型DECIMAL(20,0)修改为bigint。达梦数据库中IDENTITY自增列类型只能是 int 或者是 bigint 。

约束表达式无效

在这里插入图片描述
从mysql迁移到DM时报错约束表达式无效,点开错误详情不难发现,语句内default 设置默认值current_timestamp()带了单引号,只需要去掉单引号手动执行即可。

列长度超出定义[-6169]

在这里插入图片描述
这个是因为mysql字符串类型默认以字符单位且大小写不敏感;而达梦字符串类型默认以字节为单位且大小写敏感。
所以在使用DTS迁移工具时,设置表映射关系调整列精度将其扩大。
在这里插入图片描述

因关键字屏蔽导致报错[-2007]语法分析出错

场景:数据库执行修改用户资源限制语句时,提示语法分析出错,经过分析语法并无问题。
在这里插入图片描述
数据库中配置dm.ini 文件中参数EXCLUDE_RESERVED_WORDS设置了屏蔽关键字limit。
执行语句:select * from v$dm_ini where para_name=‘EXCLUDE_RESERVED_WORDS’;可查看值。
在这里插入图片描述
可修改参数EXCLUDE_RESERVED_WORDS的值,删除limit,
方法一:直接在配置文件dm.ini 内修改
方法二:数据库执行SF_SET_SYSTEM_PARA_VALUE(‘EXCLUDE_RESERVED_WORDS’,’’,1,2);删除全部。
说明:若只需要删除limit,可以执行语句SF_SET_SYSTEM_PARA_VALUE(‘EXCLUDE_RESERVED_WORDS’,‘DOMAIN,verify,reference,offset,TYPE’,1,2);保留其他关键字
方法三:在控制台工具内修改参数值
因为此参数是静态参数,重启数据库服务后生效。

这篇关于达梦数据库常见问题及处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!