最近有个项目,收到时是10g的dmp文件。
按照平常的做法是:imp user/user file=xxx.dmp
通过正常的imp命令执行,出现如下错误:
进行导入表操作,提示:
IMP-00010: 不是有效的导出文件, 头部验证失败
IMP-00000: 未成功终止导入
通过查询得知:
oracle数据库可以低版本导出,导入高版本。
oracle相同版本导入导出。
方法一:
有方法说是用PL/SQL导出pde格式的文件,再导入。此方法我请一位同事试过,他说是报错,导不出来。
方法二:
PL/SQL导出sql文件,然后我这边用PL/SQL导入。
经测试,依旧是文件头无法识别。
方法三:
修改本机的oracle版本为10g客户端,再用户客户端导入。
经我测试,以失败告终。(也可能是我配置问题)
方法四:
oracle9i客户端连上oracle10g所在的服务器,导出文件。因为此服务器木有外网。之后麻烦这位同事用9i客户端连上帮我导出一份。但这位同事压力太大了,最后不了了之。
方法五:
本机安装oracle10g数据库,大约需要多少个G?。然后我这边再导入10g的dmp文件,然后我再下载个9i客户端,再导出。然后再导入9i测试机。但是oracle整个数据库我是从没装过,一般机器只装客户端,不装整个数据库。主要原因是卡。
方法六:
据说修改头文件能够导入。然后我找到了一篇说是9的两个版本只是编码问题修改,然后就可以了。但似乎并不能使用在10g的dmp文件。
方法七:
刚找到一款工具(ALxcTools),也是通过修改版本。正在测试中。。。
很遗憾的告诉亲们,再一次无情的失败了。
方法八:
下载oracle11g安装文件,安装好后,将dmp导入本机。
根据帅哥提示dblink。其后试验dblink创建语句等:
create public database link conoracle connect to username identified by password
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = tcpip)(PORT = 1521)
)
)
(CONNECT_DATA =(SERVICE_NAME =servicename))
)';
特别注意:在9i连接11g的时候,用户名以及密码会自动转换为大写。在时间使用中务必加英文双引号""。
使用dblink:select *from tablename@conoracle
删除dblink:drop public database link conoracle;
错误集锦:
ORA-01017: invalid username/password; logon denied
1.监听服务没有启动。开始---程序---管理工具---服务,打开服务面板,启动oraclehomexxxlistener服务。
2.database instance服务没有起起来。开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.环境变量问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右键单击我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.
按照平常的做法是:imp user/user file=xxx.dmp
通过正常的imp命令执行,出现如下错误:
进行导入表操作,提示:
IMP-00010: 不是有效的导出文件, 头部验证失败
IMP-00000: 未成功终止导入
通过查询得知:
oracle数据库可以低版本导出,导入高版本。
oracle相同版本导入导出。
方法一:
有方法说是用PL/SQL导出pde格式的文件,再导入。此方法我请一位同事试过,他说是报错,导不出来。
方法二:
PL/SQL导出sql文件,然后我这边用PL/SQL导入。
经测试,依旧是文件头无法识别。
方法三:
修改本机的oracle版本为10g客户端,再用户客户端导入。
经我测试,以失败告终。(也可能是我配置问题)
方法四:
oracle9i客户端连上oracle10g所在的服务器,导出文件。因为此服务器木有外网。之后麻烦这位同事用9i客户端连上帮我导出一份。但这位同事压力太大了,最后不了了之。
方法五:
本机安装oracle10g数据库,大约需要多少个G?。然后我这边再导入10g的dmp文件,然后我再下载个9i客户端,再导出。然后再导入9i测试机。但是oracle整个数据库我是从没装过,一般机器只装客户端,不装整个数据库。主要原因是卡。
方法六:
据说修改头文件能够导入。然后我找到了一篇说是9的两个版本只是编码问题修改,然后就可以了。但似乎并不能使用在10g的dmp文件。
方法七:
刚找到一款工具(ALxcTools),也是通过修改版本。正在测试中。。。
很遗憾的告诉亲们,再一次无情的失败了。
方法八:
下载oracle11g安装文件,安装好后,将dmp导入本机。
根据帅哥提示dblink。其后试验dblink创建语句等:
create public database link conoracle connect to username identified by password
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = tcpip)(PORT = 1521)
)
)
(CONNECT_DATA =(SERVICE_NAME =servicename))
)';
特别注意:在9i连接11g的时候,用户名以及密码会自动转换为大写。在时间使用中务必加英文双引号""。
使用dblink:select *from tablename@conoracle
删除dblink:drop public database link conoracle;
错误集锦:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from <link_name>
用户名用户密码登录失败,我是由于大小写问题造成的。
1.监听服务没有启动。开始---程序---管理工具---服务,打开服务面板,启动oraclehomexxxlistener服务。
2.database instance服务没有起起来。开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.环境变量问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右键单击我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.