如何解决ORA-12154:TNS:无法解析指定的连接标识符 我是新装的系统,怎么在系统属性里微软标识符下显示Lenovo...

\u5173\u4e8easp.net\u4e2d\u7684ORA-12154: TNS: \u65e0\u6cd5\u89e3\u6790\u6307\u5b9a\u7684\u8fde\u63a5\u6807\u8bc6\u7b26

\u5173\u4e8easp.net\u4e2d\u7684ORA-12154: TNS: \u65e0\u6cd5\u89e3\u6790\u6307\u5b9a\u7684\u8fde\u63a5\u6807\u8bc6\u7b26\u7684\u89e3\u51b3\u529e\u6cd5\uff1a
1.\u5148\u68c0\u67e5\u670d\u52a1\u5668\u7aef\u7684\u76d1\u542c\u670d\u52a1\u662f\u5426\u6253\u5f00\uff0c\u5982\u679c\u6ca1\u6709\u6253\u5f00\u8bf7\u542f\u52a8\u5176\u76d1\u542c
\u3000\u5ba2\u6237\u7aef:tnsping
\u670d\u52a1\u5668Linux\u4e0b:
\u3000\u3000\u3000\u3000\u3000#>lsnrctl status \u67e5\u770b\u76d1\u542c\u72b6\u6001
\u3000\u3000\u3000\u3000\u3000#>lsnrctl start\u3000\u542f\u52a8\u76d1\u542c
2.\u901a\u8fc7Sql Plus\u8fde\u63a5\u4e00\u4e0b\u8bd5\u8bd5\uff0c\u5982\u679cSql Plus\u8fde\u63a5\u80fd\u6210\u529f\uff0c\u90a3\u5c31\u8bf4\u660e\u4f60\u7684tnsnames.ora\u5185\u5bb9\u6709\u9519\u8bef
\u6211\u7684\u95ee\u9898\u5c31\u5728\u522b\u540ddev_db\u524d\u9762\u6709\u4e00\u4e2a\u7a7a\u683c\uff0c\u8fd9\u4e2a\u53ef\u4ee5\u901a\u8fc7\u6587\u672c\u7f16\u8f91\u5668(Edit Plus,UE\u7b49)\u6765\u67e5\u770b\u662f\u5426\u6709\u7a7a\u683c\uff0c\u53ea\u8981\u6709\u7a7a\u683c\u90a3\u5c31\u80af\u5b9a\u662f\u4e0d\u884c\u7684\uff0c\u800c\u4e14\u5982\u679c\u90a3\u6bb5\u5185\u5bb9\u662f\u51fa\u73b0\u5728\u6587\u4ef6\u7684\u4e2d\u95f4\u7684\u8bdd\uff0c\u5c06\u5bfc\u81f4\u8be5\u6587\u4ef6\u91cc\u6240\u6709\u76f8\u5e94\u7684\u8fde\u63a5\u522b\u540d\u90fd\u4e0d\u6210\u529f\uff0c\u5982\u679c\u662f\u5728\u6700\u540e\u9762\u5c31\u53ea\u6709\u5176\u81ea\u8eab\u8fde\u63a5\u522b\u540d\u4e0d\u80fd\u6210\u529f\uff0c\u5176\u4ed6\u8fde\u63a5\u522b\u540d\u8fd8\u662f\u80fd\u8fde\u63a5\u6210\u529f\u3002\uff08\u6ce8\uff1a\u6211\u7684tnsnames.ora\u914d\u7f6e\u4e86\u591a\u4e2a\u6570\u636e\u5e93\u5b9e\u4f8b\u7684\u8fde\u63a5\uff0c\u6240\u6709\u624d\u6709\u591a\u4e2a\u8fde\u63a5\u522b\u540d\u3002\uff09
\u5982\uff1a
\u7a7a\u683cdev_db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora10)
)
)
3.\u5982\u679c\u786e\u4fdd\u4f60\u7684tnsnames.ora\u5185\u5bb9\u6ca1\u6709\u9519\u8bef\uff0c\u90a3\u8bf7\u5c06%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6587\u4ef6\u5220\u4e86\uff0c\u7136\u540e\u91cd\u65b0\u8fde\u63a5\uff0c\u4e00\u822c\u5c31\u80fd\u89e3\u51b3\u4e86\u3002
\u8bf4\u660e\u4e00\u4e0b\uff1a\u90a3\u4e2a\u76ee\u5f55\u91cc\u7684\u6587\u4ef6\u662f\u5728\u4f60\u5efa\u7acb\u8fde\u63a5\u7684\u65f6\u5019\u52a8\u6001\u751f\u6210\u7684\uff0c\u4e0d\u8981\u6015\u5220\u4e86\u4f1a\u6709\u95ee\u9898
4.\u8fdb\u5165PLSQL Developer\u7684\u4e3b\u754c\u9762,\u5728\u767b\u5f55\u754c\u9762\u9009\u62e9\u53d6\u6d88\u5373\u4e0d\u767b\u5f55\u8fdb\u5165\u4e3b\u754c\u9762\uff0c\u7136\u540e\u9009\u62e9\u83dc\u5355Tools(\u5de5\u5177)-Preferences(\u9996\u9009\u9879)\uff0c\u5728\u8bbe\u7f6e\u7a97\u53e3\u4e2d\uff0c\u9009\u62e9Oracle-Connection(\u8fde\u63a5)\uff0c\u5bf9\u5e94\u8bbe\u7f6e\u7a97\u53e3\u4e2d\uff0c\u627e\u5230Oracle Home(Oracle\u4e3b\u76ee\u5f55)\uff0c\u9009\u62e9\u4f60\u672c\u5730\u6240\u5b89\u88c5\u5ba2\u6237\u7aef\u7684\u7248\u672c\uff0c\u4fdd\u5b58\u8bbe\u7f6e\uff0c\u7136\u540e\u91cd\u65b0\u542f\u52a8PLSQL Developer\uff0c\u8fd9\u65f6\u5c31\u53ef\u4ee5\u6b63\u5e38\u767b\u5f55\u4e86\u3002

