签到成功

知道了

CNDBA社区CNDBA社区

DM 达梦数据库 8.1.1.48 升级到 8.1.1.126 操作步骤

2020-12-01 20:12 827 0 原创 DM 达梦
作者: Dave

在之前的博客,我们测试了DM 8.1.1.19升级到8.1.1.48 的升级,如下:

https://www.cndba.cn/dave/article/4314

DM 达梦数据库 版本升级 说明与测试
https://www.cndba.cn/Dave/article/3904

达梦8中版本号查看说明参考:

DM8 达梦数据库 查看数据库版本号 方法
https://www.cndba.cn/dave/article/4260

达梦数据库 DM8 (8.1.1.126/20200907) 安装文件 下载地址
https://www.cndba.cn/dave/article/4295

我们这里记录下 8.1.1.48 升级到 8.1.1.126 操作步骤,小版本的升级步骤都是一样的,直接替换bin目录。 https://www.cndba.cn/dave/article/4314https://www.cndba.cn/dave/article/4314

查看当前版本:

[dave@www.cndba.cn ~]$ disql SYSDBA/SYSDBA@127.0.0.1:6236

服务器[127.0.0.1:6236]:处于普通打开状态
登录使用时间: 10.808(毫秒)
disql V8
SQL> select id_code;

行号     ID_CODE
---------- ---------------------------
1          1-1-48-19.11.29-116408-ENT

已用时间: 1.025(毫秒). 执行号:79.
SQL> select * from v$version;

行号     BANNER
---------- -------------------------
1          DM Database Server 64 V8
2          DB Version: 0x7000a

已用时间: 17.198(毫秒). 执行号:80.
SQL>

停止所有达梦实例(btw:测试环境,直接暴力了):

[root@www.cndba.cn ~]# ps -ef|grep dm.ini
root      63793   4955  0 16:20 pts/7    00:00:00 grep --color=auto dm.ini
dmdba     83274      1  0 11:39 ?        00:01:02 /dm/dmdbms/bin/dmserver /dm/dmdbms/data/ustc/dm.ini -noconsole
dmdba    116152      1  0 11:46 pts/3    00:01:05 /dm/dmdbms/bin/dmserver /dm/dmdbms/data/ustc2/dm.ini -noconsole
dmdba    125345      1  0 05:24 ?        00:02:14 /dm/dmdbms/bin/dmserver /dm/dmdbms/data/cndba/dm.ini -noconsole
[root@www.cndba.cn ~]# kill -9 83274 116152 125345
[root@www.cndba.cn ~]# ps -ef|grep dm.ini
root      65020   4955  0 16:20 pts/7    00:00:00 grep --color=auto dm.ini
[root@www.cndba.cn ~]#

在上篇升级中我们还单独安装了一份。 这里我们直接用7zip 工具将官网的iso文件中的bin目录解压出来。 我这里直接用MobaXterm 上传了。 https://www.cndba.cn/dave/article/4314

https://www.cndba.cn/dave/article/4314

修改bin 目录权限:https://www.cndba.cn/dave/article/4314https://www.cndba.cn/dave/article/4314

[root@www.cndba.cn dmdbms]# pwd
/dm/dmdbms
[root@www.cndba.cn dmdbms]# ll -ls
12 drwxr-xr-x 8 root  root     8192 12月  1 16:25 bin

[root@www.cndba.cn dmdbms]# chown -R dmdba:dinstall bin
[root@www.cndba.cn dmdbms]# chmod a+x bin -R

[root@www.cndba.cn dmdbms]# ll -ls
12 drwxr-xr-x 8 dmdba dinstall 8192 12月  1 16:25 bin

启动达梦实例,查看版本信息:

