上周运维团队共完成4套达梦数据库小版本升级(8.1.3.140升至8.1.3.162)。当要升级的数据库版本与当前最新版的版本相近,比如版本的编译时间相差不大时,可以通过直接替换软件bin目录的方式来完成数据库升级。
二、具体升级步骤

1、升级环境版本确认
升级前版本:8.1.3.140
升级后版本:8.1.3.162
(1)从root用户切换至dmdba用户:
su - dmdba
复制
(2)以SYSDBA的身份连接到达梦数据库
disql SYSDBA
复制
(3)登录数据库查看版本
select * from v$version;
select svr_version,db_version,build_version from v$instance;
复制
2、根据操作系统及CPU架构下载对应的安装包
https://download.dameng.com/product/DM8/%E6%9C%88%E5%BA%A6%E7%89%88/2024.06/dm8_20241028_x86_kylin10_64_ent_8.1.3.162_pack27/dm8_20241028_x86_kylin10_64.iso
https://download.dameng.com/product/DM8/%E6%9C%88%E5%BA%A6%E7%89%88/2024.06/dm8_20241028_x86_kylin10_64_ent_8.1.3.162_pack27/dm8_20241028_x86_kylin10_64_ent_8.1.3.162_pack27_symbols.zip
复制
3、上传升级软件包(放到/root/update_pack)
4、停库前逻辑备份
在root用户下执行,保证有足够操作权限。
(1)在/data下创建dmtmp的目录
mkdir -p data/dmtmp
复制
(2)对/data/dmtmp/目录进行授权
chown -R dmdba:dinstall /data/dmtmp/
复制
(3)创建dimp.txt 参数文件
echo "FILE=db_DAMENG_test.dmp LOG=db_exp_DAMENG_test.log FULL=Y DIRECTORY=/data/dmtmp" > /data/dmtmp/dimp.txt
FILE=db_DAMENG_test.dmp 指定数据库备份文件名称
LOG=db_exp_DAMENG_test.log 指定导出操作的日志文件名称
FULL=Y 指示执行全量导出,即导出数据库中的所有数据。
DIRECTORY=/data/dmtmp 指定导出文件存放的目录。
复制
(4)将dimp.txt文件的所有权更改为用户dmdba和组dinstall
chown dmdba:dinstall /data/dmtmp/dimp.txt
复制
(5)执行dexp命令进行逻辑备份
切换至达梦数据库所安装的目录的bin目录
cd /data/dm8/bin
./dexp USERID=SYSDBA/Test_test@192.168.0.233:5236 parfile=/data/dmtmp/dimp.txt
复制
注:输入自己的SYSDBA密码,并输入自己的服务器IP,Test_test是本次试验环境达梦数据库的SYSDBA的密码,达梦数据库服务器IP为:192.168.0.233
5、停库后备份bin目录
(1)从root用户切换至dmdba用户
su - dmdba
复制
(2)切换至达梦数据库所安装的目录的bin目录下
cd /data/dm8/bin
复制
(3)停库(可以启动数据库后再做一次停库)
./DmServiceDMSERVER stop
复制
(4)可选,调用checkpoint(100)主动刷新检查点后,进行物理全备
cd /data/dm8/bin
./dmrman
backup database '/data/dm8/dm.ini' backupset '/dmdata/bakfull0826';
复制
(5)备份bin目录
mv bin bin_bak_test
复制
6、新版本(8.1.3.162)数据库安装
全部命令以root用户下执行,保证有足够操作权限,或者保证能够用sudo提权亦可。
(1)创建新8.1.3.162安装目录
mkdir -p /data/dmdbms162
复制
(2)对/data/dmdbms162目录进行授权
chown -R dmdba:dinstall /data/dmdbms162
复制
(3)将/data/dmdbms162目录及其所有子目录的权限设置为755
chmod -R 755 /data/dmdbms162
复制
(4)部署新8.1.3.162数据库
切换update_pack目录(此目录是本次升级文件上传目录)
cd /root/update_pack
复制
(5)将dm8_20241028_x86_kylin10_64.iso的ISO文件挂载到/mnt目录
mount dm8_20241028_x86_kylin10_64.iso /mnt
复制
(6)复制挂载点/mnt目录下的DMInstall.bin文件到/home/dmdba目录
cp /mnt/DMInstall.bin /home/dmdba
复制
(7)更改/home/dmdba/DMInstall.bin文件的所有者为用户dmdba和所属组dinstall
chown dmdba:dinstall /home/dmdba/DMInstall.bin
复制
(8)以dmdba用户身份执行,安装数据库
su - dmdba -c '/home/dmdba/DMInstall.bin -i'
复制
(9)安装过程如下
[root@sit-dmdb update_pack]# su - dmdba -c '/home/dmdba/DMInstall.bin -i'
安装语言:
[1]: 简体中文
[2]: English
请选择安装语言 [1]:
解压安装程序..........
硬件架构校验通过!
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯兰堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [21]:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 2432M
请选择安装目录 [/home/dmdba/dmdbms]:/data/dmdbms162
可用空间: 383G
是否确认安装路径(/data/dmdbms162)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /data/dmdbms162
所需空间: 2432M
可用空间: 383G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
配置文件/etc/dm_svc.conf已存在,是否进行替换? (Y/y,N/n) [Y/y]:y
2024-12-06 21:02:16
[INFO] 安装达梦数据库...
2024-12-06 21:02:16
[INFO] 安装 基础 模块...
2024-12-06 21:02:19
[INFO] 安装 服务器 模块...
2024-12-06 21:02:20
[INFO] 安装 客户端 模块...
2024-12-06 21:02:22
[INFO] 安装 驱动 模块...
2024-12-06 21:02:23
[INFO] 安装 手册 模块...
2024-12-06 21:02:23
[INFO] 安装 服务 模块...
2024-12-06 21:02:23
[INFO] 移动日志文件。
2024-12-06 21:02:24
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/data/dmdbms162/script/root/root_installer.sh
复制
(10)安装结束
注意:不要执行/data/dmdbms162/script/root/root_installer.sh
(11)把新8.1.3.162数据库/data/dmdbms162的bin文件拷贝到旧数据库/data/dm8/下。
切换当前用户到dmdba用户
su - dmdba
复制
切换当前工作目录到/data/dm8目录
cd /data/dm8
复制
复制/data/dmdbms162/bin目录及其所有内容到/data/dm8目录下
cp -r /data/dmdbms162/bin /data/dm8/
复制
(12)解决文件至bin目录下
unzip dm8_20241028_x86_kylin10_64_ent_8.1.3.162_pack27_symbols.zip
复制
(13)把备份/data/dm8/bin_test下的DmServiceDMSERVER与dm.key文件拷贝到新的/data/dm8/bin下
cp bin_bak_test/DmServiceDMSERVER bin/
cp bin_bak_test/dm.key bin/
复制
7、启动数据库
(1)切换当前用户到dmdba用户
su - dmdba
复制
(2)切换当前工作目录到/data/dm8/bin目录
cd /data/dm8/bin
复制
(3)启动达梦数据库服务
./DmServiceDMSERVER start
复制
(4)重建视图及系统包
sp_create_system_packages(1);
sp_create_system_views(1);
复制
三、数据库升级后验证
(1)查看数据库状态
select status$ from v$instance;
复制
(2)查询以下表可以看到授权信息,过期时间(expired_date)为空即表示永不过期。
select * from v$license;
复制
(3)查看数据库版本信息
SQL> SELECT * FROM V$VERSION;
行号 BANNER
---------- ---------------------------------
1 DM Database Server 64 V8
2 DB Version: 0x7000c
3 03134284194-20241025-247332-20108
4 Msg Version: 14
5 Gsu level(5) cnt: 0
64 :版本位数标识,64表示为64位版本,无64则表示为32位版本
V8 :数据库的大版本号,当前主流的达梦数据库版本为V8
SQL> SQL> select build_version from v$instance;
行号 build_version
---------- ------------------------------------
1 1-3-162-2024.10.25-247332-20108-ENT
各字段含义:
1-3-162:数据库的小版本号,表示该数据库的版本为8.1.3.162
2024.10.25:代表版本编译时间
247332:代码SVN号
20108:分支代码号
ENT:版本标识,代表该数据库版本为ENT企业版
复制