\u5bfc\u5165\u8054\u60f3\u7684OEM\u8bc1\u4e66\uff0c\u81ea\u5df1\u641c\u7d22\u6559\u7a0b\uff0c\u5f88\u591a\u7684\u3002

相信使用过Oracle数据库的人一定碰到过“ORA-12154: TNS: 无法解析指定的连接标识符”错误,我在此做一个小小的总结。
在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方式连接,但是Oracle则需要通过Oracle客户端配置网络服务名的方式来连接。否则就会出现“ORA-12154: TNS: 无法解析指定的连接标识符”。配置Oracle客户端详细步骤如下:
安装好Oracle客户端之后,在开始菜单中依次找到“Oracle - OraClient10g_home1—>配置和移植工具—>Net Manager”并打开(Win7,Win8用户如果没有取得Administrator账号登陆需要以管理员方式运行),依次展开“Oracle Net配置—>本地—>服务命名”点击左侧“加号”配置新的网络服务

最后,点击“下一步”完成即可,如果不知道或者忘记Oracle服务名可以通过查看服务获得,比如我这里配置的主机名是我本机,在我的电脑服务中找到oracle相关的服务

通过上面的服务名称,可以看出我安装的服务名就是“ORCL”,或者在服务端通过SQL Plus使用sys账号登陆,输入命令
show parameter service_name查看。
OracleDBConsoleORCL是Oracle网页端管理工具的服务,访问地址一般为“http://127.0.0.1:1158/em/console/logon/logon”,如果不习惯用这个来管理数据库可以不用启动。
OracleJobSchedulerORCL是管理Oracle中计划任务的,一般不用启动。
OracleOraDb10g_home1iSQL*Plus是SQL Plus的服务,如果不习惯在命令行下面操作数据库,可以不用启动。
OracleServiceORCL,OracleOraDb10g_home1TNSListener都需要开启,前者是主服务,后者是监听服务。
当在Oracle客户端中配置好Net Manager中配置好服务后就可以通过我们配置的网络服务名访问Oracle数据库了,此配置实质想D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中增加了一行配置(由于我的Oracle是安装在D盘Oracle目录中,具体路径根据安装时选择的路径而定)。

# tnsnames.ora Network Configuration File: d:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

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

如果在同一台电脑上面同时安装了Oracle客户端和服务端,那么在服务端的安装目录中也会存在同样的配置文件D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,在这种情况下如果我们配置好了客户端Net Manager然后连接Oracle数据库,可能会出现“ORA-12154: TNS: 无法解析指定的连接标识符”这时,你就应该怀疑,我到底访问的是哪个路径下的配置文件呢?此时可以使用tnsping命令

