达梦数据库DM8版本升级手册-单机
本文于 69 天前发布,最后更新于 67 天前

本升级手册仅适用于小版本间升级使用,升级前必须在测试环境测试成功再应用到生产环境。

此文档仅针对单机数据库版本升级所整理,如有集群版本升级请看文档:

一、前言

达梦数据库处在更新迭代阶段,会不断地改进不足并新增功能,很多使用者就需要从旧版本升级到新版本,那么可以根据本文章进行升级操作。

二、升级步骤

2.1 在测试环境打升级包(bin.tar.gz)

2.1.1 将原测试环境所有达梦服务停掉

[dmdba@localhost ~]$ ps -ef | grep dmdba
dmdba      12246       1  0 10:15 ?        00:00:00 /dmdbms/bin/dmap
dmdba      12604       1  2 10:16 ?        00:00:06 /dmdbms/bin/dmserver /dmdata/5236/DMDB/dm.ini -noconsole
root       12915    2692  0 10:16 pts/0    00:00:00 su - dmdba
dmdba      12920   12915  0 10:16 pts/0    00:00:00 -bash
dmdba      13066   12920  0 10:20 pts/0    00:00:00 ps -ef
dmdba      13067   12920  0 10:20 pts/0    00:00:00 grep dmdba
[dmdba@localhost ~]$ DmServiceDMSERVER stop
Stopping DmServiceDMSERVER:                                [ OK ]
[dmdba@localhost ~]$ DmAPService stop
Stopping DmAPService:                                      [ OK ]

2.1.2 备份数据库安装目录dmdbms,再重新创建空的dmdbms

[root@localhost ~]# mv /dmdbms/ /dmdbms_bak
[root@localhost ~]# mkdir -p /dmdbms
# 由于我的 dmdbms 在根目录 /,所以需要使用root用户mv,再进行修改属主和赋权
[root@localhost ~]# chown -R dmdba:dinstall /dmdbms
[root@localhost ~]# chmod -R 777 /dmdbms

2.1.3 安装新版达梦

注意:如果/etc/dm_svc.conf文件已编辑,可选择不替换,以免覆盖掉之前的配置

(1)挂载新版8.1.3.26镜像

[root@localhost ~]# mount -o loop dm8_20240301_x86_kylin10_64_ent_8.1.3.26_pack26.iso /mnt/
mount: /mnt: WARNING: source write-protected, mounted read-only.

(2)安装(切换dmdba用户),安装过程如下

[dmdba@localhost mnt]$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]: 
解压安装程序......... 
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:N

是否设置时区? (Y/y:是 N/n:否) [Y/y]:
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1792M

请选择安装目录 [/home/dmdba/dmdbms]:/dmdbms
可用空间: 22G
是否确认安装路径(/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:Y

安装前小结
安装位置: /dmdbms
所需空间: 1792M
可用空间: 22G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):Y

配置文件/etc/dm_svc.conf已存在,是否进行替换? (Y/y,N/n) [Y/y]:N
2025-02-17 10:31:33 
[INFO] 安装达梦数据库...
2025-02-17 10:31:33 
[INFO] 安装 基础 模块...
2025-02-17 10:31:37 
[INFO] 安装 服务器 模块...
2025-02-17 10:31:37 
[INFO] 安装 客户端 模块...
2025-02-17 10:31:40 
[INFO] 安装 驱动 模块...
2025-02-17 10:31:43 
[INFO] 安装 手册 模块...
2025-02-17 10:31:43 
[INFO] 安装 服务 模块...
2025-02-17 10:31:44 
[INFO] 移动日志文件。
2025-02-17 10:31:46 
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/dmdbms/script/root/root_installer.sh

安装结束

(3)退出dmdba用户,根据提示,用root用户执行命令

[dmdba@localhost mnt]$ 注销
[root@localhost ~]# /dmdbms/script/root/root_installer.sh
创建DmAPService服务
创建服务(DmAPService)完成
启动DmAPService服务

2.1.4 将bin目录打包

