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

数据库版本信息

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

导出达梦数据库的数据

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

导入数据到Oracle数据库

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

从达梦数据库到Oracle数据库的性能测试数据迁移和导入优化的更多相关文章

  1. mysql数据库及oracle数据库的定时备份

    一.oracle数据库备份bat文件 @echo off md "%date:~0,10%" cd "%date:~0,10%" echo exp 用户名/密码 ...

  2. sybase数据库和oracle数据库中字段中含有换行符的解决办法

    最近在做数据库从sybase到oracle的迁移工作,sybase数据库表bcp导出后,通过sqlldr导入到oracle数据库,然后oracle数据库通过spool按照sybase数据库bcp的格式 ...

  3. 用EF的三种方式(SqlServer数据库和Oracle数据库)

    SqlServer数据库 1.DB First 现有DB,生成edmx文件 贴一下生成的model //------------------------------------------------ ...

  4. 初识 数据库及Oracle数据库

    一.数据库基本概念二.数据库举例三.Oracle特点四.Oracle版本五.安装Oracle注意事项六.SQL简介七.Select语句 一.数据库基本概念 数据库(Database,DB)数据库管理系 ...

  5. mysql数据库和oracle数据库之间互相导入备份

    把从Oracle数据库导出的数据导入到MySql数据库中1. 使用默认的结束符号导入到MySql数据库中:    LOAD DATA LOCAL INFILE 'd:/oracle.txt' IGNO ...

  6. Java连接MySQL数据库和Oracle数据库并进行简单的SQL操作的一次尝试

    MySQL和Oracle的JDBC的maven dependency如下: <!-- mysql --> <dependency> <groupId>mysql&l ...

  7. 转:ACCESS数据库转ORACLE数据库分享

    来源: 作者:zz 网上有很多文章介绍access转oracle数据库的方法,本人都尝试了,不是很成功,列举一下,后来人不必盲目试了,基本不成功: 1.Access-->excel-->P ...

  8. servlet连接mysql数据库和oracle数据库

    连接mysql数据库 package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.P ...

  9. MySQL数据库和Oracle数据库的区别

    Mysql数据库 由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司.是一种中小型的关系型数据库. MySQL 数据库体积小.速度快.总体拥有成本低.开放源代码,其有着广泛的应用,一般中 ...

  10. mysql数据库与oracle数据库的切换

    1.从mysql数据库中导出ambition(数据库名)结构和数据的ambition.sql文件. 2.将ambition.sql用Power Designer转换成mysql数据模型. 给模型起个名 ...

随机推荐

  1. python环境的安装与设置和oneforall的安装与使用

    下载python: https://www.python.org/downloads/windows/ 安装python 如果不需要修改路径,下面两个√打开后,点击上面的install now 也可以 ...

  2. 代码随想录算法训练营Day11 栈与队列|20. 有效的括号  1047. 删除字符串中的所有相邻重复项  150. 逆波兰表达式求值

    20.有效的括号 题目链接:20.有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合 ...

  3. Java的jps命令使用详解

    jps命令简介 jps(Java Virtual Machine Process Status Tool)是JDK提供的一个可以列出正在运行的Java虚拟机的进程信息的命令行工具,它可以显示Java虚 ...

  4. 【Python入门教程】获取图片可视化精准定位(逆地理编码)

    ​ 使用exifread库读取图片的经纬度信息(WGS84坐标) 使用高德开放API将经纬度转为高德底图经纬度,并输出具体位置 使用folium库,以高德底图为基准,在网页上可视化显示地图和兴趣点 一 ...

  5. 全面的ASP.NET Core Blazor简介和快速入门

    前言 因为咱们的MongoDB入门到实战教程Web端准备使用Blazor来作为前端展示UI,本篇文章主要是介绍Blazor是一个怎样的Web UI框架,其优势和特点在哪?并带你快速入门上手ASP.NE ...

  6. instance norm

    与Batch Norm加快计算收敛不同, IN是在[1]中提出的,目的是提高style transfer的表现. 计算如下: \[IN(x)=\gamma (\frac{x-\mu(x)}{\sigm ...

  7. 基于uni-app+vue3渲染markdown格式|uniapp软键盘顶起问题解决方案

    前些时候有给大家分享一篇uni-app+vite4+uview-plus搭建跨端项目.今天主要分享下在uniapp中渲染markdown语法及uniapp中软键盘弹起,页面tabbar或顶部自定义na ...

  8. AI室内设计:提升效率、消除沟通障碍,满足客户需求

    前言 免费AI绘图工具:https://www.topgpt.one 随着人工智能(AI)技术的不断发展,室内设计行业也开始受益于这一技术的应用.其中,AI绘画工具在室内设计中的应用正日益受到关注.这 ...

  9. kafka学习笔记01

      类似于京东商城这种电商系统,一般会在前端页面进行埋点记录仪用户的行为数据,包括浏览.点赞.收藏.评论等.这些行为会被记录到日志服务器中,使用Flume进行采集,然后传入Hadoop中.   Flu ...

  10. 一文读懂什么是AIGC?

    目录 AIGC概念 AIGC发展历史 在早期萌芽阶段(1950s~1990s) 在沉淀累积阶段(1990s~2010s) 在快速发展阶段(2010s~至今) ChatGPT AIGC能做什么? 电子商 ...