事情是这样的:
有个用户之前用的别的公司给做的系统,数据库用的是oracle,现在用我们的系统,数据库是mysql,用户想把之前的数据导入到现在的系统中。对方提供给了我.dmp的数据库文件和导出的结构带数据的.sql文件,于是就有了今天的一番研究。
因为我并没有使用过oracle数据库,所以我计划分步走:
第一步,安装oracle,还原数据;
第二步,把oracle转为mysql;
第三步,把原表结构的mysql数据,经过取舍,插入到现在的表结构的mysql中。
过程是这样的:
- 我首先尝试在本地电脑安装企业版Oracle数据库,尝试两次都安装失败。
- 然后又尝试使用第三方工具PowerDesigner试图在不安装oracle的情况下直接将sql文件转为mysql,只带表结构不带数据的情况下可以将oracle建表脚本转为mysql,但是仍有语法兼容问题,且不带数据转换并没有太大意义,所以就放弃这一方案。
- 回到开始,继续研究安装oracle,查资料发现了oracle便捷版,下载后安装成功,研究将银行提供的.dmp文件导入数据库的方法,最后导入流程研究通,导入了数据库文件。
主要步骤:
- 安装oracle便捷版,版本为11.2.0.2,安装包的大小为312M,我是从官网下载的。安装过程基本就是下一步的过程,中间有一步要设置一下system账号的密码,就不赘述了。
- 安装完成后,桌面上有一个下图箭头所指的图标,打开后是一个本地的网页,这个相当于一个可视化的oracle的一个操作平台,首先创建一个新的表空间,写好用户名密码并记住,后面会用到。
- 然后打开cmd窗口,输入
sqlplus / as sysdba
,注意空格不能少。正常的话,这时候就以管理员的身份登录数据库成功了。然后执行grant dba to your_user_name
给上面创建的用户赋予管理员权限,这个地方之所以要给用户赋予管理员权限,是因为后面导入数据库文件的时候需要,否则会报错。
- 然后再打开一个cmd窗口,输入命令:
imp 数据库用户名/密码@数据库实例名 file=dmp文件路径 full=y
,回车,等待命令执行完毕即可。
- 在未导入数据库文件之前,我用navicat连接创建的表空间,可以连上,只是没有我的目的表(抱歉忘记展开了):
导入数据之后,是这样的,那些表已经导入进去了:
这样,就完成了Oracle数据库文件的还原过程。
接下来,就是要把Oracle数据库转换为Mysql了…