exp/imp 导入导出数据库 报错:ORA-12154: TNS: 无法解析指定的连接标识符

luchi880 2014-06-04 11:46:09
请各位帮忙看下,啥原因哈
本机安装了oracle11g服务端,64位;oracle11g客户端 32位。
pl/sql 连的数据库,net 测试也没问题,但是就是导入导出数据库不行,报错ORA-12154: TNS: 无法解析指定的连接标识符

tnsnames.ora 文件:
# tnsnames.ora Network Configuration File: D:\Oracle\OracleData\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

ZHANG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

SYD_GS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.150)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = fm360)
)
)
====================================================================
listener.ora 文件:
# listener.ora Network Configuration File: D:\Oracle\OracleData\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\Oracle\OracleData\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = D:\Oracle\OracleData\product\11.2.0\dbhome_1)
(SID_NAME = ORCL)
)
)


LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = zhang-PC)(PORT = 1521))
)
)

===============================================
用sqlplus @orcl连接也会报错


用sqlplus fzcq/fzcq as sysdba 连接是正常

如果先用
>set oracle_sid=orcl
>imp fzcq/fzcq file=E:\fzcq.dmp ignore=y fromuser = fzcq touser = fzcq statistics=none
这样就可以了导入

被这个问题搞的都没脾气了,各位帮忙看看啥原因,谢谢啦!
...全文
31825 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuyeyi 2014-12-11
  • 打赏
  • 举报
回复
实例名和连接字符串是不同的。
wu493673401 2014-12-11
  • 打赏
  • 举报
回复
有可能是客户端的编码和服务器编码不一致
华而不实 2014-12-11
  • 打赏
  • 举报
回复
tnsnames.ora 中没有配置 orcl 这就是原因
不写代码的钦 2014-12-11
  • 打赏
  • 举报
回复
@zhang就对了。你等于起了一个别名。 或者你本地操作,完全可以省略@zhang,不用纠结这个呀。
ffshao 2014-12-10
  • 打赏
  • 举报
回复
引用 5 楼 wildwave 的回复:
概念搞错了 @后面跟的不是实例名,只是在tnsnames里面配的网络服务名
应该是这样
 imp fzcq/fzcq@ZHANG  full=y  file=d:\fzcq.dmp ignore=y
引用
报错ORA-12154: TNS: 无法解析指定的连接标识符
应该还是你的tnsnames.ora 文件有问题
dilemmapr 2014-12-10
  • 打赏
  • 举报
回复
fzcq/fzcq@ip/orcl
ning_wnn2014 2014-12-02
  • 打赏
  • 举报
回复
在cmd 命令窗口,执行imp wang/wang@ORCL full=y file= e:\jlqb_db_20110704.dmp ignore=y ,将dmp文件导入数据库
c_sdn_shang_bu_qi 2014-06-06
  • 打赏
  • 举报
回复
直接这样写不就完了 imp fzcq/fzcq@orcl file=E:\fzcq.dmp ignore=y fromuser = fzcq touser = fzcq statistics=none
善若止水 2014-06-05
  • 打赏
  • 举报
回复
建议楼主先登陆到数据库上,在命令行中执行
show parameter instance_name ;
看看结果是否和你登陆的数据路的实例名一致,我怀疑是oracle_sid设置的问题
huangdh12 2014-06-05
  • 打赏
  • 举报
回复
10g以后提供了不配置tnsname.ora也可以连接数据库的方法 类似 sqlplus uname/pwd@127.0.0.1:1521/orcl exp uname/pwd@127.0.0.1:1521/orcl file='xx.dmp'
小灰狼W 2014-06-04
  • 打赏
  • 举报
回复
概念搞错了 @后面跟的不是实例名,只是在tnsnames里面配的网络服务名
luchi880 2014-06-04
  • 打赏
  • 举报
回复
引用 2 楼 ruihuahan 的回复:
tnsnames.ora 中没有配置 orcl 啊。 监听在主机名 zhang-pc,tnsnames 的配置用的 IP 地址,最好都用 IP 地址。
就是很奇怪,导入导出本机的库都必须先 >set oracle_sid=orcl 然后在用imp 或exp,fzcq/fzcq后面不能带上“@orcl”才能正常导入导出 。 exp fzcq/fzcq file=e:\fzcq20140107.dmp imp fzcq/fzcq file=E:\fzcq.dmp ignore=y fromuser = fzcq touser = fzcq statistics=none 如果导出其他机子上数据库就一直报错,比如导SYD_GS 这个数据库报错,是不是listener.ora 文件也要配置SYD_GS数据库的监听呢?
luchi880 2014-06-04
  • 打赏
  • 举报
回复
imp fzcq/fzcq@zhang “@” 后面应该是实例名吧。 环境变量有设置了oracle_sid=orcl, 必须先set oracle_sid=orcl ,然后再imp fzcq/fzcq 后面不能带"@" 才能导入,如果直接imp fzcq/fzcq@orcl就报错了。 导出其他服务器的数据库就就办法了。
ruihuahan 2014-06-04
  • 打赏
  • 举报
回复
tnsnames.ora 中没有配置 orcl 啊。 监听在主机名 zhang-pc,tnsnames 的配置用的 IP 地址,最好都用 IP 地址。
小灰狼W 2014-06-04
  • 打赏
  • 举报
回复
imp fzcq/fzcq@zhang file=E:\fzcq.dmp ignore=y fromuser = fzcq touser = fzcq statistics=none oracle_sid可以设到环境变量里 不过从as sysdba能连上来看,这个变量应该没有问题。直接在本机上用sqlplus fzcq/fzcq就可以了,别用as sysdba,那样登录的是sys用户

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