更改主机名后,连接Oracle实例出现Ora-12154:TNS错误

myh0523 2007-07-31 10:31:04
我在本件创建了数据库实例。更改了主机名后出现了“ORA-12154: TNS: 无法解析指定的连接标识符”错误。检查了tnsnames.ora文件,也尝试对其修改。可依然不能解决。请各位大哥指教如何解决
...全文
946 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
centos2 2010-03-10
  • 打赏
  • 举报
回复
修改成IP就可以了。
popfei3707 2010-03-09
  • 打赏
  • 举报
回复
tnsname
listener
sqlnet
这三个文件只要涉及到计算机名的全改成你现在在的计算机名,或IP
w7210982 2010-03-08
  • 打赏
  • 举报
回复
直接用IP地址,就不会有这个问题了
cosio 2010-03-08
  • 打赏
  • 举报
回复
1.TNS里的主机名改为本机IP
2.重新运行NET confirgue assistant!
iqlife 2010-03-08
  • 打赏
  • 举报
回复
把TNS里的主机名改为本机IP
inthirties 2010-03-08
  • 打赏
  • 举报
回复
实例起来了没有呀。先检查一下实例的状况。这里listener已经是OK了,看是否是实力和tnsname的配置问题了。

子忆 2010-03-08
  • 打赏
  • 举报
回复
# tnsnames.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.81(本机IP地址))(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

goodliangji 2010-03-08
  • 打赏
  • 举报
回复
学习,留下爪印。。。。。。。。。。。
duqiangcise 2010-03-06
  • 打赏
  • 举报
回复
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)

修改后再重启数据库监听程序。
lsnrctl start;
duqiangcise 2010-03-06
  • 打赏
  • 举报
回复
我修改计算机的名称后也遇到过你说的情况。但我修改了目录:G:\oracle\product\10.1.0\db_1\NETWORK\ADMIN下的tnsname.ora和listener.ora中和计算机名称相关的地方后就正常了(我的oracle软件是安装在g盘下的)。
修改方式见下面红色字体:
1.tnsname.ora文件
# tnsnames.ora Network Configuration File: G:\oracle\product\10.1.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORCLU =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

2.listener.ora文件
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = G:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME = orclu)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
2004kingbear 2010-03-06
  • 打赏
  • 举报
回复
重新设置,换个IP试试
「已注销」 2010-03-05
  • 打赏
  • 举报
回复
刚遇到这问题,谢谢!
Amin01 2007-08-02
  • 打赏
  • 举报
回复
把配置中的主机名改成本机ip,应该可以解决
myh0523 2007-07-31
  • 打赏
  • 举报
回复
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)

GENERATED BY ORACLE CONFIGURATION TOOLS. = Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = FHWL-MYH)(PORT = 1521))
)
)

这是我listener.ora中的配置。“FHWL-MYH”是更改后的主机名
wangzk0206 2007-07-31
  • 打赏
  • 举报
回复
1:看TNSNAME
2:看LISTENER
myh0523 2007-07-31
  • 打赏
  • 举报
回复
我访问的就是我本机的数据库实例,应该不需要配置tnsnames.ora也行的.我也尝试对tnsnames.ora中的配置修改了.还是不行.
hongqi162 2007-07-31
  • 打赏
  • 举报
回复
估计还是你的tnsnames.ora配置的不对
wangzk0206 2007-07-31
  • 打赏
  • 举报
回复
换成IP地址试下
yangming1223 2007-07-31
  • 打赏
  • 举报
回复
“FHWL-MYH”中的“-”可能会导致出错!
系统支持,但Oracle不一定支持!
如果是本机又不想改主机名可以用“127.0.0.1”比较方便!
wangshi013 2007-07-31
  • 打赏
  • 举报
回复
love_2008(找DBA方面的工作中) 正解

