当前位置:   article > 正文

从达梦数据库到Oracle数据库的性能测试数据迁移和导入优化

从达梦数据库到Oracle数据库的性能测试数据迁移和导入优化

为了在同样的数据基础上对比达梦数据库和Oracle数据库的业务性能,我们需要将达梦数据库的数据导入到Oracle数据库中。本文将提供一种思路来解决导入过程中遇到的问题及存在问题记录。

数据库版本信息

  • 源数据库:达梦数据库(DM) V8
  • 目标数据库:Oracle数据库 V11.2.0.4

导出达梦数据库的数据

首先,将达梦数据库中的数据导出为 .dmp 文件格式。

导入数据到Oracle数据库

在完成达梦数据库的数据导出后,我们将尝试将数据导入到目标Oracle数据库中。然而,直接使用impdp命令导入时出现以下错误:

  1. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
  2. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  3. ORA-39001: invalid argument value
  4. ORA-39000: bad dump file specification
  5. ORA-31619: invalid dump file "/u01/app/oracle/admin/orcl/dpdump/Vxxx_XXX_0816.dmp"

为了解决这个问题,我们可以尝试使用达梦数据库的迁移工具将数据导入到Oracle数据库。然而,根据反馈,有两个表和300多个视图导入失败,导致该数据库也不可用。

为了解决这个问题,我们将采取以下步骤:

1. 在功能测试环境中导出迁移后的Oracle数据库所缺失的视图和表。

  • 导出视图:使用expdp命令导出视图数据。命令示例如下:
  1. expdp $username/$passwd@$ORACLE_SID DIRECTORY=DATA_PUMP_DIR DUMPFILE=$dumpfile.dmp LOGFILE=$dumpfile.log SCHEMAS=$schemas INCLUDE=VIEW
  2. 请替换以下参数:
  3. $username:数据库用户名
  4. $passwd:数据库用户密码
  5. $ORACLE_SID:数据库实例名
  6. $dumpfile:导出的文件名(与 $schemas 相同)
  7. $schemas:需要导出的用户名
  • 导出多表:使用exp命令导出多个表的数据。命令示例如下:
  1. exp $username/$passwd@$ORACLE_SID file=/$file_path/$file_name.dmp tables=table1,table2,...
  2. 请替换以下参数:
  3. $username:数据库用户名
  4. $passwd:数据库用户密码
  5. $ORACLE_SID:数据库实例名
  6. $file_path:导出文件的路径
  7. $file_name:导出文件名称
  8. tables=table1,table2,...:要导出的表名列表,以逗号分隔

2. 将导出的视图和表数据导入到迁移后的Oracle数据库中。

  • 导入视图:使用impdp命令导入视图数据。命令示例如下:
  1. impdp $username/$passwd@$ORACLE_SID DIRECTORY=DATA_PUMP_DIR DUMPFILE=$dumpfile.dmp LOGFILE=$dumpfile.log REMAP_SCHEMA=$fromUser:$toUser
  2. 请替换以下参数:
  3. $username:数据库用户名
  4. $passwd:数据库用户密码
  5. $ORACLE_SID:数据库实例名
  6. $dumpfile:导入的文件名
  7. $fromUser:导出数据库用户名
  8. $toUser:导入数据库用户名
  • 导入多表:使用imp命令导入多个表的数据。命令示例如下:
  1. imp $username/$passwd file=/$file_path/$file_name.dmp log=/$log_path/$log_name.log fromuser=$fromuser
  2. 请替换以下参数:
  3. $username:数据库用户名
  4. $passwd:数据库用户密码
  5. $file_path:导入文件的路径
  6. $file_name:导入文件名称
  7. $log_path:导入日志的路径
  8. $log_name:导入日志名称
  9. $fromuser:导出数据库用户名

通过以上步骤,将导入失败的视图和表从功能测试环境中导出,并将其导入到迁移后的Oracle数据库中。

但是,启动应用服务,仍存在缺失相关视图或语法方面的报错。尝试先将导出的视图和表导入新建的数据库用户,再导入从达梦服务导出的数据库,缺失相关视图或语法方面的问题仍然存在。

根据Oracle数据可以成功导入达梦,而达梦导入Oracle却存在报错。足以说明:达梦做到去兼容Oracle,但Oracle却没去兼容达梦。

考虑到再继续付出时间、精力去研究导入数据库启动服务失败的问题,不一定能够解决该问题,且产出比较低。只好在达梦数据库重造性能测试数据。

总结

本文介绍了在对比达梦数据库和Oracle数据库的业务性能时,如何将达梦数据库的数据导入到Oracle数据库中。我们通过导出.dmp文件并利用达梦数据库的迁移工具,进行数据库的导入。但由于Oracle未对达梦进行兼容适配,导致最终的结果还是失败。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/935578
推荐阅读
相关标签
  

闽ICP备14008679号