1,简介

DSC集群滚动升级是指在在不中断数据库服务的情况下,升级数据库。

2,版本说明

2.1 不支持滚动升级的版本

版本号

原因

V8.1.2.70

MAL链路握手机制调整,解决TCP协议MSL机制导致的垃圾消息问题

2.2 查看版本是否支持滚动升级

2021年9月月度版及以后版本新增函数用于获取DSC/数据守护滚动升级版本号,只有版本号一致的两个版本支持滚动升级。版本号不一致的数据库版本升级需要先测试环境测试。

  • 方法一(联机):
SQL> SELECT ROLLING_UPDATE_ID;

设置容器滚动更新 什么是滚动升级_css

  • 方法二(脱机):
./disql -ru_id

设置容器滚动更新 什么是滚动升级_数据库_02


版本说明:

dsc[1]:DSC滚动升级版本号为1

dw1[1]:数据守护滚动升级版本号为1

2.3 查询数据库版本

方法一(联机):

SQL> SELECT ID_CODE;

设置容器滚动更新 什么是滚动升级_设置容器滚动更新_03

方法二(脱机):

./disql -id

设置容器滚动更新 什么是滚动升级_css_04

3,升级准备工作

3.1 准备新版本的数据库

  • 创建实例简单测试新版本数据库是否可用:
./dminit path=/home/dmdba/dmdbms_10/data/

设置容器滚动更新 什么是滚动升级_css_05

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;

设置容器滚动更新 什么是滚动升级_数据库_06

  • 使用dmrman校验备份。
RMAN>CHECK BACKUPSET '/home/dmdba/dsc_cfg/dsc0_config/db_back';

设置容器滚动更新 什么是滚动升级_css_07

4,升级具体步骤

4.1 退出节点1的 DSC0 服务

  • 登录disql
./disql SYSDBA/SYSDBA@192.168.14.141:5236
  • 停止节点1的 DSC0 服务。此处可能耗时较久。
Sql>STOP INSTANCE;

设置容器滚动更新 什么是滚动升级_sql_08

  • 查看dmcssm:看到下图标注信息表示成功。

设置容器滚动更新 什么是滚动升级_数据库_09

4.2 退出节点1的dmasmsvr服务

  • 查询节点节点1的dmasmsvr的端口号。
ps -ef|grep dmasmsvr
  • 停止dmasmsvr 服务。注意:直接kill pid,不要用kill -9。
kill 4628
  • 再次查询确认已关闭

设置容器滚动更新 什么是滚动升级_数据库_10

4.3 退出节点1的dmcss

  • 查询节点节点1的dmcss的端口号。
ps -ef|grep dmcss
  • 停止dmcss 服务。注意:直接kill pid,不要用kill -9。
kill 3605
  • 再次查询确认已关闭

设置容器滚动更新 什么是滚动升级_数据库_11

4.4 停止dsc集群dmap服务

./DmAPService stop

设置容器滚动更新 什么是滚动升级_sql_12

4.5 升级节点1的数据库版本

将新版本执行程序以及动态库替换掉老版本的执行程序以及动态库(先 mv 移走8月月度版的所有执行码,在将新版本的执行码放到之前老版本的目录。若正常升级成功之后,没有问题,则可以将老版本执行码删除)。

  • 备份旧版本的所有执行码。
mv -f dmdbms/ dmdbms_old_8

设置容器滚动更新 什么是滚动升级_数据库_13

  • 替换新版本的执行码。
cp -rp dmdbms/ /home/dmdba/

设置容器滚动更新 什么是滚动升级_数据库_14

4.6 重新启动节点1的所有服务

  • 启动dmap服务。
./DmAPService start

设置容器滚动更新 什么是滚动升级_sql_15

  • 依次启动 dmcss,dmasmsvr,dmserver【也可以用服务名的方式启动】
./dmcss DCR_INI=/home/dmdba/dsc_config/dmdcr.ini

设置容器滚动更新 什么是滚动升级_sql_16

./dmasmsvr DCR_INI=/home/dmdba/dsc_config/dmdcr.ini

设置容器滚动更新 什么是滚动升级_设置容器滚动更新_17

# 待ASM 服务正常加入成功之后,再启动DSC服务
./dmserver /home/dmdba/dsc_cfg/dm.ini dcr_ini=/home/dmdba/dsc_config/dmdcr.ini

设置容器滚动更新 什么是滚动升级_设置容器滚动更新_18

  • 查看dmcssm控制台:节点正常加入。查看相关状态是否无异常。

设置容器滚动更新 什么是滚动升级_css_19

4.7 查看节点1数据库版本是否升级成功

  • 登录disql查看id_code是否和新版本一致。
./disql SYSDBA/SYSDBA@192.168.14.141:5236

设置容器滚动更新 什么是滚动升级_数据库_20

4.8 升级其它节点

1,重复操作节点1升级步骤升级其它节点。
2,使用4.7节的方法,检查所有节点数据库版本是否一致。