从达梦数据库到Oracle数据库的性能测试数据迁移和导入优化
为了在同样的数据基础上对比达梦数据库和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数据库的性能测试数据迁移和导入优化的更多相关文章
- mysql数据库及oracle数据库的定时备份
一.oracle数据库备份bat文件 @echo off md "%date:~0,10%" cd "%date:~0,10%" echo exp 用户名/密码 ...
- sybase数据库和oracle数据库中字段中含有换行符的解决办法
最近在做数据库从sybase到oracle的迁移工作,sybase数据库表bcp导出后,通过sqlldr导入到oracle数据库,然后oracle数据库通过spool按照sybase数据库bcp的格式 ...
- 用EF的三种方式(SqlServer数据库和Oracle数据库)
SqlServer数据库 1.DB First 现有DB,生成edmx文件 贴一下生成的model //------------------------------------------------ ...
- 初识 数据库及Oracle数据库
一.数据库基本概念二.数据库举例三.Oracle特点四.Oracle版本五.安装Oracle注意事项六.SQL简介七.Select语句 一.数据库基本概念 数据库(Database,DB)数据库管理系 ...
- mysql数据库和oracle数据库之间互相导入备份
把从Oracle数据库导出的数据导入到MySql数据库中1. 使用默认的结束符号导入到MySql数据库中: LOAD DATA LOCAL INFILE 'd:/oracle.txt' IGNO ...
- Java连接MySQL数据库和Oracle数据库并进行简单的SQL操作的一次尝试
MySQL和Oracle的JDBC的maven dependency如下: <!-- mysql --> <dependency> <groupId>mysql&l ...
- 转:ACCESS数据库转ORACLE数据库分享
来源: 作者:zz 网上有很多文章介绍access转oracle数据库的方法,本人都尝试了,不是很成功,列举一下,后来人不必盲目试了,基本不成功: 1.Access-->excel-->P ...
- servlet连接mysql数据库和oracle数据库
连接mysql数据库 package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.P ...
- MySQL数据库和Oracle数据库的区别
Mysql数据库 由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司.是一种中小型的关系型数据库. MySQL 数据库体积小.速度快.总体拥有成本低.开放源代码,其有着广泛的应用,一般中 ...
- mysql数据库与oracle数据库的切换
1.从mysql数据库中导出ambition(数据库名)结构和数据的ambition.sql文件. 2.将ambition.sql用Power Designer转换成mysql数据模型. 给模型起个名 ...
随机推荐
- ArcGIS如何自动获得随机采样点?
本文介绍基于ArcMap软件,实现在指定区域自动生成随机点的方法. 在GIS应用中,我们时常需要在研究区域内进行地理数据的随机采样:而采样点的位置往往需要在结合实际情况的前提下,用计算机随机生 ...
- 深入理解 python 虚拟机:花里胡哨的魔术方法
深入理解 python 虚拟机:花里胡哨的魔术方法 在本篇文章当中主要给大家介绍在 cpython 当中一些比较花里胡哨的魔术方法,以帮助我们自己实现比较花哨的功能,当然这其中也包含一些也非常实用的魔 ...
- LeetCode刷题,代码随想录算法训练营Day3| 链表理论基础 203.移除链表元素 707.设计链表 206.反转链表
链表理论基础 链表是通过指针串联在一起的线性结构,每个节点由一个数据域和一个指针域构成. 链表的类型 单链表 双链表 有两个指针域,一个指向下一个节点,一个指向上一个节点,既可以向前查询也可以向后查询 ...
- python 学习之----time模块
# timeimport time# # #1 获取时间戳# # print(time.time())# # #2 获取格式化时间对象# # #获取默认参数是当前系统时间戳# # print(time ...
- 深入理解注解驱动配置与XML配置的融合与区别
摘要:本文旨在深入探讨Spring框架的注解驱动配置与XML配置,揭示两者之间的相似性与差异. 本文分享自华为云社区<Spring高手之路2--深入理解注解驱动配置与XML配置的融合与区别> ...
- kafka的安装和基本操作
基本概念 简介 Kafka 最初是由 LinkedIn 即领英公司基于 Scala 和 Java 语言开发的分布式消息发布-订阅系统,现已捐献给Apache 软件基金会.其具有高吞吐.低延迟的特性,许 ...
- 基于uniapp+vite4+vue3搭建跨端项目|uni-app+uview-plus模板
最近得空学习了下uniapp结合vue3搭建跨端项目.之前也有使用uniapp开发过几款聊天/仿抖音/后台管理等项目,但都是基于vue2开发.随着vite.js破局出圈,越来越多的项目偏向于vue3开 ...
- 根据模板动态生成word(一)使用freemarker生成word
@ 目录 一.准备模板 1.创建模板文件 2.处理模板 2.1 处理普通文本 2.2 处理表格 2.3 处理图片 二.项目代码 1.引入依赖 2.生成代码 三.验证生成word 一.准备模板 1.创建 ...
- TiDB简述及TiKV的数据结构与存储
1 概述 TiDB 是 PingCAP 公司自主设计.研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical ...
- .NetCore3.1+微服务架构技术栈
目标 目标系统架构演变,单体-分布式-微服务-中台 微服务架构核心解决,横向对比1.0.2.0.3.0 践行微服务架构,全组件解读! 也谈中台 单体架构Monolithic 单体应用时代:应用程序就是 ...