注册
达梦数据库 主备集群升级方案
技术分享/ 文章详情 /

达梦数据库 主备集群升级方案

islijn 2024/03/22 1427 0 0

1.背景需求
当前使用的是1-2-70-21.09.08-147080-10028-SEC的主备数据库,需要升级为1-3-12-2023.04.17-187846-20040-SEC安全版本

2.环境准备及状态检查

2.1.数据库软件版本及环境配置

以下为方案流程测试,实际根据实际情况进行目录 安装包等更换。

操作系统 CentOS Linux 7
cpu Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz 4核
旧数据库版本 1-2-70-21.09.08-147080-10028-SEC
新数据库版本 1-3-12-2023.04.17-187846-20040-SEC
旧环境软件目录 /home/dmdba/dmdbms
新环境软件目录 /opt/dmdbms
旧环境实例路径 /dmdata/dmdb
新环境实例路径 /data/dmdb

2.2.新旧环境路径和端口

旧环境端口

实例名 实例端口 MAL系统监听TCP连接的端口 实例本地的守护进程监听TCP连接的端口 实例监听守护进程 TCP 连接的端口
RW1 5236 7336 7436 7536
RW2 5236 7336 7436 7536

新环境端口

实例名 实例端口 MAL系统监听TCP连接的端口 实例本地的守护进程监听 TCP连接的端口 实例监听守护进程TCP连接的端口
RW1 5237 7337 7437 7537
RW2 5237 7337 7437 7537

2.3.旧环境检查
主备集群状态
image.png
建库参数检查
select DECODE(para_value, 1,‘是’, ‘否’) “LENGTH_IN_CHAR”,
page “PAGE_SIZE”,SF_GET_EXTENT_SIZE() “EXTENT_SIZE”,
DECODE(unicode, ‘1’,‘utf8’, 0,‘gbk’, ‘EUC-KR’) “CHARSET”,
decode(CASE_SENSITIVE, ‘1’,‘敏感’, ‘不敏感’) CASE_SENSITIVE
from v$dm_ini where para_name = ‘LENGTH_IN_CHAR’;

2.4.创建新的空集群(过程忽略)

建库参数参照旧环境数据库参数,合理规划安装及实例路径,避开旧环境的端口,检查对比新旧主备的实例参数是否一致,检查磁盘空间是否足够,磁盘使用率超过50%需要申请增加磁盘

3.升级步骤

3.1.查询老库需要迁移的相关用户、表空间信息

select u.username,t.name as tablespace_name,d.CLIENT_PATH,d.PATH,d.MAX_SIZE,d.AUTO_EXTEND
from SYS.“VTABLESPACE"ast,SYS.dbaUSERSasu,SYS."VTABLESPACE" as t ,SYS.dba_USERS as u ,SYS."VDATAFILE” as d
where t.name=u.DEFAULT_TABLESPACE and d.group_id(+)=t.id;

image.png

3.2.老库使用dexp导出带迁移对象

切换到旧集群的安装bin目录
cd /home/dmdba/dmdbms/bin
使用dexp 导出全库数据
./dexp SYSDBA/’“SYSDBA”’ file=/dmdata/DMDB_full.dmp log=/dmdata/DMDB_full.log full=y

3.3.新库创建对应的相关用户、表空间

登录新集群创建对应的表空间和用户(如果没有创建对应的表空间和用户,将使用默认表空间main)
创建表空间
create tablespace “SCOTT” datafile ‘SCOTT.DBF’ size 128 autoextend on CACHE = NORMAL ;
创建用户
create user “SCOTT” identified by “dameng123”
default tablespace “SCOTT”;
grant “DBA”,“PUBLIC”,“SOI” to “SCOTT”;
查看新集群用户和表空间情况
select u.username,t.name as tablespace_name,d.CLIENT_PATH,d.PATH,d.MAX_SIZE,d.AUTO_EXTEND
from SYS.“VTABLESPACE"ast,SYS.dbaUSERSasu,SYS."VTABLESPACE" as t ,SYS.dba_USERS as u ,SYS."VDATAFILE” as d
where t.name=u.DEFAULT_TABLESPACE and d.group_id(+)=t.id;
image.png

3.4.导入老库数据到新库

切换到旧集群的安装bin目录
cd /opt/dmdbms/bin
使用dexp 导出全库数据
./dimp SYSDBA/SYSDBA@localhost:5237 file=/dmdata/DMDB_full.dmp log=/dmdata/DMDB_full_dimp.log full=y TABLE_EXISTS_ACTION=replace
–有很多报无效的约束名,
image.png
新版本主备库执行下面参数,重新导入
sp_set_para_value(1,‘CHECK_CONS_NAME’,0);
然后再导入
./dimp SYSDBA/SYSDBA@localhost:5237 file=/dmdata/DMDB_full.dmp log=/dmdata/DMDB_full_dimp.log full=y TABLE_EXISTS_ACTION=replace

4.数据对比

使用dts进行数据对比
image.png

对比新旧主库的数据(这里是5236和5237端口,用户都是SYSDBA)
image.png
对比完之后可以导出对比报告
image.png

5.应用验证

迁移对比完之后,应用验证连接新的集群测试,验证没问题之后将老的集群下线,根据用户需求更改端口

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服