修改SQLNET.ORA导致数据库无法启动 [转帖]_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
4
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4930 | 回复: 3   主题: 修改SQLNET.ORA导致数据库无法启动 [转帖]        下一篇 
wayne
注册用户
等级:中校
经验:1690
发帖:221
精华:0
注册:2011-7-21
状态:离线
发送短消息息给wayne 加好友    发送短消息息给wayne 发消息
发表于: IP:您无权察看 2011-9-15 10:23:40 | [全部帖] [楼主帖] 楼主

修改sqlnet.ora这种貌似完全无害的文件,也可能导致数据库无法启动。

今天在一个RAC数据库上进行测试,在尝试重启时,碰到了参数错误:

SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-00119: invalid specification for system parameter REMOTE_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENERS_RAC'


开始怀疑是有人手工修改了REMOTE_LISTENER参数,但是目前的参数值LISTENERS_RAC应该是在tnsnames.ora中进行的配置。莫非是tnsnames.ora文件被修改。

检查$ORACLE_HOME/network/admin/tnsnames.ora文件:

$ more tnsnames.ora
# tnsnames.ora.db210-rac1 Network Configuration File: /opt/oracle/product/10.2.0/db10g/network/admin/tnsnames.ora.db210-rac1
# Generated by Oracle configuration tools.
LISTENERS_RAC =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = db210-rac1vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = db210-rac2vip)(PORT = 1521))
)
RAC2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db210-rac2vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac)
(INSTANCE_NAME = rac2)
)
)
RAC1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db210-rac1vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac)
(INSTANCE_NAME = rac1)
)
)


从语法上看不到什么错误,为什么Oracle无法解析这个简单监听服务名呢,通过tnsping命令检查语法错误:

$ tnsping listeners_rac
TNS Ping Utility for Solaris: Version 10.2.0.4.0 - Production on 04-MAR-2011 20:37:19
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
/opt/oracle/product/10.2.0/db10g/network/admin/sqlnet.ora
TNS-03505: Failed to resolve name


尝试测试其他服务名,错误依旧:

$ tnsping rac2
TNS Ping Utility for Solaris: Version 10.2.0.4.0 - Production on 04-MAR-2011 20:40:09
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
/opt/oracle/product/10.2.0/db10g/network/admin/sqlnet.ora
TNS-03505: Failed to resolve name


看来问题不是不可见字符引起的,应该是其他的原因。观察提示信息中存在的sqlnet.ora配置文件,于是检查了一下。

$ more sqlnet.ora
NAMES.DIRECTORY_PATH= (EZCONNECT)


有人手工修改了sqlnet.ora,将连接方式设置为简化连接这一种方式了。

显然,这导致了Oracle不去解析tnsnames.ora文件。

修改文件,注释掉sqlnet.ora中的配置:

$ vi sqlnet.ora
#NAMES.DIRECTORY_PATH= (EZCONNECT)


再次尝试服务名:

$ tnsping rac2
TNS Ping Utility for Solaris: Version 10.2.0.4.0 - Production on 04-MAR-2011 20:08:23
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
/opt/oracle/product/10.2.0/db10g/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = db210-rac2vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = rac) (INSTANCE_NAME = rac2)))
OK (10 msec)
$ tnsping listeners_rac
TNS Ping Utility for Solaris: Version 10.2.0.4.0 - Production on 04-MAR-2011 20:09:10
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
/opt/oracle/product/10.2.0/db10g/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = db210-rac1vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = db210-rac2vip)(PORT = 1521)))
OK (10 msec)


这次Oracle可以正确的解析服务名的配置,尝试启动数据库:

SQL> startup
ORA-01078: failure in processing system parameters
ORA-00119: invalid specification for system parameter REMOTE_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENERS_RAC'
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
[oracle@db210-rac1 oracle]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Fri Mar 4 20:09:30 2011
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 2147483648 bytes
Fixed Size 2041976 bytes
Variable Size 687871880 bytes
Database Buffers 1442840576 bytes
Redo Buffers 14729216 bytes
Database mounted.
Database opened.


直接启动,仍然出现同样的错误,退出sqlplus再次尝试启动数据库,问题消失。




赞(0)    操作        顶端 
寂寞空庭春欲晚
注册用户
等级:下士
经验:175
发帖:0
精华:0
注册:2016-2-5
状态:离线
发送短消息息给寂寞空庭春欲晚 加好友    发送短消息息给寂寞空庭春欲晚 发消息
发表于: IP:您无权察看 2016-3-28 19:05:02 | [全部帖] [楼主帖] 2  楼

分享了啊



赞(0)    操作        顶端 
黑色拖鞋
注册用户
等级:列兵
经验:116
发帖:0
精华:0
注册:2016-3-23
状态:离线
发送短消息息给黑色拖鞋 加好友    发送短消息息给黑色拖鞋 发消息
发表于: IP:您无权察看 2016-3-28 19:45:32 | [全部帖] [楼主帖] 3  楼

ok



赞(0)    操作        顶端 
美炸了的菇凉
注册用户
等级:上士
经验:315
发帖:0
精华:0
注册:2016-2-17
状态:离线
发送短消息息给美炸了的菇凉 加好友    发送短消息息给美炸了的菇凉 发消息
发表于: IP:您无权察看 2016-3-31 22:53:52 | [全部帖] [楼主帖] 4  楼

学到了,谢谢



赞(0)    操作        顶端 
总帖数
4
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论