首页 > 数据库 >你知道orcal数据库配置文件listener.ora,tnsnames.ora中错一个空格有多大的威力吗

你知道orcal数据库配置文件listener.ora,tnsnames.ora中错一个空格有多大的威力吗

时间:2024-07-30 17:51:13浏览次数:10  
标签:10.2 配置文件 oel1 SID LIST listener ADDRESS oracle ora

上周客户要求说要修改,所有的用户密码,提升网络安全的等级性,于是积极响应,结果发现系统里面的报表无法打开,咨询开发老师已经,对方希望能够重启服务器,对这个做法,我是不怎么赞成的,因为每次重启都伴随一大堆问题,实在令人苦恼,可是一时又想不到其他解决办法,于是只能同意他重启。

果不其然,服务器启动了一个下午都没有跑起来,只能联系客户要求对方供应商来查错处理,后面虽然跑起来了,可是又出现新的问题,数据库的监听重新无法启动。

 报错

所以,最近几天真的是被被网络监听配置搞得焦头烂额,有时候配置没问题,有时候就出莫名其妙的问题,今天专门花了 点时间总结了一下,希望对大家有所帮助。

listener.ora,tnsnames.ora有时候没有netca,netmgr这样的图形工具来创建的时候,只能手工来做,手工做的时候会有一些格式的问题,多加一个空格,或者少一个空格,就会有不同的结果。

案例一

下面是一个监听的基本配置,我故意在前面多加了一个空格(黄色标记所示)。
listener.ora文件的内容如下:

 LISTE1=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521)
 )
 )
)
SID_LIST_LISTE1=
(SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=PROD)
      (ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
      (SID_NAME=PROD)
 )
)
启动现象:
启动的时候非常缓慢,然后报出了没有监听liste1的信息。这种情况跟没有listener.ora的情况下直接起监听的结果一样,说明解析Listener.ora的时候,没有找到相关的listener信息。
LSNRCTL> start liste1
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/liste1.log
TNS-01151: Missing listener name, liste1, in LISTENER.ORA
Listener failed to start. See the error message(s) above...

处理办法:
然后删除那个空格后,监听启动就没有问题。

案例二

(我遇到的就是这个例子)在倒数第2行的右括号,一个是顶格的,一个前面有一个空格。

LISTE1=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521))
 )
)

SID_LIST_LISTE1=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=PROD)
      (ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
      (SID_NAME=PROD)
)
)
 启动现象: 启动监听的时候,报出了另外的错误,说sid_list_liste1的地方有问题。错误信息如下:
LSNRCTL> start liste1
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/liste1.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521)))
TNS-01155: Incorrectly specified SID_LIST_liste1 parameter in LISTENER.ORA
 NL-00303: syntax error in NV string
Listener failed to start. See the error message(s) above...   处理办法:
如果改成如下的形式,多加了一个空格,监听启动就没有问题了。
LISTE1=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521))
 )
)

SID_LIST_LISTE1=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=PROD)
      (ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
      (SID_NAME=PROD)
 )
)

案例三

有的朋友可能说你这个钻牛角尖了,如果是倒数第三行,第四行的话行不行?
我试了一下,故意把address后面的右括号放到了下一行,然后顶格。

LISTE1=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521)
)
 )
)
启动现象:
启动监听的时候还是报错,这次貌似指向的错误信息更明确了。
LSNRCTL> start liste1
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/liste1.log
TNS-01150: The address of the specified listener name is incorrect
Listener failed to start. See the error message(s) above... 处理办法:
改成如下的形式,监听马上好了。
LISTE1=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521)
 )
 )
)
 

案例四

Listener.ora的情况在tnsnames.ora里也是一样的情况,不过报错是ORA的错误,有一个好处是都是ORA-12154错误。
PROD=
(DESCRIPTION= 
 (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521))
 (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1525))
 (CONNECT_DATA=(SERVICE_NAME=PROD)
)
)


[oracle@oel1 admin]$ sqlplus system/oracle@PROD
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 1 16:55:03 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
 

案例五

在prod前面多加一个空格,报错也是ora-12154
 PROD=
(DESCRIPTION= 
 (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521))
 (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1525))
 (CONNECT_DATA=(SERVICE_NAME=PROD))
)
[oracle@oel1 admin]$ sqlplus system/oracle@PROD
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 1 17:28:47 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
 

成功例子

最后贴出能够正确识别的Listener.ora和tnsnames.ora (格式当然不是很好)
listener.ora
LISTE1=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521)
 )
 )
)
SID_LIST_LISTE1=
(SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=PROD)
      (ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
      (SID_NAME=PROD)
 )
)

