1. 当前环境信息
升级前数据库版本信息
| IP | 数据库名 | 实例名 | 当前版本 | 目标版本 |
| 192.168.10.177 | DMDBS | DB01 | 2024q3pack35 | 25Q1Pack19 |
升级目的:从2024q3pack35版本升级到25Q1Pack19版本
2.升级前准备
2.1 检查安装包与系统兼容性
查看系统架构信息,选择与系统架构相匹配的安装包
-- 系统信息查询
getconf LONG_BIT # 获取系统位数
cat /etc/os-release | grep "PRETTY_NAME" # 查询操作系统
cat /proc/version # 查询系统
lscpu # 查询CPU型号
cat /proc/cpuinfo|grep "physical id"|sort|uniq|wc -l # CPU个数
free -h #查询内存
df -h #快速查看所有磁盘空间
du -sh * #查询目录下所有项目的大小
fdisk -l #查询所有物理磁盘
netstat -tunlp | grep <进程名或端口号> #查询端口号
hostname -I #查询本机ip
2.2 检查数据库服务状态
(1) 确认服务运行信息:
ps -ef | grep dmserver
(2) 确认目录信息:
软件目录:/home/dmdba/dmdbms/
数据目录:/dmdata/data/DMDBS/
(3) 确认数据库版本:

2.3 关闭应用连接并清理会话
本操作确保应用连接处于关闭或备份期间没有数据变更操作。
#检查活跃会话
SELECT * FROM V$SESSIONS;
#检查是否存在待PURGE事务
SELECT * FROM v$PURGE;
#主动做检查点刷盘
checkpoint(100);
-- 清理会话(若应用无法关闭)
BEGIN
FOR session IN (SELECT SESS_ID FROM V$SESSIONS) LOOP
SP_CANCEL_SESSION_OPERATION(session.SESS_ID);
SP_CLOSE_SESSION(session.SESS_ID);
END LOOP;
END;
#必要时进行用户锁定
ALTER USER xxx ACCOUNT LOCK;
ALTER USER xxx ACCOUNT UNLOCK;
# or
-- 检查数据文件,是否均在库目录下,如果不在需要备份
SELECT * FROM V$DATAFILE;
-- 检查重做日志文件,是否均在库目录下,如果不在需要备份
-- 检查归档文件,最后升级前需mv下整个归档目录
-- 在停止原服务前建议先检查数据文件位置以防丢失数据文件:
-- 动态性能视图查询表空间与数据文件对应关系
SELECT ts.NAME, df.PATH FROM V$TABLESPACE AS ts, V$DATAFILE AS df WHERE ts.ID = df.GROUP_ID;
-- 如果应用无法关闭连接,则进行锁用户,并清理历史会话操作
select username from dba_users;
alter user xxx ACCOUNT LOCK;
begin
for a in (select sess_id from v$sessions
) loop
execute immediate 'sp_cancel_session_operation ('''||a.SESS_ID||''')';
execute immediate 'sp_close_session ('''||a.SESS_ID||''')';
end loop;
end;
3. 备份关键数据
3.1 停止数据库服务
DmService stop

3.2 备份数据库
#默认dmap服务是开启状态,检查dmap服务的状态
ps -ef|grep dmap

使用dmrman工具进行脱机数据库全量备份:
dmrman
-- 脱机备份数据库
backup database '/dmdata/data/DMDBS/dm.ini' backupset '/dmdata/dmbak/bakfull20251124';
-- 校验备份
check backupset 'dmdata/dmbak/bakfull20251124';

3.3 备份原库目录
cp -rpf /dmdata/data/DMDBS /dmdata/data/DMDBS_bak251124
du -sh /dmdata/data/DMDBS* # 验证备份大小

3.4 备份数据库软件目录
#停止dmap服务
DmAPservice stop
#备份数据库软件目录
cp -rpf /home/dmdba/dmdbms /home/dmdba/dmdbms_bak251124

4.安装新版本数据库
4.1 安装流程
(1) 使用 dmdba 用户运行新版本安装程序。
(2) 安装到原软件目录:/home/dmdba/dmdbms/ (将原软件目录下的文件进行备份后删除,否则不能按照到该目录下)


4.2 恢复文件
# 拷贝原服务脚本及许可证文件
cp /home/dmdba/dmdbms_bak251124/bin/DmService* /home/dmdba/dmdbms/bin/
# 若存在key文件
cp /home/dmdba/dmdbms_bak251124/bin/dm.key /home/dmdba/dmdbms/bin/
5. 启动与验证
5.1 启动数据库服务
DmService start
DmAPService status

查看数据库版本信息:

5.2 更新统计信息
CALL SP_DB_STAT_INIT(); -- 全库统计信息
CALL DBMS_STATS.GATHER_SCHEMA_STATS('用户名', 100); -- 指定模式
5.3 重建系统包
SP_CREATE_SYSTEM_VIEWS(0);
SP_CREATE_SYSTEM_VIEWS(1);
SP_CREATE_SYSTEM_PACKAGES(0);
SP_CREATE_SYSTEM_PACKAGES(1);
6. 回退操作
若升级失败,按步骤回退:
6.1 停止数据库服务
DmService stop
6.2 恢复旧版执行码
mv /home/dmdba/dmdbms /home/dmdba/dmdbms_FAILED
mv /home/dmdba/dmdbms_bak251124 /home/dmdba/dmdbms
6.3 恢复数据(任选一种)
(1) 物理恢复
cp -rpf /dmdata/data/DMDBS_bak251124 /dmdata/data/DMDBS
(2) 备份集恢复
dmrman
# 校验备份
check backupset '/dmdata/dmbak/bakfull';
# 执行restore
restore database '/dmdata/data/DMDBS/dm.ini' from backupset '/dmdata/dmbak/bakfull20251124';
# 执行recover
recover database '/dmdata/data/DMDBS/dm.ini' from backupset '/dmdata/dmbak/bakfull20251124';
# 执行recover update db_magic
recover database '/dmdata/data/DMDBS/dm.ini' update db_magic;
回退后查看数据库能否正常打开以及查询版本是否为旧版本。
达梦在线服务平台:https://eco.dameng.com
1602

被折叠的 条评论
为什么被折叠?



