版本升级

达梦数据库产品注重向下兼容性,虽然版本不断地更新升级,但在绝大多数情况下,使用高版本的执行码启动低版本的数据库时,会自动执行一系列更新升级动作,对于DMDSC,用户只需要保证集群中所有节点之前是正常退出的即可。

在数据库升降级操作前,建议先进行数据备份。

需要注意的是,DM进行的两项较大的功能改进,使得DMDSC在跨这两个版本进行升级时需要进行额外的升级操作,下面进行详细的说明。

17.1 日志格式升级

从V8.1.1.15版本开始,DM对REDO日志格式进行了升级,与老的日志格式不兼容,因此要求数据库在执行升级操作前,必须是使用之前版本的执行码执行正常退出后的库,以此来保证所有数据都已经刷盘,否则使用新版本的执行码启动数据库时,无法根据老的REDO日志对故障重启的数据库执行重做REDO日志、归档文件修复等动作,无法正常完成数据库升级。

17.1.1 版本说明

支持DM7、DM8老版本的库升级到V8.1.1.15或更高的数据库版本。

DM8老版本的库正常退出后,允许直接启动升级到V8.1.1.15或者更高版本的DM8,但必须要严格遵守17.1.2节中的升级步骤。

DM7老版本的库,针对不同版本有一些升级限制,具体说明如下:

  • V7.1.6.11之后的版本(包括V7.1.6.11)

允许直接启动升级到V8.1.1.15或者更高版本的DM8,同样也需要严格遵守升级步骤。

  • 低于V7.1.6.11的版本

需要先升级到V7.6.0.183或者更高版本的DM7,对日志版本号进行升级,然后才允许升级到V8.1.1.15或者更高版本的DM8。需要注意的是,V7.1.5.125以及更低版本的库,如果打开了日志加密,则不再支持升级到V8.1.1.15或更高的数据库版本。

低于V7.1.6.11的版本需要升级两次,这两次版本升级的步骤是完全相同的,“升级到V7.6.0.183或者更高版本的DM7”的步骤可以参考下文中描述的升级步骤,只是将升级步骤中的版本号替换为“V7.6.0.183或者更高版本的DM7”。

17.1.2 升级步骤

只有当DMDSC中所有节点都是OK状态时才允许升级。存在故障节点的情况下,OK状态节点启动升级时会报错。由于DSC集群的特殊启动流程,对故障节点无法正常报错退出,因此需要用户保证升级前所有节点都处于OK状态并正常退出(包括DMSERVER、DMASMSVR和DMCSS)。

由于升级后老的归档日志文件不再可用,因此必须在执行升级前先将归档日志文件全部从归档目录中移走,包括本地归档和远程归档,避免升级后再次降级时,误判归档日志文件不连续。

需要注意的是,DM7和DM8的DCR Disk和Voting Disk格式不兼容,如果DM7的库升级到DM8,在执行升级之前,需要先重新初始化DCR和Voting Disk磁盘(注意,对于需要执行两次升级的DM7版本,第一次升级还是DM7内的版本升级,不需要执行这个操作)。

使用DMASMCMD工具,执行如下命令完成初始化,执行时需要根据实际环境修改路径:

DM7执行码(升级前的版本)执行:

export dcrdisk 'F:\dmdsc\asmdisks\dmdcr.asm' to ' F:\dmdsc\data\dmdcr_cfg.ini'

DM8执行码(V8.1.1.15或者更高版本)执行:

create dcrdisk 'F:\dmdsc\asmdisks\dmdcr.asm' 'dcr'
create votedisk 'F:\dmdsc\asmdisks\dmvtdsk.asm' 'vtd'
init dcrdisk 'F:\dmdsc\asmdisks\dmdcr.asm' from 'F:\dmdsc\data\dmdcr_cfg.ini' identified by 'abcd'
init votedisk 'F:\dmdsc\asmdisks\dmvtdsk.asm' from 'F:\dmdsc\data\dmdcr_cfg.ini'

然后使用V8.1.1.15或者更高版本执行码依次启动DMCSS、DMASMSVR和DMSERVER即可,在启动过程中会自动完成系统表和动态视图等字典信息的升级。

DSC集群可以正常启动到OPEN状态,就表示升级成功。升级成功的情况下,一定是可以查到SYSOPENHISTORY系统表的,可通过查询此系统表确认升级结果。

17.2 回滚管理段升级

DM从V8.1.1.101版本开始支持回滚管理段,用于存放事务信息,在系统故障重启或者DSC故障处理时,通过扫描回滚管理段收集事务信息,以达到缩减事务收集时长的目的。

此版本增加了一个建库参数(PSEG_MGR_FLAG)表示是否仅使用回滚管理段记录事务信息,取值0、1,默认为0。取值含义说明如下:

  • 0:除了使用回滚管理段记录事务信息外,在事务的首个回滚页上也记录事务信息。
  • 1:仅使用回滚管理段记录事务信息,事务的首个回滚页上不再记录。

老版本的库升级时,一律采用PSEG_MGR_FLAG=0的方式进行升级,老版本库在升级时会自动创建回滚管理段,升级成功后,不允许再使用老执行码启动升级后的库。

17.2.1 版本说明

具体的升级版本限制说明如下:

  • 升级前的老版本库是DM8,版本号等于或者高于V8.1.1.15

老版本库已支持升级后的日志格式,本次升级仅需要升级回滚管理段。

  • 升级前的老版本库是DM8,版本号低于V8.1.1.15;或者升级前的老版本库是DM7

老版本库不支持升级后的日志格式,本次升级需要先升级日志格式,再升级回滚管理段。

对这个版本范围的老版本库,升级前首先需要满足“17.1 日志格式升级”的各项升级条件,然后还要满足回滚管理段的升级条件才能升级。

17.2.2 升级步骤

回滚管理段的升级必须满足以下两个条件:

(1) 升级前不存在故障节点,并且所有节点均正常退出。

(2) 老版本库如果是新初始化库,则必须用老执行码正常启动过并正常退出,才允许升级。

如果老版本库已支持升级后的日志格式(版本号等于或者高于V8.1.1.15),在满足这上述条件的前提下,直接使用V8.1.1.101或者更高版本的执行码按照DMCSS、DMASMSVR、DMSERVER的顺序启动老版本库到OPEN状态即可完成升级。

如果老库还未支持升级后的日志格式,则需要同时满足日志格式和回滚管理段的升级条件。具体执行升级时,要根据老版本库当前的版本号,按照“17.1日志格式升级”中的步骤进行升级,只需要将其中的V8.1.1.15替换为V8.1.1.101即可,V8.1.1.101可以同时完成日志格式和回滚管理段的升级。

微信扫码
分享文档
扫一扫
联系客服