网上案例
有的朋友可能说你这个钻牛角尖了,如果是倒数第三行,第四行的话行不行?
我试了一下,故意把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)
)
)
)
到这里只解决掉了第一个问题,紧接着又出来一个
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation
Linux Error: 1: Operation not permitted
经查阅资料:
经过在metalink上找到一篇文档 ID 434062.1 的文章,文章中列出的CHANGES列出的内容如下:
|
· Some IPC keys have been reused from older listener(s) · Same listener has previously been started under different OS users · Listeners running under different OS users are using the same IPC keys · Permissions in /var/tmp have been previously reset. |
上面四点,前面三点笔者均经过了验证,实际情况是不存在问题的,现在目标直奔第四点,/var/tmp的权限。
/var/tmp目录下只有一个隐藏文件夹,那就是.oracle,文章中的CAUSE 中也指出:
|
Older IPC socket file(s) were left in /var/tmp/.oracle and they cannot be deleted by the listener upon startup. |
现在看到是/var/tmp/.oracle文件夹或其下级文件夹的权限问题了。
问题解决:
