达梦数据库DM8单机版本升级

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​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值