[root@localhost ~]# su - dmdba
上一次登录: 一 2月 17 10:29:41 CST 2025 pts/0 上
[dmdba@localhost ~]$ cd /dmdbms
[dmdba@localhost dmdbms]$ ll
总用量 36
drwxr-xr-x  9 dmdba dinstall 8192  2月 17 10:33 bin
drwxr-xr-x  2 dmdba dinstall   30  2月 17 10:31 bin2
drwxr-xr-x  3 dmdba dinstall   19  2月 17 10:31 desktop
drwxr-xr-x  2 dmdba dinstall 4096  2月 17 10:31 doc
drwxr-xr-x 14 dmdba dinstall  160  2月 17 10:31 drivers
drwxr-xr-x  2 dmdba dinstall 4096  2月 17 10:31 include
drwxr-xr-x  2 dmdba dinstall   94  2月 17 10:31 jar
drwxr-xr-x  7 dmdba dinstall  161  2月 17 10:31 jdk
-rwxr-xr-x  1 dmdba dinstall 1071  2月 17 10:31 license_en.txt
-rwxr-xr-x  1 dmdba dinstall 1146  2月 17 10:31 license_zh.txt
drwxr-xr-x  2 dmdba dinstall  117  2月 17 10:33 log
drwxr-xr-x  6 dmdba dinstall   92  2月 17 10:31 samples
drwxr-xr-x  3 dmdba dinstall   37  2月 17 10:31 script
drwxr-xr-x  8 dmdba dinstall 4096  2月 17 10:31 tool
drwxr-xr-x  3 dmdba dinstall   97  2月 17 10:31 uninstall
-rwxr-xr-x  1 dmdba dinstall 2208  2月 17 10:31 uninstall.sh
[dmdba@localhost dmdbms]$ tar -zcvf bin.tar.gz bin/
打包过程略
……
[dmdba@localhost dmdbms]$ ll *.tar.gz
-rw-r--r-- 1 dmdba dinstall 118942414  2月 17 10:36 bin.tar.gz

2.1.5 打包完成将bin.tar.gz取出,将测试环境恢复原样

(1)停新版的AP服务

[dmdba@localhost ~]$ DmAPService stop
Stopping DmAPService:                                      [ OK ]

(2)将数据库安装目录恢复原样

[root@localhost ~]# mv /dmdbms /dmdbms_new_bak
[root@localhost ~]# mv /dmdbms_bak/ /dmdbms

(3)重新启动数据库服务

[dmdba@localhost ~]$ DmAPService start
Starting DmAPService:                                      [ OK ]
[dmdba@localhost ~]$ DmServiceDMSERVER start
Starting DmServiceDMSERVER:                                [ OK ]

2.2 在生产环境进行升级

2.2.1 查看当前版本

[dmdba@dmdb ~]$ disql / as sysdba
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 72.042(ms)
SQL> select id_code(); 

行号     ID_CODE()                               
---------- ----------------------------------------
1          1-2-18-21.11.11-150669-10013-ENT  Pack16

已用时间: 5.919(毫秒). 执行号:300.
SQL> 

2.2.2 上传升级包到数据库目录

[root@dmdb ~]# su - dmdba
上一次登录: 一 2月 17 11:03:37 CST 2025 pts/0 上
[dmdba@dmdb ~]$ cd /dmdbms
[dmdba@dmdb dmdbms]$ ll
总用量 116192
drwxr-xr-x  8 dmdba dinstall      8192  2月 17 10:16 bin
drwxr-xr-x  2 dmdba dinstall        30  2月 17 10:15 bin2
-rw-r--r--  1 dmdba dinstall 118942414  2月 17 10:36 bin.tar.gz
drwxr-xr-x  3 dmdba dinstall        19  2月 17 10:15 desktop
drwxr-xr-x  2 dmdba dinstall      4096  2月 17 10:15 doc
drwxr-xr-x 12 dmdba dinstall       131  2月 17 10:15 drivers
drwxr-xr-x  2 dmdba dinstall      4096  2月 17 10:15 include
drwxr-xr-x  2 dmdba dinstall        94  2月 17 10:15 jar
drwxr-xr-x  7 dmdba dinstall        68  2月 17 10:15 jdk
-rwxr-xr-x  1 dmdba dinstall      1071  2月 17 10:15 license_en.txt
-rwxr-xr-x  1 dmdba dinstall      1146  2月 17 10:15 license_zh.txt
drwxr-xr-x  2 dmdba dinstall       205  2月 17 10:16 log
drwxr-xr-x  5 dmdba dinstall        74  2月 17 10:15 samples
drwxr-xr-x  3 dmdba dinstall        37  2月 17 10:15 script
drwxr-xr-x  9 dmdba dinstall      4096  2月 17 10:15 tool
drwxr-xr-x  3 dmdba dinstall        97  2月 17 10:15 uninstall
-rwxr-xr-x  1 dmdba dinstall      2146  2月 17 10:15 uninstall.sh
drwxr-xr-x  2 dmdba dinstall        92  2月 17 10:15 web

2.2.3 停应用,然后联机备份数据库

[dmdba@dmdb ~]$ disql / as sysdba
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 40.465(ms)
SQL> BACKUP DATABASE BACKUPSET '/dmdata/BACKUP_FILE_20250217';
操作已执行
已用时间: 00:00:01.210. 执行号:500.
SQL> exit;
[dmdba@dmdb ~]$ ll /dmdata/BACKUP_FILE_20250217/
总用量 17700
-rw-r--r-- 1 dmdba dinstall   203776  2月 17 11:09 BACKUP_FILE_20250217_1.bak
-rw-r--r-- 1 dmdba dinstall 17832448  2月 17 11:09 BACKUP_FILE_20250217.bak
-rw-r--r-- 1 dmdba dinstall    82432  2月 17 11:09 BACKUP_FILE_20250217.meta

2.2.4 关闭数据库服务

