
1 概述
在达梦数据库进行授权替换操作时,必须注意安全版与企业版之间的区别。两种版本不能互换使用,否则可能导致授权失效或数据库服务无法正常启动。
如果安全版在安装时没有放授权文件时,系统会默认为企业版状态。如果在这种情况下替换安全版授权文件,是停机状态替换后启动会提示授权不匹配,在线替换后重启服务也会报相同问题。同样企业版使用安全版授权后问题相同。
另外,单机版本的授权文件无法直接替换到集群环境中,否则导致集群环境出现异常。因此,在进行替换操作之前,请务必了解当前环境的具体类型,并使用正确的授权文件进行替换,以确保系统的稳定性和安全性,避免导致生产事故的发生。
版本区别介绍参考连接 https://eco.dameng.com/document/dm/zh-cn/start/dm-version-differences.html
2 替换授权流程
❝注意:安全版方法参考
2.1
方法替换,通用在线替换方法参考按2.2
方法。
2.1Docker
替换授权过程
2.1.1 进入到docker
容器
[root@rgy-node01 data]# docker exec -it de3ad7727436 bin/bash
2.1.2 查看数据文件存放目录
root@de3ad7727436:/# ps -ef|grep dmdb
root 36 1 0 23:35 ? 00:00:00 opt/dmdbms/bin/dmap
root 51 8 2 23:35 ? 00:00:08 ./dmserver opt/dmdbms/data/DAMENG/dm.ini -noconsole
root 158 8 0 23:35 ? 00:00:00 tail -F opt/dmdbms/log/dm_DMSERVER.log
root 170 159 0 23:41 pts/0 00:00:00 grep --color=auto dmdb
root@de3ad7727436:/#
2.1.3 默认授权类型如下
SQL> select LIC_VERSION,SERIES_NO,EXPIRED_DATE,AUTHORIZED_CUSTOMER,CLUSTER_TYPE from v$license;
LINEID LIC_VERSION SERIES_NO EXPIRED_DATE AUTHORIZED_CUSTOMER CLUSTER_TYPE
---------- ----------- --------- ------------ ------------------- ------------
1 3.00 dm66n367 2024-04-17 DEVELOP USER 1111
used time: 1.229(ms). Execute id is 59402.
SQL>
2.1.4 将授权文件拷贝到 docker 里
[root@rgy-node01 soft]# docker cp data/soft/dm1C01091259.key de3ad7727436:/opt/dmdbms/bin
Successfully copied 2.56kB to de3ad7727436:/opt/dmdbms/bin
[root@rgy-node01 soft]#
root@de3ad7727436:/opt/dmdbms/bin# ls -l dm1C01091259.key
-rw-r--r-- 1 root root 648 Sep 17 23:43 dm1C01091259.key
root@de3ad7727436:/opt/dmdbms/bin#
2.1.5 修改授权文件命名为dm.key
root@de3ad7727436:/opt/dmdbms/bin# mv dm1C01091259.key dm.key
2.1.6 停止数据服务
root@de3ad7727436:/opt/dmdbms/bin# ./disql SYSDBA/SYSDBA001
Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 3.235(ms)
disql V8
SQL> shutdown immediate;
executed successfully
used time: 0.588(ms). Execute id is 0.
SQL> exit
2.1.7 使用 upd_lic 更新安全版特性
使用./dmserver help
查看帮助
root@de3ad7727436:/opt/dmdbms/bin# ./dmserver help
format: ./dmserver [[path=]ini_file_path][dcr_ini=dcr_path][-noconsole][mount][dpc_mode=mode][upd_lic=value]
example:
./dmserver path=/opt/dmdbms/bin/dm.ini
./dmserver opt/dmdbms/bin/dm.ini
Keyword Explanation
--------------------------------------------------------------------------------
path the absolute path of dm.ini or the current directory
dcr_ini the absolute path of dmdcr.ini or the current directory
-noconsole startin service mode
mount startinmountstatus
dpc_mode specify instancerolein DPC cluster(default0) 0: None1: MP 2: BP 3: SP 4: BS, value MP/BP/SP/BS also works
upd_lic upgrade license security info(default0) 0: No1:Yes
help print help information
root@de3ad7727436:/opt/dmdbms/bin#
如图示例:
执行./dmserver opt/dmdbms/data/DAMENG/dm.ini upd_lic=1
命令前台启动数据库, 如下图所示

2.1.8 重启docker容器
docker stop dmsingle
docker start dmsingle
# 进入到 docker 容器,验证授权更新信息
docker exec -it de3ad7727436 bin/bash
2.1.9 验证授权替换信息