如果你是在客户端Net Manager中配置的网络服务,但是此时解析出来的使用参数文件却是D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\sqlnet.ora,那么我想你应该明白了。这种情况有两种解决办法:
第一:在服务端的Net Manager也配置相同的网络服务,或者直接拷贝D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中的配置到D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,每次配置了新的网络服务你都需要这么做,如果不想这么麻烦那就使用第二种解决办法。
第二:修改系统环境变量Path值,将D:\Oracle\product\10.2.0\client_1\bin;路径移至D:\Oracle\product\10.2.0\db_1\bin;前面即可一劳永逸。
注意:造成以上这种情况出现的原因是:在一台电脑上同时安装了oracle客户端和数据库服务,并且是先安装客户端,再安装数据库服务造成的,如果先安装数据库服务,再安装客户端就不会出现这种情况了。
根据以上方式配置完oracle后,相信在程序中就可以正常连接oracle数据库了。
当我安装好PLSQL Developer软件后登陆时任然出现了“ORA-12154: TNS: 无法解析指定的连接标识符”,如果是Win7,Win8用户甚至可以会出现弹出一个白框的情况,这时需要以管理员身份运行PLSQL Developer,并且确保你的PLSQL Developer是读取的oracle客户端配置,直接取消登陆,在PLSQL Developer工具栏中找到“Tools—>Preferences”,在Oracle的Connection节点中找到Oracle Home选择OraClient10g_home1,保存后关闭PLSQL Developer就可以正常登陆了。

需要注意的是,在安装PLSQL Developer时不能安装在带有括号的目录中,如64bit系统的Program Files (x86)目录,就会出现无论你怎么设置,它依然不停的弹出“ORA-12154: TNS: 无法解析指定的连接标识符”。同样的问题也会出现在其他Oracle数据库管理软件中,比如Toad for Oracle
“ORA-12154: TNS: 无法解析指定的连接标识符”是使用Oracle数据库的新手遇到的比较常见的问题之一,只要我们了解了它的工作方式,冷静排查,相信很容易就能够找到问题的解决办法的。

主要原因:

1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。

2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动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.

4. 本机DNS解析不对。

诊断工具:
1. tnsping命令:如果能够ping通,则说明客户端能解析listener的机器名,而且lister也已经启动,但是并不能说明数据库已经打开,而且tsnping的过程与真正客户端连接的过程也不一致。但是如果不能用tnsping通,则肯定连接不到数据库。
2.lsnrctl命令.

  • ...瀵煎叆鎶ラ敊, ORA-39083 ORA-04052 ORA-12154 姹瑙e喅鏂规
    绛旓細鍥炵瓟锛氬叧閿湪杩欎釜閿欒涓: ORA-04052: 鍦ㄦ煡鎵捐繙绋嬪璞 FOLK_BAK.T_FL_LENDERBASICINFOP@FOLKBACKUP 鏃跺嚭閿 鎶ラ敊鐨勫師鍥犱负鍒涘缓瀵煎叆SCHEMA鐨凞BLINK澶辫触涓嶉氭棤娉曡闂 鐗瑰埆鐨凴AC鏁版嵁搴,瑕佷繚璇乼nsnames.ora鍦ㄤ袱涓妭鐐归兘杩佺Щ杩囨潵浜 瑙e喅鍔炴硶鏄縼绉籺nsnames.ora 鍙﹀杩樺姞浜咰LUSTER=N璁╁叾鍙湪涓涓妭鐐硅繍琛 http://...
  • oracle瀵煎叆鏁版嵁鍑洪敊!
    绛旓細1銆乪xcle杞垚csv涔嬪悗锛屾墦寮csv鏂囦欢鐪嬬湅鏁版嵁涓湁娌℃湁title銆傛湁鐨勮瘽锛屽垹鎺夈傝csv涓彧淇濈暀鏁版嵁銆2銆佹暟鎹鍏ョ敤sqlldr鍏堝啓涓猚tl鑴氭湰渚嬪锛氬仛涓涓猼est.ctl閲岄潰鐨勫唴瀹规槸LOAD DATAINFILE 'D:\DB\XXX.CSV' append INTO TABLE 琛ㄥ悕FIELDS TERMINATED BY 锛,锛俆RAILING NULLCOLS(HAISASHI_HMS INTEGER EXTERNAL(...
  • 扩展阅读:解决ora-12154的问题 ... oracle ora-12154 ... conn时报错ora-12154 ... ora12154 tns listener ... ora12154无法处理服务名 ... ora12154tnscouldnot ... ora-12154详细解决步骤 ... 登录sql时出现ora-12154 ... exp ora12154 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网