Part01-基础概念与理论知识
1.1 升级迁移概述
DM数据库的升级迁移是指将数据库从低版本升级到高版本,或从其他数据库迁移到DM数据库的过程。升级迁移是数据库生命周期中的重要环节,对于确保数据库系统的安全性、稳定性和性能具有重要意义。
1.2 升级类型与特点
DM数据库的升级类型包括:
- 小版本升级:在同一主版本内进行的升级,如从DM8.1.1.100升级到DM8.1.1.200。
- 大版本升级:跨主版本的升级,如从DM7升级到DM8。
- 补丁升级:安装数据库补丁,修复已知问题。
1.3 迁移类型与特点
DM数据库的迁移类型包括:
- 同构迁移:从DM数据库迁移到DM数据库,如从DM7迁移到DM8。
- 异构迁移:从其他数据库迁移到DM数据库,如从Oracle、MySQL等迁移到DM8。
- 跨平台迁移:从不同操作系统平台迁移,如从Windows迁移到Linux。
Part02-生产环境规划与建议
2.1 升级迁移策略制定
制定合理的升级迁移策略是确保升级迁移成功的关键。升级迁移策略应包括以下内容:
- 升级迁移目标:明确升级迁移的目标版本和迁移方向。
- 升级迁移范围:确定升级迁移的范围,包括数据库实例、应用系统等。
- 升级迁移时间:选择业务低峰期进行升级迁移,减少对业务的影响。
- 升级迁移工具:选择合适的升级迁移工具,如dmupgradectl、DTS等。
- 升级迁移流程:制定详细的升级迁移流程,确保升级迁移过程的顺利进行。
- 回滚方案:制定回滚方案,在升级迁移失败时能够快速回滚到原状态。
2.2 升级迁移风险评估
升级迁移风险评估应考虑以下因素:
- 数据一致性风险:升级迁移过程中可能出现数据不一致的情况。
- 业务中断风险:升级迁移过程中可能导致业务中断。
- 性能风险:升级迁移后可能出现性能下降的情况。
- 兼容性风险:升级迁移后可能出现应用系统兼容性问题。
风哥提示:在升级迁移前,应充分评估风险,并制定相应的风险应对措施。
Part03-生产环境项目实施方案
3.1 升级迁移准备
升级迁移准备应包括以下内容:
- 备份数据库:在升级迁移前,应备份数据库,确保数据安全。
- 检查数据库状态:检查数据库的状态,确保数据库运行正常。
- 检查系统环境:检查系统环境,确保系统环境满足升级迁移的要求。
- 准备升级迁移工具:准备必要的升级迁移工具,如dmupgradectl、DTS等。
- 测试升级迁移:在测试环境中进行升级迁移测试,验证升级迁移方案的有效性。
3.2 升级迁移实施
升级迁移实施应按照以下步骤进行:
- 停止应用系统:在升级迁移前,应停止相关的应用系统。
- 停止数据库服务:停止数据库服务,准备进行升级迁移。
- 执行升级迁移:使用升级迁移工具执行升级迁移操作。
- 启动数据库服务:升级迁移完成后,启动数据库服务。
- 启动应用系统:数据库服务启动后,启动相关的应用系统。
3.3 升级迁移验证
升级迁移验证应包括以下内容:
- 检查数据库状态:检查数据库的状态,确保数据库运行正常。
- 检查数据一致性:检查数据的一致性,确保数据没有丢失或损坏。
- 检查应用系统:检查应用系统的运行情况,确保应用系统能够正常访问数据库。
- 检查性能:检查数据库的性能,确保性能没有下降。
Part04-生产案例与实战讲解
4.1 数据库升级实战
以下是DM数据库升级的具体操作步骤:
4.1.1 小版本升级
# 检查当前版本
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
——————————————————————————–
DM Database Server x64 V8.1.1.100
DB Version: 0x7000a
# 输出信息
1 rows got
# 停止数据库服务
[dmdba@fgedu ~]$ /dm/app/bin/dmserver stop /dm/fgdata/fgedudb/dm.ini
# 执行升级
[dmdba@fgedu ~]$ /dm/app/bin/dmupgradectl upgrade /dm/fgdata/fgedudb/dm.ini
# 输出信息
[2024-01-01 10:00:00] [INFO] 开始升级数据库…
[2024-01-01 10:00:00] [INFO] 检查数据库版本…
[2024-01-01 10:00:00] [INFO] 备份数据库…
[2024-01-01 10:00:00] [INFO] 执行升级脚本…
[2024-01-01 10:00:00] [INFO] 升级完成…
# 启动数据库服务
[dmdba@fgedu ~]$ /dm/app/bin/dmserver /dm/fgdata/fgedudb/dm.ini &
# 验证升级结果
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
——————————————————————————–
DM Database Server x64 V8.1.1.200
DB Version: 0x7000b
# 输出信息
1 rows got
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
——————————————————————————–
DM Database Server x64 V8.1.1.100
DB Version: 0x7000a
# 输出信息
1 rows got
# 停止数据库服务
[dmdba@fgedu ~]$ /dm/app/bin/dmserver stop /dm/fgdata/fgedudb/dm.ini
# 执行升级
[dmdba@fgedu ~]$ /dm/app/bin/dmupgradectl upgrade /dm/fgdata/fgedudb/dm.ini
# 输出信息
[2024-01-01 10:00:00] [INFO] 开始升级数据库…
[2024-01-01 10:00:00] [INFO] 检查数据库版本…
[2024-01-01 10:00:00] [INFO] 备份数据库…
[2024-01-01 10:00:00] [INFO] 执行升级脚本…
[2024-01-01 10:00:00] [INFO] 升级完成…
# 启动数据库服务
[dmdba@fgedu ~]$ /dm/app/bin/dmserver /dm/fgdata/fgedudb/dm.ini &
# 验证升级结果
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
——————————————————————————–
DM Database Server x64 V8.1.1.200
DB Version: 0x7000b
# 输出信息
1 rows got
4.2 数据迁移实战
以下是使用DTS工具进行数据迁移的具体操作步骤:
4.2.1 使用DTS工具迁移数据
# 启动DTS工具
[dmdba@fgedu ~]$ /dm/app/dts/dts
# 配置源数据库连接
源数据库类型:Oracle
主机名:192.168.1.100
端口:1521
服务名:ORCL
用户名:system
密码:system
# 配置目标数据库连接
目标数据库类型:DM8
主机名:192.168.1.101
端口:5236
数据库名:fgedudb
用户名:SYSDBA
密码:SYSDBA
# 选择迁移对象
选择需要迁移的表、视图、存储过程等对象
# 执行迁移
点击”开始迁移”按钮,执行数据迁移操作 风哥提示:
# 查看迁移结果
迁移完成后,查看迁移结果,确保迁移成功
[dmdba@fgedu ~]$ /dm/app/dts/dts
# 配置源数据库连接
源数据库类型:Oracle
主机名:192.168.1.100
端口:1521
服务名:ORCL
用户名:system
密码:system
# 配置目标数据库连接
目标数据库类型:DM8
主机名:192.168.1.101
端口:5236
数据库名:fgedudb
用户名:SYSDBA
密码:SYSDBA
# 选择迁移对象
选择需要迁移的表、视图、存储过程等对象
# 执行迁移
点击”开始迁移”按钮,执行数据迁移操作 风哥提示:
# 查看迁移结果
迁移完成后,查看迁移结果,确保迁移成功
4.3 跨平台迁移实战
以下是跨平台迁移的具体操作步骤:
4.3.1 从Windows迁移到Linux
# 在Windows平台备份数据库
C:\dm\app\bin>dmrman
RMAN> backup database ‘C:\dm\fgdata\fgedudb\dm.ini’ full backupset ‘C:\dm\backup\full_backup’
# 输出信息
backup database ‘C:\dm\fgdata\fgedudb\dm.ini’ full backupset ‘C:\dm\backup\full_backup’
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Begin backup database…
Check backupset ‘C:\dm\backup\full_backup’
Backup set path: C:\dm\backup\full_backup
Backing up database (C:\dm\fgdata\fgedudb\dm.ini)…
[Percent:100%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
Backup successfully!
time used: 00:00:00.847
# 将备份文件传输到Linux平台
C:\dm\backup>pscp full_backup dmdba@192.168.1.101:/dm/backup/
# 在Linux平台恢复数据库
[dmdba@fgedu ~]$ /dm/app/bin/dmrman 学习交流加群风哥微信: itpux-com
RMAN> restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup’;
# 输出信息
restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup’;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Check backupset ‘/dm/backup/full_backup’
Backupset[/dm/backup/full_backup] is valid.
Restore database start…
[Percent:100%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
Restore database successfully!
time used: 00:00:00.652
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ update db_magic;
# 输出信息
recover database ‘/dm/fgdata/fgedudb/dm.ini’ update db_magic;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Update db_magic start…
Update db_magic successfully!
time used: 00:00:00.012
# 启动数据库服务
[dmdba@fgedu ~]$ /dm/app/bin/dmserver /dm/fgdata/fgedudb/dm.ini &
# 验证迁移结果
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
——————————————————————————–
DM Database Server x64 V8.1.1.200
DB Version: 0x7000b
# 输出信息
1 rows got
C:\dm\app\bin>dmrman
RMAN> backup database ‘C:\dm\fgdata\fgedudb\dm.ini’ full backupset ‘C:\dm\backup\full_backup’
# 输出信息
backup database ‘C:\dm\fgdata\fgedudb\dm.ini’ full backupset ‘C:\dm\backup\full_backup’
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Begin backup database…
Check backupset ‘C:\dm\backup\full_backup’
Backup set path: C:\dm\backup\full_backup
Backing up database (C:\dm\fgdata\fgedudb\dm.ini)…
[Percent:100%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
Backup successfully!
time used: 00:00:00.847
# 将备份文件传输到Linux平台
C:\dm\backup>pscp full_backup dmdba@192.168.1.101:/dm/backup/
# 在Linux平台恢复数据库
[dmdba@fgedu ~]$ /dm/app/bin/dmrman 学习交流加群风哥微信: itpux-com
RMAN> restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup’;
# 输出信息
restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup’;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Check backupset ‘/dm/backup/full_backup’
Backupset[/dm/backup/full_backup] is valid.
Restore database start…
[Percent:100%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
Restore database successfully!
time used: 00:00:00.652
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ update db_magic;
# 输出信息
recover database ‘/dm/fgdata/fgedudb/dm.ini’ update db_magic;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Update db_magic start…
Update db_magic successfully!
time used: 00:00:00.012
# 启动数据库服务
[dmdba@fgedu ~]$ /dm/app/bin/dmserver /dm/fgdata/fgedudb/dm.ini &
# 验证迁移结果
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$version;
BANNER
——————————————————————————–
DM Database Server x64 V8.1.1.200
DB Version: 0x7000b
# 输出信息
1 rows got
学习交流加群风哥QQ113257174
Part05-风哥经验总结与分享
5.1 升级迁移最佳实践
根据多年的数据库维护经验,以下是一些升级迁移的最佳实践:
- 在升级迁移前,应充分备份数据库,确保数据安全。
- 在测试环境中进行升级迁移测试,验证升级迁移方案的有效性。
- 选择业务低峰期进行升级迁移,减少对业务的影响。
- 制定详细的升级迁移流程,确保升级迁移过程的顺利进行。
- 制定回滚方案,在升级迁移失败时能够快速回滚到原状态。
- 在升级迁移后,应进行全面的验证,确保数据库运行正常。
- 建立完善的升级迁移文档,记录升级迁移过程和问题处理过程。
5.2 常见问题与解决方案
在升级迁移过程中,经常会遇到以下问题,以下是相应的解决方案:
5.2.1 升级失败
原因:数据库状态异常、升级工具版本不匹配、系统环境不满足要求等。
解决方案:检查数据库状态、使用正确版本的升级工具、确保系统环境满足要求。
5.2.2 迁移失败
原因:源数据库连接失败、目标数据库连接失败、迁移对象不存在等。
解决方案:检查源数据库和目标数据库的连接、确保迁移对象存在。
5.2.3 性能下降
原因:升级迁移后参数配置不当、统计信息过期等。
解决方案:优化参数配置、更新统计信息。
5.2.4 应用系统兼容性问题
原因:应用系统使用了不兼容的SQL语法或特性。
解决方案:修改应用系统代码,使用兼容的SQL语法或特性。
更多视频教程www.fgedu.net.cn
更多学习教程公众号风哥教程itpux_com
from DB视频:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
