导入语句imp sino/sino@dev file=D:\axa_cert.dmp full=y
在运行-》cmd执行上述语句出现如下错误:
IMP-00058: 遇到 ORACLE 错误 12154
ORA-12154: TNS: 无法解析指定的连接标识符
IMP-00000: 未成功终止导入在cmd下运行:sqlplus sino/sino@dev能连接到数据库
执行 exp sino/sino@dev file=D:\axa_cert_exp.dmp 也是成功的
注册表中的ORACLE/HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1/ORACLE_SID为dev
我用当前实例导入的方法是正确的:如imp sino/sino file=D:\axa_cert.dmp full=y
就默认导入dev,但是不能指定sid导入,如改成imp sino/sino@uat file=D:\axa_cert.dmp full=y
或imp sino/sino@dev file=D:\axa_cert.dmp full=y就报上述错误
数据库中是有实例dev和uat的,sqlplus都能通。dev下sino的权限是:
角色     管理选项   默认值 
CONNECT  N            Y 
DBA      N            Y 
EXP_FULL_DATABASE Y   Y 
IMP_FULL_DATABASE Y   Y 操作都是在本地进行的,数据库安装在本机,年前执行导入语句是没问题的,过完年后过来就出现了上述问题
才搜索引擎上查了很多,都没见我这种情况,请求高手支援

解决方案 »

  1.   

    补充:oracle为10g,导入的数据也是10G的
      

  2.   

    SQLPLUS不能代表TNSNAME一定通过,先TNSPING你的DEV 看是否听过
    CMD下运行 :TNSPING DEV
      

  3.   

    能ping通
    TNSPING DEV
    已使用的参数文件:
    E:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
    已使用 TNSNAMES 适配器来解析别名
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = MICROSOF
    -75DC5C)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = uat)
    ))
    OK (20 毫秒)
      

  4.   

    sino/sino@dev 中的 dev 并不是 oracle_sid,而是定义在 tnsname.ora 中的别名。从 tnsping dev 的结果看,dev 别名指的是 uat 实例(SERVICE_NAME = uat)。如果要将数据导入指定的实例中,在本机上可以通过修改 ORACLE_SID 环境变量实现。
    导入 dev 实例关联的数据库
    c:\> set ORACLE_SID=dev
    c:\> imp sino/sino ...
    导入 uat 实例关联的数据库
    c:\> set ORACLE_SID=uat
    c:\> imp ...或者,使用 netmgr 在 tnsname.ora 上分别为这两个实例添加别名,通过别名访问它们(当然需要确保启动侦听器)。
      

  5.   

    dos下先指定实例
    set oracle_sid=dev (linux export ORACLE_SID=dev)imp sino/sino@dev file=D:\axa_cert.dmp full=y ignore=y
      

  6.   

    各位大大,我试了如下命令:
    set oracle_sid=dev
    imp sino/sino file=D:\axa_cert.dmp full=y ignore=y
    是可以导入成功的,即先设置oracle_sid,再导入
    如果执行如下命令:
    imp sino/sino@dev file=D:\axa_cert.dmp full=y ignore=y
    就报错
      

  7.   


    set oracle_sid 命令是设置的默认的数据库的实例
    你可以在报错之前查看的注册表里,看你的sid是什么你就可以找出你
    默认操作的sid了。。
      

  8.   

    imp sino/sino@dev 命令中的 dev 为 tns 别名,由 tnsname.ora 中的设置决定。检查一下 tnsname.ora 文件中 dev 别名所指向的实例。
      

  9.   


    把你的tnsname.ora 的内容贴出来  
      

  10.   

    tnsname.ora:
    # tnsnames.ora Network Configuration File: E:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.DEV =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = dev)
        )
      )DEV2 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = MICROSOF-75DC5C)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = dev2)
        )
      )DEV1 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = MICROSOF-75DC5C)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = dev1)
        )
      )UAT =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = MICROSOF-75DC5C)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = uat)
        )
      )EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
      

  11.   

    listener.ora:
    # listener.ora Network Configuration File: E:\oracle\product\10.2.0\db_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
        )
        (SID_DESC = 
          (GLOBAL_DBNAME = dev) 
          (ORACLE_HOME = E:\oracle\product\10.2.0\db_1) 
          (SID_NAME = dev) 
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = MICROSOF-75DC5C)(PORT = 1521))
        )
      )
      

  12.   

    试试imp sino/sino@DEV file=D:\axa_cert.dmp full=y ignore=y
      

  13.   

    估计是客户端的tnsname.ora出问题了,建议配置和移植工具->Net Configuration Assistant中重建下
    或者你装了两个Oracle,我以前碰到过,装两个Oralcle会出这个问题,需要更改环境变量的优先级
      

  14.   

    重新配置一个Net Configuration Assistant和监听器如果,在导入试试
      

  15.   

    我也碰到类似的问题,由于除了装了ORCALE(Oracle - OraDb10g_home1)外,
    还装了透明网关(Oracle - OraTg10g_home1),
    在环境变量中PATH中会出现
    C:\oracle\product\10.2.0\tg_1\bin;(透明网关)
    c:\oracle\product\10.2.0\db_1\bin;(ORCALE)
    把c:\oracle\product\10.2.0\db_1\bin;这个目录放在最前面即可。
    不知道楼主是否是装了多个的问题