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解析配置文件中对非空格特殊字符的处理逻辑相关了。