文章目录

  • 前言
  • 一、环境介绍
  • 二、操作步骤
  • 1.检查环境
  • 2.准备降级环境
  • 3.准备降级环境
  • 4.环境确认
  • 总结



前言

此文档为达梦数据库通过修改控制文件进行数据库版本降级浅试。仅供参考。


提示:以下是本篇文章正文内容,下面案例可供参考

一、环境介绍

环境为单机2C4G内存50G存储的Kylin Linux Advanced Server操作系统云环境虚拟机。
本次降级以达梦数据库8-1-2-46通过修改dm.ctl文件去实现降级达梦数据库8-1-1-190。

软件类别

升级前

升级后

数据库

达梦数据库8-1-2-46

达梦数据库8-1-1-190

二、操作步骤

1.检查环境

操作前先确认数据库基本情况

--查看数据库版本
select top 1 banner || id_code from v$version;
--查看授权情况
select * from v$license;

records不支持达梦吗_数据库

--查看数据库文件路径
select * from v$datafile;

records不支持达梦吗_records不支持达梦吗_02

停止数据库运行

cd /home/dmdba/dmdbms/bin
./DmServiceDMSERVER stop
./DmAPService stop

records不支持达梦吗_Server_03

2.准备降级环境

创建dm8文件夹安装低版本数据库,通过mount挂载磁盘并安装数据库软件。

cd /
umask 022
mkdir dm8
chown -R dmdba:dinstall /dm8
mount -o loop /media/dm8_20210421_x86_rh6_64_ent_8.1.1.190_pack4.iso /mnt

records不支持达梦吗_records不支持达梦吗_04

通过DMInstall.bin命令行安装数据库,步骤略。

records不支持达梦吗_数据库_05

3.准备降级环境

在低版本中尝试通过前台启动数据库发现报错

Server DM7_DCT_VERSION mismatch, version of data is 11, server version is 9.
Server DM8_DCT_VERSION mismatch, version of data is 36, server version is 29.
Please use the correct version of server or set the CHECK_SVR_VERSION=0 in dm.ini

records不支持达梦吗_records不支持达梦吗_06

此处报错为启动版本与数据库中dm.ctl内容不一致。
那我们通过高版本的数据库中dmctlcvt工具去修改dm.ctl中的DM7_DCT_VERSION和DM8_DCT_VERSION。
修改为对应的9和29。

./dmctlcvt type=1 src=/home/dmdba/dmdbms/data/DAMENG/dm.ctl dest=/home/dmdba/dmdbms/data/DAMENG/dm.txt
vi /home/dmdba/dmdbms/data/DAMENG/dm.txt
./dmctlcvt type=2 dest=/home/dmdba/dmdbms/data/DAMENG/dm.txt src=/home/dmdba/dmdbms/data/DAMENG/dm.ctl

records不支持达梦吗_records不支持达梦吗_07

records不支持达梦吗_Server_08

最后我们前台启动低版本数据库,启动成功。

records不支持达梦吗_Server_09

现在数据库的实例文件已经是低版本可以正常启动了。

此时我们需要做的是通过前台启动低版本数据库,有两个方式,卸载高版本的数据库软件或者替换bin文件夹。

我这里使用的方式是替换bin文件夹

cd /home/dmdba/dmdbms
mv bin bin_2_46
/dm8/bin/DmAPService stop
cp -r /dm8/bin /hom/dmdba/dmdbms/bin
cd bin_2_46
cp DmServiceDMSERVER ../bin/
./DmServiceDMSERVER start
./DmAPService start

4.环境确认

最后确认低版本数据库是否正常启动。

--查看数据库版本
select top 1 banner || id_code from v$version;
--查看授权情况
select * from v$license;

records不支持达梦吗_数据库_10

--查看数据库文件路径
select * from v$datafile;

records不支持达梦吗_数据库_11

总结

此处仅为达梦数据库通过dmctlcvt去修改dm.ctl进行降级的一次尝试。
数据库也可通过dmmdf降级工具去进行降级处理。