导入语句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 操作都是在本地进行的,数据库安装在本机,年前执行导入语句是没问题的,过完年后过来就出现了上述问题
才搜索引擎上查了很多,都没见我这种情况,请求高手支援
在运行-》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 操作都是在本地进行的,数据库安装在本机,年前执行导入语句是没问题的,过完年后过来就出现了上述问题
才搜索引擎上查了很多,都没见我这种情况,请求高手支援
CMD下运行 :TNSPING DEV
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 毫秒)
导入 dev 实例关联的数据库
c:\> set ORACLE_SID=dev
c:\> imp sino/sino ...
导入 uat 实例关联的数据库
c:\> set ORACLE_SID=uat
c:\> imp ...或者,使用 netmgr 在 tnsname.ora 上分别为这两个实例添加别名,通过别名访问它们(当然需要确保启动侦听器)。
set oracle_sid=dev (linux export ORACLE_SID=dev)imp sino/sino@dev file=D:\axa_cert.dmp full=y ignore=y
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
就报错
set oracle_sid 命令是设置的默认的数据库的实例
你可以在报错之前查看的注册表里,看你的sid是什么你就可以找出你
默认操作的sid了。。
把你的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)
)
)
# 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))
)
)
或者你装了两个Oracle,我以前碰到过,装两个Oralcle会出这个问题,需要更改环境变量的优先级
还装了透明网关(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;这个目录放在最前面即可。
不知道楼主是否是装了多个的问题