1. 首页 > 国产数据库教程 > 达梦DM教程 > 正文

DM教程FG027-达梦数据库升级与迁移实战

内容简介:本文档风哥主要介绍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 数据迁移脚本

#!/bin/bash
# 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 升级脚本

#!/bin/bash
# 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 升级最佳实践

风哥提示:在进行DM数据库升级时,要提前备份数据,在测试环境验证,选择合适的时间,准备回滚方案,监控升级过程,验证升级结果,确保升级成功。

5.3.2 迁移最佳实践

  • 提前规划:制定详细的迁移计划,包括时间、步骤、风险等
  • 数据备份:在迁移前备份所有数据,确保数据安全
  • 测试验证:在测试环境进行迁移测试,确保迁移过程顺利
  • 监控过程:实时监控迁移过程,及时发现和处理问题
  • 验证结果:迁移后仔细验证系统功能,确保迁移成功

5.3.3 工具使用最佳实践

  • 使用官方工具:使用DM官方提供的升级和迁移工具
  • 工具版本:确保工具版本与数据库版本匹配
  • 工具参数:正确配置工具参数,确保工具正常运行
  • 工具日志:查看工具日志,了解工具运行情况
  • 工具测试:在测试环境测试工具,确保工具正常工作

5.3.4 风险控制最佳实践

  • 风险评估:评估升级和迁移的风险,制定应对措施
  • 回滚计划:制定详细的回滚计划,以应对升级或迁移失败
  • 业务影响:评估升级和迁移对业务的影响,减少业务中断
  • 沟通协调:与相关部门沟通协调,确保升级和迁移顺利进行
  • 应急处理:准备应急处理方案,以应对突发情况

5.3.5 持续优化最佳实践

  • 建立升级和迁移的优化机制
  • 定期进行升级和迁移的优化
  • 学习升级和迁移技术
  • 分享升级和迁移经验
  • 持续改进升级和迁移能力

本文档风哥教程参考DM官方文档《DM8升级指南》、《DM8迁移工具使用手册》等资料编写,。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息