2.2 通用版在线替换过程
数据库不停机替换步骤如下,以数据库软件安装在/home/dmdba/dmdbms
目录为例
2.2.1 上传授权文件
授权文件是dm.key
并上传到了/home/dmdba
目录为例说明
su - dmdba
cd home/dmdba/dmdbms/bin
cp home/dmdba/dm.key .
su - dmdba
cd home/dmdba/dmdbms/bin
cp home/dmdba/dm.key .
需要注意修改dm.key
的权限。如果之前的旧授权也在,可以先移走或者删除。
chown -R dmdba:dinstall dm.key
2.2.2 更新授权
登录数据库执行以下命令:
call sp_load_lic_info();
2.2.3 验证授权替换信息
数据库执行SQL查询授权信息
SELECT LIC_VERSION,SERIES_NO,EXPIRED_DATE,AUTHORIZED_CUSTOMER,CLUSTER_TYPE FROM v$license;
2.3 数据库已停机替换过程
2.3.1 上传授权文件
找到达梦数据库的$DM_HOME/bin
目录(安装目录bin
文件夹)重命名旧key
文件, 将新key
更改为dm.key
拷贝到$DM_HOME/bin
目录(安装目录bin
文件夹)。
修改dm.key
文件权限为dmdba
用户。如果之前的旧授权也在,可以先移走或者删除。
chown -R dmdba:dinstall dm.key
2.3.2 重启数据库服务
参考以下,具体以实际为准
DmServicedmdb start
2.3.3 验证授权替换信息
数据库执行SQL查询授权信息
SELECT LIC_VERSION,SERIES_NO,EXPIRED_DATE,AUTHORIZED_CUSTOMER,CLUSTER_TYPE FROM v$license;
4 常见问题
4.1 提示授权不匹配
使用场景安装包带SEC
时,放安全版授权后报提示授权不匹配按以下方式处理。

使用以下命令更新为安全版本即可,如图所示./dmserver /opt/dmdbms/data/DAMENG/dm.ini upd_lic=1
最后正常使用服务脚本启动即可。
4.2 容器里面中文乱码解决
上图在容器中中文乱码,原因是没配置环境变量导致
vi ~/.bash_profile
export LANG=zh_CN.UTF8
export DM_HOME=/opt/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
配置完成后,查询中文正常无需进入到bin目录登录


安装部署
1.分享一个以前搭建主备集群遇到的一个路径乱码案例
2.给大家分享如何标准化部署达梦单机环境
3.DM 达梦数据库中大写敏感介绍分享
4.达梦 DSC 集群+DW 备库部署实战:高可用架构搭建指南
数据迁移
1.分享工作中数据迁移的实用技巧与方法
2.Oracle 迁移 DM 数据库实践
3.SQLark 迁移实践分享(oracle-达梦数据库)
4.年过完了,SQLark 3.3 发版了!连接分组,断点续迁,顺滑建表,数据筛选,导出结构这些都有!)
工具使用与日常处理
1.DataGrip 访问国产数据库_datagrip 连接国产数据库
2.如何使用 dbeaver 连接达梦数据库
3.更新大字段提示-2201 无效的对象问题
4.DM7 读写分离部署问题总结
5.DM7 读写分离集群备库数据不同步问题处理
6.达梦数据库 DISQL 工具部署及使用技巧
7.达梦数据库日常巡检方法分享
8.如何查询达梦数据库缓存执行计划与清理
9.达梦数据库运维工具分享
10.东方通中间件环境中如何部署达梦企业管理工具(DEM)
11.达梦 dmdbchk 使用秘籍:掌握 DM 数据库检查工具的功能与参数
12.ET 工具快速上手:从入门到精通的使用步骤
13.达梦数据库 SQL 日志详解:关键概念、功能及实践方法
14.搞懂达梦数据库 SQL 日志使用延伸,这些方法超实用!
15.DM 数据库守护集群入门指南:带你走进数据守护的世界
16.创建表时为何会提示“[-2670]:对象[ID]默认约束表达式无效”?
SQL 调优
1.DM 传统行业 SQL 优化案例分享
2.DM 数据库 SQL 优化案例分享
3.如何查询 DM 数据库缓存执行计划与清理
4.使用 ob_tools 包收集分析 oceanbase 数据库 oracle 租户缓慢 sql 语句
5.使用 format_obproxy_digest_log 工具分析 obproxy 网络层耗时 SQL
6.DM 数据库回表优化案例
7.SQL 优化案例分享
8.DM SQL 关联列 like 优化案例
9.达梦数据库 SQL 关联列 like 使用 hint 方式优化案例