tnsnames.ora
PROD=
(DESCRIPTION= 
 (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1521))
 (ADDRESS=(PROTOCOL=tcp)(HOST=oel1.oracle.com)(PORT=1525))
 (CONNECT_DATA=(SERVICE_NAME=PROD))
) 来一个成功连接的例子收尾:
[oracle@oel1 admin]$ sqlplus system/oracle@PROD
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 1 17:00:46 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options   希望在前行的路上,尽量少遇到类似这样糟心的情况!

标签:10.2,配置文件,oel1,SID,LIST,listener,ADDRESS,oracle,ora
From: https://www.cnblogs.com/lsxs-wy/p/18333037

相关文章

  • Oracle知识整合----Oracle基础
    目录一、Oracle基础1、Oracle:甲骨文公司,其核心产品是Oracle数据库2、Oracle的安装目录:3、orcl目录4、DBF与数据库的关系5、唯一标识(SID)6、Oracle的表空间7、Oracle中的用户:(1)system:(2)sys:(3)hr:示例用户(4)scott:示例用户8、数据库版本:9、Oracle服务:10、......
  • SX12系列&ASR6601基于LoRa的智慧农业解决方案
    我国《数字乡村发展战略纲要》明确指出“要推进农业数字化转型”,加快推广云计算、大数据、物联网、人工智能在农业生产经营管理中的运用。然而,目前我国的农业数字化转型还面临着诸多挑战。我国整体农业机械化程度和自动化控制水平仍然较低。由于农田面积广袤,大量的区域没有信号覆......
  • Android开发 - setOnTouchListener 监听触控事件解析
    事件解析setOnTouchListener(newOnTouchListener(){});:事件分发解析MotionEvent.ACTION_DOWN:按下MotionEvent.ACTION_MOVE:滑动MotionEvent.ACTION_UP:抬起使用方法//部分区域调用需要对象:view.setOnTouchListener(newview.OnTouchListener(){})setOnTouchListe......
  • 在Centos7中使用一键脚本安装Oracle11g
    在Centos7中使用一键脚本安装Oracle11g1.环境准备1.1系统版本:Centos7.9(2009)1.2Oracle版本:Oracle11g11.2.0.41.3网络需求:可以连接互联网1.4一键安装:curl-ooracle_install.shhttps://files-cdn.cnblogs.com/files/blogs/827077/oracle_install.sh?t=1722301473&&c......
  • Oracle内置SQL函数
    Oracle内置SQL函数F.1字符函数——返回字符值这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据库类型所受的限制是相同的,比如:VARCHAR2数值被限制为2000字符(O......
  • Sora AI视频生成器
    #我是谁?我是Sora网站的创始人:https://sora-ai-video.com#我们解决什么问题1.总结索拉的最新消息2.发现所有Sora视频并解决发现Sora视频的问题3.免费下载和分享索拉视频4.通知您Sora的最新消息5.将图像转换为视频6.使用KlingAI将文本转换为视频7.KlingAI视频摘要8.......
  • 使用 init 和 Fore 时 Colorama 未按预期工作
    我已经安装了colorama库并用python3.12编写它。然后,我尝试使用colorama但它没有按预期工作。当然,首先我导入了init和Fore。然后我输入了init()。之后我写了print(Fore.RED+"someredtext")。它给出了这个随机的单词和字母字符串。[31msome红色文本阅......
  • Oracle 数据库配置文件与资源控制
    数据库资源控制与配置文件通过创建和分配配置文件,可以控制数据库用户的资源消耗,包括CPU、内存、磁盘I/O等。这些配置文件中的参数可以限制用户每个会话或每次调用使用的资源量。示例有一个数据库用户user1,其工作负载较大,经常占用大量资源。可以为该用户创建一个配置......
  • lora微调qwen2-0.5B
    我们利用复旦新闻数据集进行训练:gitclonehttps://www.modelscope.cn/datasets/swift/zh_cls_fudan-news.gitgitclonehttps://www.modelscope.cn/qwen/Qwen2-0.5B.git安装库pipinstalldatasetspipinstallpeftfromdatasetsimportDatasetimportpandasaspdfro......
  • vue中sessionStorage的使用
    localStorage和sessionStorage属性允许在浏览器中存储key/value对的数据。sessionStorage用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。提示:如果你想在浏览器窗口关闭后还保留数据,可以使用localStorage属性,改数据对象没有过期时间,......