TNSNAME 和 LISTENER 里面的host都修改成修改后的主机名应该可以的
加载更多回复(2)
本章主要讲解oracle客户端连接oracle效劳器,主要有以下内容: 1.配置本地net效劳名配置 2.用sqlplus连接; 3.用toad连接; 一、配置本地net效劳名 首先说明我们的效劳器的IP为60.220.246.53,oracle的SID为czdb。 翻开配置本地net效劳名向导如下列图: 点击进入Net Configuration Assistant,出现如下列图所示: Oracle客户端连接Oracle服务器全文共9页,当前为第1页。 Oracle客户端连接Oracle服务器全文共9页,当前为第1页。 选择默认的添加,然后下一步,如下列图: Oracle客户端连接Oracle服务器全文共9页,当前为第2页。输入效劳名(效劳名其实就是oracle的SID)czdb,然后点击下一步: Oracle客户端连接Oracle服务器全文共9页,当前为第2页。 选择默认TCP,然后选择下一步: Oracle客户端连接Oracle服务器全文共9页,当前为第3页。输入主机名〔即oracle效劳器主机IP〕60.220.246.53,然后进入下一步: Oracle客户端连接Oracle服务器全文共9页,当前为第3页。 然后选择 ,进入下一步: 里面的详细信息说的是密码不对,说明是连接到了效劳器,我们只要改一下用户名和密码就可以了,然后点击更改登录: OK,测试成功; 另说明:查询本用户下的所有表的信息叫数据字典: user_tables;DBA_users; 两类数据字典表 dba一般是system用户 查表的信息从数据字典里查如:select table_name from user_tables; dual是名义表,不存任何东西. Oracle客户端连接Oracle服务 全文共9页,当前为第4页。 Oracle客户端连接Oracle服务 全文共9页,当前为第4页。 Oracle远程连接数据库总结 Oracle代码 : orCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = .xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) orCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) 主要的参数为HOST、PORT、SERVICE_NAME 可能的问题: * 连接超时:很大可能性是windows自带的防火墙开着,屏蔽了1521端口 Oracle远程连接数据库总结 注:本文讲述了oracle数据库实例连接的配置过程,三个重要的配置文件位于C:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN目录下 1. sqlplus sys/oracle@orcl sqlnet.ora 文件格式NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)。客户端就会首先在tnsnames.ora文件中找orcl的记录。如果没有相应的记录那么尝试把orcl当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例Oracle客户端连接Oracle服务器全文共9页,当前为第5页。这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。   #你所要连接的时候输入得TNSNAME,如果listner启动失败尝试改IP地址   ora10gcsdl1 = Oracle客户端连接Oracle服务器全文共9页,当前为第5页。 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ora10gcsdl1) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = IBM-66336DAFE8F .ibm )(PORT = 1521)) (CONNECT_DATA = (SERVE
机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库 1、先到Oracle网站下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 根据你的操作系统选择不同的Instant Client版本 下载会是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的目录即可.例如:D:/instantclient_11_2 2、在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容: ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58 )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL ) ) ) 第一个黄色字块:表示定义远程服务器的在本地主机名 第二个黄色字块:远程数据库的IP地址 第三个黄色子块:远程数据库实例名 3、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径。比如我的本机为:D:/instantclient_11_2/network/admin 4、设置ORACLE的语言,添加环境变量NLS_LANG ,值为: AMERICAN_AMERICA.AL32UTF8 该值可以连接到远程数据库中,通过下面的sql语句查询得到: select userenv('language') from dual; 如果该值设置不正确,将导致PL/SQL Developer连接数据库后,查看的数据会出现乱码。 5、下载并安装PL.SQL.Developer配置应用 配置tools->preferences->connection Oracle Home D:/instantclient_11_2 OCI library D:/instantclient_11_2/oci.dll 中文的PL/SQL Developer就是 工具-->首选项-->连接 Oracle主目录 D:/instantclient_11_2 OCI库 D:/instantclient_11_2/oci.dll 6、关闭PL/SQL Developer,重起Developer. 主机名就会出现在PL/SQL Developer的列表里,输入用户名密码,就可以登录远程oracle 11g数据库了。 补充Instant Client 说明 Oracle Instant client 是oracle提供的简便客户端, 支持多种平台. 可从oracle网站下载, 下载地址为 http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 包括如下内容: Instant client Package - Basic 运行OCI, OCCI, 和JDBC-OCI应用程序需要的所有文件. Instant client Package - Basic Lite: 只包含英语错误信息, 只支持unicode, ascii, 西欧字符集. Instant client Package - JDBC Supplement 为jdbc增加了xa, 国际化和RowSet操作. Instant Client Package - SQL *Plus 包含sqlplus和需要的库文件 Instant client Package - SDK 使用Instant Client开发Oracle 应用程序需要的头文件及示例makefile Instant client package - ODBC 使用odbc时需要的库, 不是所有平台都有. linux平台包含. Basic 和Basic Lite两个中必须选一个, 其他包都是可选的. 我下载 了 Basic, JDBC supplement, SQL *Plus, SDK, ODBC. 解压后放在一个文件夹下, 在这个文件夹下建立文件 tnsnames.ora, 设置环境变量LD_LIBRARY_PATH和TNS
Oracle 数据库客户端 在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容: MWDB= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = MWDB) ) ) 2、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径。比如我的本机为:D:/instantclient_11_2/network/admin 3、设置ORACLE的语言,添加环境变量NLS_LANG ,值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK 第一个黄色字块:表示定义远程服务器的在本地主机名 第二个黄色字块:远程数据库实例名 如果不清楚远程数据库的ORACLE 语言,可以ssh或者telnet到远程机器,在命令界面输入,用命令行连接到数据库。 select * from nls_instance_parameters; 查看NLS_LANGUAGE 的值 NLS_LANGUAGE NLS_TERRITORY 4、下载并安装PL.SQL.Developer配置应用 貌似把环境变量Path添加了instantclient就可以了,不需要具体的设置。 配置tools->preferences->connection Oracle Home     D:/instantclient_11_2 OCI library     D:/instantclient_11_2/oci.dll 中文的PL/SQL Developer就是 工具–>首选项–>连接 Oracle主目录     D:/instantclient_11_2 OCI库     D:/instantclient_11_2/oci.dll 5.添加系统属性中的环境变量Path:D:/instantclient_11_2/可以保证在cmd中使用sqlplus链接到远程的oracle sqlplus TAXYS1_1/TAXYS1_1 @'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.225)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED) (SERVICE_NAME = ORCL)))’ sqlplus TAXYS1_1/TAXYS1_1@'(description=(address_list=(address=(proto=tcp)(host=192.168.0.225)(port=1521)))(connect_data=(service_name=orcl)))’ sqlplus TAXYS1_1/TAXYS1_1@192.168.0.225:1521/orcl --------------------- 作者:我在爱的国 来源:CSDN 原文:https://blog.csdn.net/magaiou/article/details/80322685 版权声明:本文为博主原创文章,转载请附上博文链接!

17,377

社区成员

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

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