[root@www.cndba.cn system]# systemctl start DmServiceDAVE.service
Job for DmServiceDAVE.service failed because the control process exited with error code. See "systemctl status DmServiceDAVE.service" and "journalctl -xe" for details.
[root@www.cndba.cn system]# systemctl status DmServiceDAVE.service
● DmServiceDAVE.service - Dameng Database Service(DmServiceDAVE).
   Loaded: loaded (/usr/lib/systemd/system/DmServiceDAVE.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 二 2020-12-01 16:34:16 CST; 11s ago
  Process: 64906 ExecStop=/dm/dmdbms/bin/DmServiceDAVE stop (code=exited, status=0/SUCCESS)
  Process: 124486 ExecStart=/dm/dmdbms/bin/DmServiceDAVE start (code=exited, status=203/EXEC)
 Main PID: 125345 (code=killed, signal=KILL)

12月 01 16:34:16 study systemd[1]: Starting Dameng Database Service(DmServiceDAVE)....
12月 01 16:34:16 study systemd[124486]: Failed at step EXEC spawning /dm/dmdbms/bin/DmServiceDAVE: No such file or directory
12月 01 16:34:16 study systemd[1]: DmServiceDAVE.service: control process exited, code=exited status=203
12月 01 16:34:16 study systemd[1]: Failed to start Dameng Database Service(DmServiceDAVE)..
12月 01 16:34:16 study systemd[1]: Unit DmServiceDAVE.service entered failed state.
12月 01 16:34:16 study systemd[1]: DmServiceDAVE.service failed.
[root@www.cndba.cn system]#

这里启动报错,提示bin 目录下没有DmServiceDAVE 文件。 这里可以直接注册个服务,也可以从备份的bin目录中复制过来。

https://www.cndba.cn/dave/article/4314

达梦数据库 DM8 中 注册服务 说明
https://www.cndba.cn/dave/article/3753

我这直接复制过来启动还是一样的错误,尝试手工重新注册下:

[root@www.cndba.cn bin.bak]# cd /dm/dmdbms/script/root/
[root@www.cndba.cn root]# ls
dm_service_installer.sh  dm_service_uninstaller.sh  root_installer.sh
[root@www.cndba.cn root]#
[root@www.cndba.cn root]#


[root@www.cndba.cn root]# ./dm_service_installer.sh -t dmserver -p dave -dm_ini /dm/dmdbms/data/cndba/dm.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedave.service to /usr/lib/systemd/system/DmServicedave.service.
创建服务(DmServicedave)完成
[root@www.cndba.cn root]# systemctl start DmServicedave.service
Job for DmServicedave.service failed because the control process exited with error code. See "systemctl status DmServicedave.service" and "journalctl -xe" for details.
[root@www.cndba.cn root]# systemctl status DmServicedave.service
● DmServicedave.service - Dameng Database Service(DmServicedave).
   Loaded: loaded (/usr/lib/systemd/system/DmServicedave.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 二 2020-12-01 16:49:36 CST; 11s ago
  Process: 62920 ExecStart=/dm/dmdbms/bin/DmServicedave start (code=exited, status=1/FAILURE)

12月 01 16:49:36 study systemd[1]: Starting Dameng Database Service(DmServicedave)....
12月 01 16:49:36 study DmServicedave[62920]: mkdir: 无法创建目录"_REPLACE_SELF_DM_HOME": 权限不够
12月 01 16:49:36 study DmServicedave[62920]: chown: 无法访问"_REPLACE_SELF_DM_HOME/log": 没有那个文件或目录
12月 01 16:49:36 study DmServicedave[62920]: mkdir: 无法创建目录"_REPLACE_SELF_DM_HOME": 权限不够
12月 01 16:49:36 study DmServicedave[62920]: chown: 无法访问"_REPLACE_SELF_DM_HOME/bin/pids": 没有那个文件或目录
12月 01 16:49:36 study DmServicedave[62920]: please change  or root to execute the service script, otherwise may be failed !
12月 01 16:49:36 study systemd[1]: DmServicedave.service: control process exited, code=exited status=1
12月 01 16:49:36 study systemd[1]: Failed to start Dameng Database Service(DmServicedave)..
12月 01 16:49:36 study systemd[1]: Unit DmServicedave.service entered failed state.
12月 01 16:49:36 study systemd[1]: DmServicedave.service failed.
[root@www.cndba.cn root]#

这里提示权限问题,实际上我们已经用root用户执行的这个脚本。

这里手工启动数据库:

https://www.cndba.cn/dave/article/4314

[dave@www.cndba.cn dmdbms]$ dmserver /dm/dmdbms/data/cndba/dm.ini
file dm.key not found, use default license!
version info: develop
Upgrade is not allowed, please startup with origin dmserver(sys_version:V7.1.7.48, db_version:0x7000A) and shutdown normal, then try again!
[dave@www.cndba.cn dmdbms]$

这里的提示就很清楚了,数据库升级必须通过正常的关闭,才能升级。 所以我们这里先恢复旧版本,正常启动并关闭后在升级。

此时手工启动已经没有问题,我们验证下版本:https://www.cndba.cn/dave/article/4314

[dave@www.cndba.cn dmdbms]$ dmserver /dm/dmdbms/data/cndba/dm.ini
file dm.key not found, use default license!
version info: develop
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V8 1-1-126-20.09.04-126608-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2021-09-04
file lsn: 80564
ndct db load finished
ndct fill fast pool finished
iid page's trxid[13025]
NEXT TRX ID = 13026
pseg recv finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
nsvr_process_before_open begin.
nsvr_process_before_open success.
total 0 active crash trx, pseg_crash_trx_rollback sys_only(0) begin ...
pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.
pseg_crash_trx_rollback end
SYSTEM IS READY.


[dave@www.cndba.cn ~]$ disql SYSDBA/SYSDBA@127.0.0.1:6236

服务器[127.0.0.1:6236]:处于普通打开状态
登录使用时间 : 2.136(ms)
disql V8
SQL>  select id_code;

行号     ID_CODE
---------- ----------------------------
1          1-1-126-20.09.04-126608-ENT

已用时间: 1.271(毫秒). 执行号:43.
SQL>
SQL> select * from v$version;

行号     BANNER
---------- -------------------------
1          DM Database Server 64 V8
2          DB Version: 0x7000b

已用时间: 1.009(毫秒). 执行号:44.
SQL>

版本升级成功。 但是服务这块还是有问题:

[root@www.cndba.cn dmdbms]# cd script/root/
[root@www.cndba.cn root]#  ./dm_service_installer.sh -t dmserver -p dave -dm_ini /dm/dmdbms/data/cndba/dm.ini
创建服务(DmServicedave)完成
[root@www.cndba.cn root]# systemctl start DmServicedave
Job for DmServicedave.service failed because the control process exited with error code. See "systemctl status DmServicedave.service" and "journalctl -xe" for details.
[root@www.cndba.cn root]# systemctl status DmServicedave
● DmServicedave.service - Dameng Database Service(DmServicedave).
   Loaded: loaded (/usr/lib/systemd/system/DmServicedave.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 二 2020-12-01 17:31:44 CST; 5s ago
  Process: 116807 ExecStart=/dm/dmdbms/bin/DmServicedave start (code=exited, status=1/FAILURE)

12月 01 17:31:44 study systemd[1]: Starting Dameng Database Service(DmServicedave)....
12月 01 17:31:44 study DmServicedave[116807]: mkdir: 无法创建目录"_REPLACE_SELF_DM_HOME": 权限不够
12月 01 17:31:44 study DmServicedave[116807]: chown: 无法访问"_REPLACE_SELF_DM_HOME/log": 没有那个文件或目录
12月 01 17:31:44 study DmServicedave[116807]: mkdir: 无法创建目录"_REPLACE_SELF_DM_HOME": 权限不够
12月 01 17:31:44 study DmServicedave[116807]: chown: 无法访问"_REPLACE_SELF_DM_HOME/bin/pids": 没有那个文件或目录
12月 01 17:31:44 study DmServicedave[116807]: please change  or root to execute the service script, otherwise may be failed !
12月 01 17:31:44 study systemd[1]: DmServicedave.service: control process exited, code=exited status=1
12月 01 17:31:44 study systemd[1]: Failed to start Dameng Database Service(DmServicedave)..
12月 01 17:31:44 study systemd[1]: Unit DmServicedave.service entered failed state.
12月 01 17:31:44 study systemd[1]: DmServicedave.service failed.
[root@www.cndba.cn root]# ls
dm_service_installer.sh  dm_service_uninstaller.sh  _REPLACE_SELF_DM_HOME  root_installer.sh
[root@www.cndba.cn root]#

该错误的处理过程参考如下博客:

DM 达梦数据库 创建服务 无法创建目录”_REPLACE_SELF_DM_HOME” 错误解决方法
https://www.cndba.cn/dave/article/4313

[root@www.cndba.cn root]# /dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmServicedave
是否删除服务(DmServicedm)?(Y/y:是 N/n:否): y
未发现服务文件(/usr/lib/systemd/system/DmServicedm.service或/etc/systemd/system/DmServicedm.service)!

[root@www.cndba.cn root]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -p dave -dm_ini /dm/dmdbms/data/cndba/dm.ini
创建服务(DmServicedave)完成

[root@www.cndba.cn root]# systemctl start DmServicedave.service
Job for DmServicedave.service failed because the control process exited with error code. See "systemctl status DmServicedave.service" and "journalctl -xe" for details.

[root@www.cndba.cn root]# systemctl status DmServicedave.service
● DmServicedave.service - Dameng Database Service(DmServicedave).
   Loaded: loaded (/usr/lib/systemd/system/DmServicedave.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 二 2020-12-01 19:01:47 CST; 4s ago
  Process: 129728 ExecStart=/dm/dmdbms/bin/DmServicedave start (code=exited, status=1/FAILURE)

12月 01 19:01:47 study systemd[1]: Starting Dameng Database Service(DmServicedave)....
12月 01 19:01:47 study DmServicedave[129728]: please change  or root to execute the service script, otherwise may be failed !
12月 01 19:01:47 study systemd[1]: DmServicedave.service: control process exited, code=exited status=1
12月 01 19:01:47 study systemd[1]: Failed to start Dameng Database Service(DmServicedave)..
12月 01 19:01:47 study systemd[1]: Unit DmServicedave.service entered failed state.
12月 01 19:01:47 study systemd[1]: DmServicedave.service failed.
[root@www.cndba.cn root]# systemctl start DmServicedave.service
[root@www.cndba.cn root]# systemctl status DmServicedave.service
● DmServicedave.service - Dameng Database Service(DmServicedave).
   Loaded: loaded (/usr/lib/systemd/system/DmServicedave.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2020-12-01 19:09:03 CST; 5s ago
  Process: 27923 ExecStop=/dm/dmdbms/bin/DmServicedave stop (code=exited, status=0/SUCCESS)
  Process: 31658 ExecStart=/dm/dmdbms/bin/DmServicedave start (code=exited, status=0/SUCCESS)
 Main PID: 31683 (dmserver)
    Tasks: 25
   CGroup: /system.slice/DmServicedave.service
           └─31683 /dm/dmdbms/bin/dmserver /dm/dmdbms/data/cndba/dm.ini -noconsole

12月 01 19:08:48 study systemd[1]: Starting Dameng Database Service(DmServicedave)....
12月 01 19:09:03 study DmServicedave[31658]: [35B blob data]
12月 01 19:09:03 study systemd[1]: Started Dameng Database Service(DmServicedave)..
[root@www.cndba.cn root]#

实际上,这里还有个小细节,就是在同一台机器上安装两次会影响到DM_HOME变量,所以在创建服务后如果无法启动,记得修改服务文本里的变量。

[root@www.cndba.cn bin]# pwd
/dm/dmdbms/bin

[root@www.cndba.cn bin]# more DmServicedave
#!/bin/sh
#
#
# This shell script takes care of starting and stopping
# the Dameng DmServiceXXX.
#
# chkconfig: 2345 98 2
# description: Dameng Database Service.
# service name: DmServiceXXX
# pidfile: $DM_BIN_DIR/pids/$CUR_SERVICE_NAME.pid
# version: V8.0.0.0

### BEGIN INIT INFO
# Provides: DmServicedave
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop database service
### END INIT INFO

DM_HOME="/dm/dmdbms"
INI_PATH="/dm/dmdbms/data/cndba/dm.ini"
DCR_INI_PATH=%DCR_INI_PATH%
……

小结:

  1. 升级数据库之前必须正常关闭实例,否则无法升级。
  2. 替换的bin目录,需要注意权限问题,否则会导致服务无法正常使用,虽然手工通过dmserver启动实例没有影响。
  3. 如果是通过静默安装来解压新iso文件,要注意环境变量的问题,因为新的bin会使用新的DM_HOME。 需要检查服务文件,如有必要进行对应修改。

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Dave

Dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 1904
    原创
  • 2
    翻译
  • 460
    转载
  • 134
    评论
  • 访问:3753384次
  • 积分:3147
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by ZhiXinTech · 皖ICP备19020168号·

        QQ交流群