在DM7 中,查询数据库版本号的方法和Oracle 一样,通过v$version 视图可以查询。
[dmdba@www.cndba.cn ~]$ disql SYSDBA/SYSDBA@dm1:5236
Server[dm1:5236]:mode is normal, state is open
login used time: 9.988(ms)
disql V7.6.0.145-Build(2019.03.20-104220)ENT
SQL> select * from v$version;
LINEID BANNER
---------- ---------------------------------------------------------------
1 DM Database Server x64 V7.6.0.145-Build(2019.03.20-104220)ENT
2 DB Version: 0x7000a
used time: 7.566(ms). Execute id is 2107.
SQL>
在达梦8中,查看版本号的方法发生了变化,v$version 视图不能显示具体的版本号信息:
[root@www.cndba.cn ~]# su - dmdba
[dmdba@www.cndba.cn ~]$ disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 7.252(毫秒)
disql V8
SQL> select * from v$version;
行号 BANNER
---------- -------------------------
1 DM Database Server 64 V8
2 DB Version: 0x7000a
已用时间: 12.030(毫秒). 执行号:6222.
达梦DM8中,查看具体的版本号(准确说是发布日期)使用的是select id_code;命令,具体如下
SQL> select id_code;
行号 ID_CODE
---------- ---------------------------
1 1-1-48-19.11.29-116408-ENT
已用时间: 6.656(毫秒). 执行号:6223.
SQL>
其实通过对比,DM8里要想查清楚版本号,即达梦的大版本和发布日期需要结合 v$version 和select id_code;命令。
关于DM8 版本号的具体命名规则,目前官方手册并没有明确的说明,我们无法知晓:1-1-48-19.11.29-116408 这串代码的具体含义。 目前只能通过查看大版本和发布日期来确定软件的版本,日期越新,版本越新。 所以从用户角度来看,在这个功能点上看,DM8 对比DM7 是一种退步。
SQL> select id_code;
LINEID ID_CODE
---------- ---------------------------------
1 1-2-84-21.10.21-149328-10032-ENT
used time: 0.779(ms). Execute id is 705.
SQL>
说明:
1-2-84 小版本号,其中最后一位84有偶数和奇数区别,偶数为月度版,奇数为临时版本,临时版禁止随意使用在用户的生产环境中;
21.10.21 版本编译时间,表示2021-10-21;
149328 代码SVN号;
10032 分支代码号;
ENT 版本标识,ENT表示企业版,还有STD标准版,SEC安全版。(其他标识为非通用的定制版)