1,简介
DSC集群滚动升级是指在在不中断数据库服务的情况下,升级数据库。
2,版本说明
2.1 不支持滚动升级的版本
版本号 | 原因 |
---|---|
V8.1.2.70 | MAL链路握手机制调整,解决TCP协议MSL机制导致的垃圾消息问题 |
2.2 查看版本是否支持滚动升级
2021年9月月度版及以后版本新增函数用于获取DSC/数据守护滚动升级版本号,只有版本号一致的两个版本支持滚动升级。版本号不一致的数据库版本升级需要先测试环境测试。
- 方法一(联机):
SQL> SELECT ROLLING_UPDATE_ID;
- 方法二(脱机):
./disql -ru_id
版本说明:
dsc[1]:DSC滚动升级版本号为1
dw1[1]:数据守护滚动升级版本号为1
2.3 查询数据库版本
方法一(联机):
SQL> SELECT ID_CODE;
方法二(脱机):
./disql -id
3,升级准备工作
3.1 准备新版本的数据库
- 创建实例简单测试新版本数据库是否可用:
./dminit path=/home/dmdba/dmdbms_10/data/
3.2 进行数据库全备
- 登录disql进行备份,也可以使用其它方式进行备份。
./disql SYSDBA/SYSDBA@192.168.14.141:5236
Sql>BACKUP DATABASE BACKUPSET '/home/dmdba/dsc_cfg/dsc0_config/db_back' COMPRESSED LEVEL 5 PARALLEL 8;
- 使用dmrman校验备份。
RMAN>CHECK BACKUPSET '/home/dmdba/dsc_cfg/dsc0_config/db_back';
4,升级具体步骤
4.1 退出节点1的 DSC0 服务
- 登录disql
./disql SYSDBA/SYSDBA@192.168.14.141:5236
- 停止节点1的 DSC0 服务。此处可能耗时较久。
Sql>STOP INSTANCE;
- 查看dmcssm:看到下图标注信息表示成功。
4.2 退出节点1的dmasmsvr服务
- 查询节点节点1的dmasmsvr的端口号。
ps -ef|grep dmasmsvr
- 停止dmasmsvr 服务。注意:直接kill pid,不要用kill -9。
kill 4628
- 再次查询确认已关闭
4.3 退出节点1的dmcss
- 查询节点节点1的dmcss的端口号。
ps -ef|grep dmcss
- 停止dmcss 服务。注意:直接kill pid,不要用kill -9。
kill 3605
- 再次查询确认已关闭
4.4 停止dsc集群dmap服务
./DmAPService stop
4.5 升级节点1的数据库版本
将新版本执行程序以及动态库替换掉老版本的执行程序以及动态库(先 mv 移走8月月度版的所有执行码,在将新版本的执行码放到之前老版本的目录。若正常升级成功之后,没有问题,则可以将老版本执行码删除)。
- 备份旧版本的所有执行码。
mv -f dmdbms/ dmdbms_old_8
- 替换新版本的执行码。
cp -rp dmdbms/ /home/dmdba/
4.6 重新启动节点1的所有服务
- 启动dmap服务。
./DmAPService start
- 依次启动 dmcss,dmasmsvr,dmserver【也可以用服务名的方式启动】
./dmcss DCR_INI=/home/dmdba/dsc_config/dmdcr.ini
./dmasmsvr DCR_INI=/home/dmdba/dsc_config/dmdcr.ini
# 待ASM 服务正常加入成功之后,再启动DSC服务
./dmserver /home/dmdba/dsc_cfg/dm.ini dcr_ini=/home/dmdba/dsc_config/dmdcr.ini
- 查看dmcssm控制台:节点正常加入。查看相关状态是否无异常。
4.7 查看节点1数据库版本是否升级成功
- 登录disql查看id_code是否和新版本一致。
./disql SYSDBA/SYSDBA@192.168.14.141:5236
4.8 升级其它节点
1,重复操作节点1升级步骤升级其它节点。
2,使用4.7节的方法,检查所有节点数据库版本是否一致。