处理单机双oracle版本((9i与10g)无法正常imp的问题

2010-03-11  金鑫 

   最近总是处理一些很少遇到的问题,测试人员A部署环境需要oracle 9i的数据库环境,惟独一台NT的测试机上有个oracle 9i,结果一问负责该机器的测试工程师B,该9i数据库荒废很久了,还没来得及卸。

    部署环境与重现问题时间很急(现场的项目问题),找台机器重装9i不现实,只能想办法解决,过程去到两大问题,这里分享下,方法不一定唯一,但是奏效。

    遇到问题1:sqlplus冲突
    maybe高版本想低版本向下兼容的特点或又安装先后的原因,命令行使用imp,系统默认吊起的是sqlplus 10.x.x的版本,由于现场项目反馈的dmp文件由9i导出,提示EXPORT:V9.x.x创建的导出文件 的信息,导入时提示转换失败。

    处理办法:修改环境变量中path项,将X:\oracle\ora92\bin 提前于X:\oracle10g\product\10.2.0\db_1\BIN

    遇到问题2:listener冲突
    由于安装时,先后版本的oracle的监听器都是监听系统的1521端口,使用sqlplus导入时,会默认使用10g的监听器来引导数据库实例,导致新创建的导入schema无法登陆成功,提示“ORA-12560: TNS: 协议适配器错误”。
     此时在服务中停止10g的listener和数据库,可能导致sqlplus无法引导导入。

    处理办法:
    1、使用oracle9i的Oracle Net Manager(ONM)将9i数据的listener监控端口配置为1522
    2、然后配置一个新的 服务命名
    3、导入时:
       imp file=x:\xxx.dmp fromuser=user touser=user ignore=y; 
       引导sqlplus后,用户名输入:user@服务命名名称
    4、导入9i成功,且不影响10g数据正常运行

最后注意,数据库使用连接信息为jdbc:oracle:thin:@ip:1522:sid
584°/5815 人阅读/3 条评论 发表评论

王恩建  2010-03-11

楼主高手哦


焦爱玲  2010-03-12

测试工程师还要知道这些?强


王恩建  2010-03-12

焦爱玲: 测试工程师还要知道这些?强
楼主多才多艺,难道能歌就不能善舞了么。


登录 后发表评论