- 查询数据库字符集大小写敏感等初始化信息
- 用户登录disql报错[-70070]初始化SSL环境失败
- 用户登录数据库时,报错[-2148]提示标记不匹配
- 修改备份作业时,提示锁超时
- mysql迁移DM常见几种报错
- 因关键字屏蔽导致报错[-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);保留其他关键字
方法三:在控制台工具内修改参数值
因为此参数是静态参数,重启数据库服务后生效。