本手册旨在指导管理员通过替换软件二进制文件的方式完成达梦数据库的升级。此方法不涉及数据字典的更改,而是直接更新数据库的可执行程序,操作高效、回滚便捷。
此升级方法的核心是:在完整备份旧版本程序和数据的基础上,将新版本的数据库软件覆盖安装到原有的安装路径,然后将旧版本的服务启动脚本和授权文件复制回新目录,最后重启服务,使数据库运行在新的软件版本上。
步骤 1:确定并记录关键路径 (以 dmdba 用户执行)
首先,必须明确当前达梦数据库的安装目录和实例目录。通过查看 dmserver
进程的启动命令可以准确获取。
ps -ef | grep dmserver
您会看到类似如下的输出:
dmdba 1234 1 0 10:00 ? 00:00:30 /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini ...
根据此输出:
dmserver
程序的路径 /home/dmdba/dmdbms/bin/dmserver
,其上级目录 /home/dmdba/dmdbms
即为数据库的安装根目录。dm.ini
数据库主配置文件的上级目录 /home/dmdba/dmdbms/data/DAMENG
即为数据库实例目录,包含了所有数据、在线日志和大部分配置文件。【注意】:本文档将以 /home/dmdba/dmdbms
为安装目录示例,请您在实际操作中,务必替换为通过此命令找到的您自己的实际安装目录。
步骤 2:检查并记录当前数据库版本 (以 dmdba 用户执行)
使用 disql 或达梦管理工具等其他客户端工具执行以下命令,查询并记录当前的版本标识码,用于升级后对比。
select id_code();
步骤 3:停止所有达梦相关服务
# 首先切换到 dmdba 用户
su - dmdba
提示:如果已将
[您的DM安装目录]/bin
加入了环境变量PATH
,则无需cd
到具体目录,可直接执行命令。
# 切换到bin目录 (如果未配置环境变量)
cd /home/dmdba/dmdbms/bin
# 1. 停止数据库服务
# 注意:服务名后缀可能不同,输入 DmService 后按 Tab 键可自动补全
./DmServiceDMSERVER stop
# 2. 停止AP服务
./DmAPService stop
步骤 4:【保障】执行数据库物理文件备份 (以 dmdba 用户执行)
在停止服务后、重命名目录前,执行一次数据库级别的完整脱机备份,这是最可靠的数据保障。
# 切换到bin目录
cd /home/dmdba/dmdbms/bin
# 执行备份,backupset后指定一个dmdba用户有权限写入的绝对路径
./dmrman CTLSTMT="BACKUP DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' backupset '/home/dmdba/backup/full_bak_`date +%Y%m%d`'"
步骤 5:【关键】备份旧版安装目录 (以 dmdba 用户执行)
通过重命名的方式,将整个旧版安装目录进行物理备份。这是最快速、最有效的回滚手段。
# 切换到 [您的DM安装目录] 的上一级目录
cd /home/dmdba
# 将原目录重命名,后缀加上日期以作区分
mv dmdbms dmdbms_bak_`date +%Y%m%d`
步骤 6:准备新版本安装介质 (以 root 用户执行)
下载目标升级版本的ISO安装文件,上传到服务器,并进行挂载。
# 切换到 root 用户
su - root
# 挂载ISO文件
mount -o loop /path/to/dm8_xxx.iso /mnt
步骤 7:以命令行模式安装新版本软件 (以 root 用户执行)
使用 -i
参数以纯命令行(静默)模式进行安装,避免对图形化界面的依赖。
# 运行安装程序
cd /mnt
./DMInstall.bin -i
在命令行交互安装过程中:
/home/dmdba/dmdbms
)。步骤 8:【核心】恢复服务脚本与授权文件 (以 dmdba 用户执行)
将旧的服务启动脚本和授权文件复制到新安装的目录中,以确保服务管理和授权与升级前一致。
# 切换到 dmdba 用户
su - dmdba
# 1. 从备份目录复制服务脚本到新目录的bin下
# 注意:DmServiceDMSERVER 是示例,请替换为您实际的服务脚本名
cp /home/dmdba/dmdbms_bak_.../bin/DmServiceDMSERVER /home/dmdba/dmdbms/bin/
# 2. 从备份目录复制授权文件到新目录的bin下
cp /home/dmdba/dmdbms_bak_.../bin/dm.key /home/dmdba/dmdbms/bin/
# 3. 确保服务脚本有执行权限
chmod +x /home/dmdba/dmdbms/bin/DmServiceDMSERVER
步骤 9:启动服务 (以 dmdba 用户执行)
# 切换到新安装目录的bin下 (如果未配置环境变量)
cd /home/dmdba/dmdbms/bin
# 1. 启动数据库服务
./DmServiceDMSERVER start
# 2. 检查并启动AP服务
# 首先,检查AP服务状态
./DmAPService status
# 或者使用ps命令确认
# ps -ef | grep dmap
# 如果服务未运行,则启动它
./DmAPService start
步骤 10:验证数据库新版本 (以 dmdba 用户执行)
再次连接数据库,执行版本查询命令,与步骤2中记录的版本标识码进行对比,确认已更新。
select id_code();
步骤 11:检查实例状态 (以 dmdba 用户执行)
确认数据库实例状态为 OPEN
,并检查日志确保无异常。
SELECT STATUS$ FROM V$INSTANCE;
步骤 12:业务功能验证与新基线备份
通知业务方对核心应用功能进行全面的回归测试。所有测试通过后,为升级后的数据库创建一次全新的完整备份,作为新的恢复基线。
此方法的回滚非常简单快捷。
rm -rf /home/dmdba/dmdbms
mv /home/dmdba/dmdbms_bak_... /home/dmdba/dmdbms
文章
阅读量
获赞