红色框1中是选择所要导入的数据库路径和名字,点击椭圆中的文件夹那个按钮,选择dmp文件存放的路径。
红色框2中的import按钮,就开始进行数据库导入
首先看到的日志是:
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Export file created by EXPORT:V09.02.00 via conventional path Warning: the objects were exported by LROM, not by you import done in US7ASCII character set and AL16UTF16 NCHAR character set import server uses ZHS16GBK character set (possible charset conversion) export client uses ZHS16GBK character set (possible charset conversion)
可以看到一些字符集的问题,这些日志头过后,可以看到导入一些数据信息。导入一会过后,报了一个:IMP-00032: SQL 语句超过缓冲区长度 的错误:
等导入程序终止之后,开始修改上图中的红框3中缓冲区的大小。
进行再次导入出现这个错误:IMP-00008: 导出文件中出现无法识别的语句。
这个在网上搜索说与缓冲区有关,不知道是否这样,我把自己的缓冲区设置到20个G也会出现这个问题。
于是问一个同事说:尽量在linux下操作
于是我用ssh登录到linux系统,用su命令切换到oracle用户进行导入数据,使用imp命令:
imp test_imp/xxxxx file=/tmp/ora_data.dmp ignore=y buffer=20480M log=/tmp/20130507.log
test_imp/xxxxx是用户名和密码
file是dmp文件的路径
buffer是设置缓冲区
log是导入只是文件存放的位置
结果还是出现:IMP-00008: 导出文件中出现无法识别的语句 这个错误
所以与操作系统无关,于是我觉得是字符集的问题,下一节讨论修改字符集