内容简介:本文档风哥主要介绍DM达梦数据库的升级与迁移,涵盖升级的概念、类型、流程,以及迁移的概念、类型、流程等内容,风哥教程参考DM官方文档《DM8升级指南》、《DM8迁移工具使用手册》等官方资料。本文档为DM数据库学习系列的第二十七篇,重点介绍DM数据库升级与迁移的详细步骤和实战操作。
Part01-基础概念与理论知识
1.1 升级概述
升级是指将DM数据库从较低版本升级到较高版本,以获得新功能和性能改进。
1.1.1 升级的定义
升级是指将DM数据库的版本从较低版本更新到较高版本,以获得新功能、性能改进和安全修复。
1.1.2 升级的目标
- 获得新功能
- 提高性能
- 修复安全漏洞
- 确保系统稳定性
1.2 迁移概述
迁移是指将数据从一个数据库系统迁移到另一个数据库系统,或者从一个环境迁移到另一个环境。
1.2.1 迁移的定义
迁移是指将数据从一个数据库系统迁移到另一个数据库系统,或者从一个环境迁移到另一个环境,以满足业务需求。
1.2.2 迁移的目标
- 数据迁移
- 应用迁移
- 架构迁移
- 平台迁移
1.3 升级类型
DM数据库的升级类型多种多样,不同类型的升级适用于不同的场景。
1.3.1 版本升级
- 小版本升级:从DM8.1.1.100升级到DM8.1.1.200
- 大版本升级:从DM7升级到DM8
1.3.2 升级方式
- 原地升级:在原有环境上直接升级
- 滚动升级:在集群环境中逐个节点升级
- 并行升级:在新环境中安装新版本,然后迁移数据
1.4 迁移类型
DM数据库的迁移类型多种多样,不同类型的迁移适用于不同的场景。
1.4.1 数据迁移
- 同构迁移:从DM数据库迁移到DM数据库
- 异构迁移:从其他数据库迁移到DM数据库
1.4.2 环境迁移
- 风哥提示:
- 物理迁移:迁移到新的硬件环境
- 虚拟化迁移:迁移到虚拟机环境
- 云迁移:迁移到云环境
1.4.3 架构迁移
- 单机迁移:从单机迁移到单机
- 集群迁移:从单机迁移到集群
- 分布式迁移:从集中式迁移到分布式
Part02-生产环境规划与建议
2.1 升级计划
合理的升级计划是确保DM数据库升级成功的关键。
2.1.1 升级计划目标
- 确保升级成功
- 最小化业务影响
- 确保数据安全
- 确保系统稳定
2.1.2 升级计划内容
1. 准备阶段:备份数据、检查系统环境、准备升级工具
2. 测试阶段:在测试环境进行升级测试
3. 实施阶段:在生产环境进行升级
4. 验证阶段:验证升级结果、测试系统功能
5. 回滚阶段:制定回滚计划,以应对升级失败
2.2 迁移计划
学习交流加群风哥微信: itpux-com
合理的迁移计划是确保DM数据库迁移成功的关键。
2.2.1 迁移计划目标
- 确保迁移成功
- 最小化业务影响
- 确保数据安全
- 确保系统稳定
2.2.2 迁移计划内容
1. 准备阶段:备份数据、检查目标环境、准备迁移工具
2. 测试阶段:在测试环境进行迁移测试
3. 实施阶段:在生产环境进行迁移
4. 验证阶段:验证迁移结果、测试系统功能
5. 回滚阶段:制定回滚计划,以应对迁移失败
2.3 升级策略
不同的升级策略适用于不同的场景。
2.3.1 小版本升级策略
- 原地升级:直接在原有环境上升级
- 快速升级:利用维护窗口进行升级
- 滚动升级:在集群环境中逐个节点升级
2.3.2 大版本升级策略
- 并行升级:在新环境中安装新版本,然后迁移数据
- 分阶段升级:先升级测试环境,再升级生产环境
- 混合升级:结合原地升级和并行升级
2.4 迁移策略
不同的迁移策略适用于不同的场景。
2.4.1 数据迁移策略
- 全量迁移:一次性迁移所有数据
- 增量迁移:先迁移历史数据,再迁移增量数据
- 分批迁移:分批次迁移数据,减少业务影响
2.4.2 环境迁移策略
学习交流加群风哥QQ113257174
- 停机迁移:在业务停机时间进行迁移
- 在线迁移:在业务运行过程中进行迁移
- 双活迁移:同时运行新旧环境,逐步切换流量
Part03-生产环境项目实施方案
3.1 升级流程
详细介绍DM数据库的升级流程。
3.1.1 准备阶段
#
# 1. 备份数据
$ /dm/app/bin/dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/full_backup’ compressed;
#
# 2. 检查系统环境
$ uname -a
$ cat /etc/redhat-release
$ free -m
$ df -h
#
# 3. 准备升级工具
$ wget https://download.dameng.com/eco/dm8/dm8_20230409_x86_rh6_64_ent_8.1.1.100.iso
$ mount -o loop dm8_20230409_x86_rh6_64_ent_8.1.1.100.iso /mnt
3.1.2 测试阶段
#
# 1. 在测试环境安装新版本
$ ./DMInstall.bin
#
# 2. 升级测试数据库
$ /dm/app/bin/dmupgradectl upgrade /dm/fgdata/fgedudb_test/dm.ini
#
# 3. 测试系统功能
$ disql SYSDBA/SYSDBA@192.168.1.101:5236
SQL> select * from fgedu_test;
3.1.3 实施阶段
#
# 1. 停止数据库服务
$ /dm/app/bin/dmserver stop /dm/fgdata/fgedudb/dm.ini
#
# 2. 升级数据库 更多视频教程www.fgedu.net.cn
$ /dm/app/bin/dmupgradectl upgrade /dm/fgdata/fgedudb/dm.ini
#
# 3. 启动数据库服务
$ /dm/app/bin/dmserver /dm/fgdata/fgedudb/dm.ini
3.1.4 验证阶段
#
# 1. 检查数据库版本
$ disql SYSDBA/SYSDBA@192.168.1.101:5236
SQL> select * from v$version;
#
# 2. 测试系统功能
SQL> select * from fgedu_test;
SQL> insert into fgedu_test values (1, ‘test’);
SQL> commit;
#
# 3. 检查升级日志
$ tail -f /dm/fgdata/fgedudb/upgrade.log
3.2 迁移流程
详细介绍DM数据库的迁移流程。
3.2.1 准备阶段
#
# 1. 备份源数据库
$ /dm/app/bin/dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb_source/dm.ini’ full backupset ‘/dm/backup/full_backup’ compressed;
#
# 2. 检查目标环境
$ uname -a
$ cat /etc/redhat-release
$ free -m
$ df -h
#
# 3. 准备迁移工具
$ wget https://download.dameng.com/eco/dm8/dm8_20230409_x86_rh6_64_ent_8.1.1.100.iso
$ mount -o loop dm8_20230409_x86_rh6_64_ent_8.1.1.100.iso /mnt
3.2.2 测试阶段
#
# 1. 在测试环境安装DM数据库
$ ./DMInstall.bin
#
# 2. 迁移测试数据 更多学习教程公众号风哥教程itpux_com
$ /dm/app/bin/dmmigrate source_type=dm source_host=192.168.1.101 source_port=5236 source_user=SYSDBA source_pwd=SYSDBA target_type=dm target_host=192.168.1.102 target_port=5236 target_user=SYSDBA target_pwd=SYSDBA schema=fgedu
#
# 3. 测试系统功能
$ disql SYSDBA/SYSDBA@192.168.1.102:5236
SQL> select * from fgedu_test;
3.2.3 实施阶段
#
# 1. 停止源数据库服务
$ /dm/app/bin/dmserver stop /dm/fgdata/fgedudb_source/dm.ini
#
# 2. 迁移数据
$ /dm/app/bin/dmmigrate source_type=dm source_host=192.168.1.101 source_port=5236 source_user=SYSDBA source_pwd=SYSDBA target_type=dm target_host=192.168.1.102 target_port=5236 target_user=SYSDBA target_pwd=SYSDBA schema=fgedu
#
# 3. 启动目标数据库服务
$ /dm/app/bin/dmserver /dm/fgdata/fgedudb_target/dm.ini
3.2.4 验证阶段
#
# 1. 检查目标数据库状态
$ disql SYSDBA/SYSDBA@192.168.1.102:5236
SQL> select status from v$instance;
#
# 2. 测试系统功能
SQL> select * from fgedu_test;
SQL> insert into fgedu_test values (1, ‘test’);
SQL> commit;
#
# 3. 检查迁移日志
$ tail -f /dm/fgdata/fgedudb_target/migrate.log
3.3 升级工具
介绍DM数据库的升级工具。
from DB视频:www.itpux.com
3.3.1 dmupgradectl
- 功能:DM数据库升级工具
- 用途:将DM数据库从较低版本升级到较高版本
- 使用方法:
dmupgradectl upgrade <dm.ini路径>
3.3.2 DM管理工具
- 功能:图形化升级工具
- 用途:通过图形界面进行数据库升级
- 使用方法:打开DM管理工具,选择”数据库升级”
3.4 迁移工具
介绍DM数据库的迁移工具。
3.4.1 dmmigrate
- 功能:DM数据库迁移工具
- 用途:将数据从一个数据库迁移到另一个数据库
- 使用方法:
dmmigrate source_type=<源数据库类型> source_host=<源主机> source_port=<源端口> source_user=<源用户> source_pwd=<源密码> target_type=<目标数据库类型> target_host=<目标主机> target_port=<目标端口> target_user=<目标用户> target_pwd=<目标密码> schema=<模式>
3.4.2 DM数据迁移工具
- 功能:图形化迁移工具
- 用途:通过图形界面进行数据迁移
- 使用方法:打开DM数据迁移工具,配置源和目标数据库
3.4.3 dmrman
- 功能:备份恢复工具
- 用途:通过备份和恢复进行数据迁移
- 使用方法:
dmrman restore database <dm.ini路径> from backupset <备份集路径>
Part04-生产案例与实战讲解
4.1 升级实战演示
通过实际操作演示DM数据库的升级过程。
4.1.1 小版本升级
#
# 1. 检查当前版本
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
—————————————————————————
dm Database Server 64 V8.1.1.100
#
# 2. 备份数据库
[dmdba@fgedu ~]$ /dm/app/bin/dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/full_backup’ compressed;
# 输出信息
[2023-04-09 14:00:00] 备份开始
[2023-04-09 14:00:00] 备份文件: /dm/backup/full_backup
[2023-04-09 14:01:00] 备份完成,耗时: 1分0秒
[2023-04-09 14:01:00] 备份集大小: 100MB
#
# 3. 停止数据库服务
[dmdba@fgedu ~]$ /dm/app/bin/dmserver stop /dm/fgdata/fgedudb/dm.ini
#
# 4. 升级数据库
[dmdba@fgedu ~]$ /dm/app/bin/dmupgradectl upgrade /dm/fgdata/fgedudb/dm.ini
# 输出信息
[2023-04-09 14:02:00] 升级开始
[2023-04-09 14:02:00] 升级文件: /dm/fgdata/fgedudb/dm.ini
[2023-04-09 14:03:00] 升级完成,耗时: 1分0秒
[2023-04-09 14:03:00] 升级成功
#
# 5. 启动数据库服务
[dmdba@fgedu ~]$ /dm/app/bin/dmserver /dm/fgdata/fgedudb/dm.ini
#
# 6. 验证升级结果
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
—————————————————————————
dm Database Server 64 V8.1.1.200
SQL> select * from fgedu_test;
ID NAME
———– —————————————
1 fgedu1
2 fgedu2
4.1.2 大版本升级
#
# 1. 检查当前版本
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
—————————————————————————
dm Database Server 64 V7.6.0.100
#
# 2. 备份数据库
[dmdba@fgedu ~]$ /dm/app/bin/dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/full_backup’ compressed;
#
# 3. 在新环境安装DM8
[dmdba@fgedu-new ~]$ ./DMInstall.bin
#
# 4. 迁移数据
[dmdba@fgedu-new ~]$ /dm/app/bin/dmmigrate source_type=dm source_host=192.168.1.101 source_port=5236 source_user=SYSDBA source_pwd=SYSDBA target_type=dm target_host=192.168.1.102 target_port=5236 target_user=SYSDBA target_pwd=SYSDBA schema=SYSDBA
#
# 5. 验证迁移结果
[dmdba@fgedu-new ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
—————————————————————————
dm Database Server 64 V8.1.1.100
SQL> select * from fgedu_test;
ID NAME
———– —————————————
1 fgedu1
2 fgedu2
4.2 迁移实战演示
通过实际操作演示DM数据库的迁移过程。
4.2.1 同构迁移
#
# 1. 检查源数据库状态
[dmdba@fgedu-source ~]$ disql SYSDBA/SYSDBA
SQL> select status from v$instance;
STATUS
——-
OPEN
SQL> select * from fgedu_test;
ID NAME
———– —————————————
1 fgedu1
2 fgedu2
#
# 2. 备份源数据库
[dmdba@fgedu-source ~]$ /dm/app/bin/dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb_source/dm.ini’ full backupset ‘/dm/backup/full_backup’ compressed;
#
# 3. 在目标环境安装DM数据库
[dmdba@fgedu-target ~]$ ./DMInstall.bin
#
# 4. 迁移数据
[dmdba@fgedu-target ~]$ /dm/app/bin/dmmigrate source_type=dm source_host=192.168.1.101 source_port=5236 source_user=SYSDBA source_pwd=SYSDBA target_type=dm target_host=192.168.1.102 target_port=5236 target_user=SYSDBA target_pwd=SYSDBA schema=fgedu
# 输出信息
[2023-04-09 14:00:00] 迁移开始
[2023-04-09 14:00:00] 源数据库: 192.168.1.101:5236
[2023-04-09 14:00:00] 目标数据库: 192.168.1.102:5236
[2023-04-09 14:01:00] 迁移完成,耗时: 1分0秒
[2023-04-09 14:01:00] 迁移成功
#
# 5. 验证迁移结果
[dmdba@fgedu-target ~]$ disql SYSDBA/SYSDBA
SQL> select * from fgedu_test;
ID NAME
———– —————————————
1 fgedu1
2 fgedu2
4.2.2 异构迁移
#
# 1. 检查源数据库状态(Oracle)
[oracle@oracle ~]$ sqlplus / as sysdba
SQL> select * from fgedu_test;
ID NAME
———– —————————————
1 fgedu1
2 fgedu2
#
# 2. 备份源数据库
[oracle@oracle ~]$ expdp system/oracle schemas=fgedu directory=DATA_PUMP_DIR dumpfile=fgedu.dmp logfile=expdp.log
#
# 3. 在目标环境安装DM数据库
[dmdba@fgedu ~]$ ./DMInstall.bin
#
# 4. 迁移数据
[dmdba@fgedu ~]$ /dm/app/bin/dmmigrate source_type=oracle source_host=192.168.1.101 source_port=1521 source_user=fgedu source_pwd=fgedu target_type=dm target_host=192.168.1.102 target_port=5236 target_user=SYSDBA target_pwd=SYSDBA schema=fgedu
#
# 5. 验证迁移结果
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from fgedu_test;
ID NAME
———– —————————————
1 fgedu1
2 fgedu2
4.3 迁移脚本实战
通过实际操作演示DM数据库的迁移脚本使用。
4.3.1 数据迁移脚本
# migrate_data.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
# 源数据库信息
SOURCE_HOST=”192.168.1.101″
SOURCE_PORT=”5236″
SOURCE_USER=”SYSDBA”
SOURCE_PWD=”SYSDBA”
# 目标数据库信息
TARGET_HOST=”192.168.1.102″
TARGET_PORT=”5236″
TARGET_USER=”SYSDBA”
TARGET_PWD=”SYSDBA”
# 迁移模式
SCHEMA=”fgedu”
# 备份源数据库
echo “备份源数据库…”
/dm/app/bin/dmrman << EOF backup database '/dm/fgdata/fgedudb_source/dm.ini' full backupset '/dm/backup/full_backup' compressed; exit; EOF # 迁移数据 echo "迁移数据..." /dm/app/bin/dmmigrate source_type=dm source_host=$SOURCE_HOST source_port=$SOURCE_PORT source_user=$SOURCE_USER source_pwd=$SOURCE_PWD target_type=dm target_host=$TARGET_HOST target_port=$TARGET_PORT target_user=$TARGET_USER target_pwd=$TARGET_PWD schema=$SCHEMA # 验证迁移结果 echo "验证迁移结果..." disql $TARGET_USER/$TARGET_PWD@$TARGET_HOST:$TARGET_PORT << EOF select * from $SCHEMA.fgedu_test; exit; EOF echo "迁移完成!"
4.3.2 升级脚本
# upgrade_db.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
# 数据库路径
DB_PATH=”/dm/fgdata/fgedudb”
INI_FILE=”$DB_PATH/dm.ini”
# 备份数据库
echo “备份数据库…”
/dm/app/bin/dmrman << EOF backup database '$INI_FILE' full backupset '/dm/backup/full_backup' compressed; exit; EOF # 停止数据库服务 echo "停止数据库服务..." /dm/app/bin/dmserver stop $INI_FILE # 升级数据库 echo "升级数据库..." /dm/app/bin/dmupgradectl upgrade $INI_FILE # 启动数据库服务 echo "启动数据库服务..." /dm/app/bin/dmserver $INI_FILE & # 验证升级结果 sleep 10 echo "验证升级结果..." disql SYSDBA/SYSDBA << EOF select * from v\$version; select * from fgedu_test; exit; EOF echo "升级完成!"
Part05-风哥经验总结与分享
5.1 升级技巧与注意事项
基于实际经验,分享一些DM数据库升级的技巧和注意事项。
5.1.1 升级技巧
- 提前备份数据:在升级前一定要备份数据,以防升级失败
- 测试环境验证:在测试环境进行升级测试,确保升级过程顺利
- 选择合适的时间:选择业务低峰期进行升级,减少业务影响
- 准备回滚方案:制定详细的回滚方案,以应对升级失败
- 监控升级过程:实时监控升级过程,及时发现和处理问题
- 验证升级结果:升级后仔细验证系统功能,确保升级成功
5.1.2 升级注意事项
- 版本兼容性:确保目标版本与当前版本兼容
- 系统环境:确保系统环境满足目标版本的要求
- 参数调整:升级后可能需要调整数据库参数
- 应用兼容性:确保应用与新版本兼容
- 权限管理:升级后检查用户权限是否正确
- 性能优化:升级后进行性能测试和优化
5.2 迁移技巧与注意事项
基于实际经验,分享一些DM数据库迁移的技巧和注意事项。
5.2.1 迁移技巧
- 提前备份数据:在迁移前一定要备份数据,以防迁移失败
- 测试环境验证:在测试环境进行迁移测试,确保迁移过程顺利
- 选择合适的时间:选择业务低峰期进行迁移,减少业务影响
- 准备回滚方案:制定详细的回滚方案,以应对迁移失败
- 监控迁移过程:实时监控迁移过程,及时发现和处理问题
- 验证迁移结果:迁移后仔细验证系统功能,确保迁移成功
5.2.2 迁移注意事项
- 数据一致性:确保迁移前后数据一致
- 性能影响:考虑迁移对系统性能的影响
- 网络带宽:确保网络带宽满足迁移需求
- 应用兼容性:确保应用与目标环境兼容
- 权限管理:迁移后检查用户权限是否正确
- 数据验证:迁移后进行数据验证,确保数据完整性
5.3 最佳实践建议
基于实际经验,提供DM数据库升级与迁移的最佳实践。
5.3.1 升级最佳实践
5.3.2 迁移最佳实践
- 提前规划:制定详细的迁移计划,包括时间、步骤、风险等
- 数据备份:在迁移前备份所有数据,确保数据安全
- 测试验证:在测试环境进行迁移测试,确保迁移过程顺利
- 监控过程:实时监控迁移过程,及时发现和处理问题
- 验证结果:迁移后仔细验证系统功能,确保迁移成功
5.3.3 工具使用最佳实践
- 使用官方工具:使用DM官方提供的升级和迁移工具
- 工具版本:确保工具版本与数据库版本匹配
- 工具参数:正确配置工具参数,确保工具正常运行
- 工具日志:查看工具日志,了解工具运行情况
- 工具测试:在测试环境测试工具,确保工具正常工作
5.3.4 风险控制最佳实践
- 风险评估:评估升级和迁移的风险,制定应对措施
- 回滚计划:制定详细的回滚计划,以应对升级或迁移失败
- 业务影响:评估升级和迁移对业务的影响,减少业务中断
- 沟通协调:与相关部门沟通协调,确保升级和迁移顺利进行
- 应急处理:准备应急处理方案,以应对突发情况
5.3.5 持续优化最佳实践
- 建立升级和迁移的优化机制
- 定期进行升级和迁移的优化
- 学习升级和迁移技术
- 分享升级和迁移经验
- 持续改进升级和迁移能力
本文档风哥教程参考DM官方文档《DM8升级指南》、《DM8迁移工具使用手册》等资料编写,。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
