且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

空格字符的错误造成监听无法启动

更新时间:2022-07-02 15:15:57

listener.ora中配置了静态监听:
空格字符的错误造成监听无法启动

启动监听,却报了错误:
空格字符的错误造成监听无法启动

从提示看,应该很明确,listener.ora文件中SID_LIST_LISTENER指定的参数不正确,但再看所有参数拼写、路径好像都没有错误。

TNS-01155: Incorrectly specified SID_LIST_LISTENER parameter in LISTENER.ORA
NL-00303: syntax error in NV string

其实,这次忽视了一点,就是空格字符,光标扫描所有空格,发现确实有空格不是一个字符的位置,
空格字符的错误造成监听无法启动

用一个字符的空格替换,重试,一切正常了。
空格字符的错误造成监听无法启动

网上搜了一下,杨兄很久前就写过一篇相关的文章,专门介绍了配置文件各种空格位置对监听启动的影响,比较全面,值得玩味。
《listener.ora,tnsnames.ora中一个空格的威力》
http://blog.itpub.net/23718752/viewspace-1061787/

总结:
Oracle的大部分错误提示表达地都会很清楚,简洁的几个字符就可以描述出关键信息,例如这已经明确指出是SID_LIST_LISTENE这个参数中存在语法错误,只是对于这些配置文件,不能忽视空格这种字符,这恐怕就和Oracle解析配置文件中对非空格特殊字符的处理逻辑相关了。