[dmdba@dmdb ~]$ DmServiceDMSERVER stop
Stopping DmServiceDMSERVER:                                [ OK ]
[dmdba@dmdb ~]$ DmAPService stop
Stopping DmAPService:                                      [ OK ]

2.2.5 数据文件目录进行物理备份

[dmdba@dmdb ~]$ cp -r /dmdata/5236/DMDB/ /dmdata/5236/DMDB_BAK

2.2.6 备份bin目录

[dmdba@dmdb ~]$ cd /dmdbms
[dmdba@dmdb dmdbms]$ mv bin bin_old

2.2.7 解压上传的升级bin包,注意目录权限

[dmdba@dmdb dmdbms]$ tar -zxf bin.tar.gz

2.2.8 将原bin目录中的服务名拷贝到新目录

[dmdba@dmdb dmdbms]$ cp ./bin_old/DmServiceDMSERVER ./bin

2.2.9 将原bin目录中的license(dm.key)文件拷贝到新目录

[dmdba@dmdb dmdbms]$ cp ./bin_old/dm.key ./bin

2.2.10 启动数据库服务

[dmdba@dmdb bin]$ ./DmAPService start
Starting DmAPService:                                      [ OK ]
[dmdba@dmdb bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER:                                [ OK ]

三、验证

[dmdba@dmdb bin]$ disql / as sysdba
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 70.497(ms)
SQL> select id_code();

行号     ID_CODE()                                 
---------- ------------------------------------------
1          --03134284058-20240205-217834-20046 Pack26

已用时间: 2.300(毫秒). 执行号:18500.
SQL> select build_version from v$instance;

行号     BUILD_VERSION                      
---------- -----------------------------------
1          1-3-26-2024.02.05-217834-20046-ENT 

已用时间: 1.363(毫秒). 执行号:18502.
SQL> 

已经成功从8.1.2.18版本升级到8.1.3.26版本。

四、收尾工作

4.1 重建系统包和自建存储过程包

升级版本后需要重建系统包和自建的存储过程包,才能保证原服务的正常运行。

[dmdba@dmdb bin]$ disql / as sysdba
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 70.497(ms)
SQL> SP_CREATE_SYSTEM_PACKAGES(1);
SQL> SP_CREATE_SYSTEM_VIEWS(1);

另外,自建的存储过程包也需要重建。

4.2 重建函数索引

通过如下SQL查询,如果结果集有内容,则说明查询到的函数索引需要重建

select * from all_ind_columns where column_position = -1;
重建索引SQL:
ALTER INDEX SCHNAME.INDNAME REBUILD;

注:另外也可以使用DM管理工具查看函数索引,将灰色的函数索引右键——重建即可。

4.3 归档文件扩展名是否为‘null’

如没有则忽略此条,如果的确出现了扩展名变成了null的情况则需要修改归档配置参数LOG_FILE_POSTFIX_NAME=log。(归档日志文件扩展名)

4.4 更新应用驱动

建议升级后替换应用驱动,否则可能报网络通信异常。

【dmdba用户】
应用JDBC驱动jar包需要更新至8.1.3.26版本数据库对应的驱动jar包,【数据库JDBC驱动目录,/home/dmdba/dmdbms/drivers/jdbc】,将以下jar包拷贝到应用服务器驱动jar目录进行替换。如下命令可用与查看驱动版本。

[dmdba@dm ~]$ java -jar /home/dmdba/dmdbms/drivers/jdbc/DmJdbcDriver18.jar 
Dameng JDBC Driver V8.1.3.26-Build(2023.06.30-18027-)

说明:
1.DmJdbcDriver16 对应 Jdk1.6 及以上环境
2.DmJdbcDriver17 对应 Jdk1.7 及以上环境
3.DmJdbcDriver18 对应 Jdk1.8 及以上环境

另外,如果使用Hibernate框架,也需要更新对应的方言包。

【dmdba用户】
从新版本数据库【Hibernate方言包目录示例,/home/dmdba/dmdbms/drivers/jdbc/dialect】目录选取对应版本的方言包在应用中替换相关方言包。

4.5 注意事项

若升级的版本为8.1.3.26及以后的版本,数据库升级后需注意慢SQL,因8.1.3.26版本后CBO做了调整。

五、回退方案

5.1 概述

由于会对原环境数据和软件进行保留,因此当出现异常情况下,进行还原操作即可完成回退。

5.2 回退触发条件

  • 环境升级后,数据库服务异常,短时间内无法解决。
  • 达梦数据库提供服务后,无法承担系统并发压力,造成业务缓慢。
  • 达梦数据库提供服务后,整体环境异常,无法继续提供服务。

5.3 操作步骤

5.3.1 操作流程

  1. 停止数据库服务
  2. 将原备份的bin恢复,并启动数据库
  3. 回退应用驱动版本
  4. 验证应用服务,查看系统状态

5.3.2 回退成功验证

修复完成后,应用厂商对数据和功能进行验证,所有验证通过后,证明回退成功。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