不同OS平台下sqlnetora配置.docx
《不同OS平台下sqlnetora配置.docx》由会员分享,可在线阅读,更多相关《不同OS平台下sqlnetora配置.docx(10页珍藏版)》请在冰豆网上搜索。
![不同OS平台下sqlnetora配置.docx](https://file1.bdocx.com/fileroot1/2023-2/2/9807aa85-097a-41cd-b65e-e3c864a66819/9807aa85-097a-41cd-b65e-e3c864a668191.gif)
不同OS平台下sqlnetora配置
监听问题我们经验遇到,而且监听问题一直是一个很麻烦的问题。
今天又遇上了。
快中午了Setphen突然跟我说一个数据库从远程连不上去了,但服务器本机可以。
貌似是此机长期不用,IP变了。
即远程看下情况。
发现这个虚拟机不能复制文字,就截图好了。
由于图片中的字是黑的,说明文字也是黑的较难辨认,于是用蓝字代替。
首先用sqlplus远程登录一下,果然说不认识这个实例,还出现了lost,说明是ip解析有问题:
即怀疑监听解释ip出现了问题:
果然。
监听找不到了。
同时,我们也注意到这里出现了timedout。
断定是IP出现了问题:
第一次使用ifconfig命令说找不到,其实原因是这个env里的path没有把/sbin目录包含进去。
然后直接到sbin目录里执行,就可以了。
发现此机目录使用的IP是:
10.30.154.55,名字为zhurh64or11.prod.quest.corp,再到hosts文件中进行验证,看是否冲突:
果然,这里记录的IP为10.30.151.55,这样便出现了找不到的情况。
将hosts文件备份之后,更改为10.30.154.55即可。
重启监听:
这样就发现监听启动成功了,并且发现监听也包括了实例rh64or11,即获取成功。
立刻兴冲冲地sqlplus验证下:
纳呢?
?
--#好心情立刻毁了。
。
。
先查下远程sys是否允许的参数:
参数rmote_login_passwordfile的值是EXCLUSIVE是正确的。
便知道是sqlnet.ora文件有问题,去看下:
想起NTS没错啊,就是系统用户登录,适合sqlplus“/assysdba”,那就再改成NONE算了,再看下:
还是报错。
。
。
有点纳闷。
便上网去查下这个SQLNET.AUTHENTICATION_SERVICES参数,oracle官方的解释如下:
SQLNET.AUTHENTICATION_SERVICES
Purpose
UsetheparameterSQLNET.AUTHENTICATION_SERVICEStoenableoneormoreauthenticationservices.Ifauthenticationhasbeeninstalled,itisrecommendedthatthisparameterbesettoeithernoneortooneoftheauthenticationmethods.
Default
None
Values
AuthenticationMethodsAvailablewithOracleNetServices:
· nonefornoauthenticationmethods.Avalidusernameandpasswordcanbeusedtoaccessthedatabase.
· allforallauthenticationmethods
· ntsfor WindowsNTnativeauthentication
才知道,这个值是有平台区别的,做下实验:
可以通过对SQLNET.AUTHENTICATION_SERVICES值进行修改查看其影响。
l WINDOWNS:
A.无sqlnet.ora文件:
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>dirsqlnet.ora
驱动器 E 中的卷没有标签。
卷的序列号是 1CF8-89BB
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN 的目录
找不到文件
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-Productionon 星期二 5月 820:
45:
352012
Copyright(c)1982,2005,Oracle. Allrightsreserved.
ERROR:
ORA-01031:
权限不足
请输入用户名:
B.SQLNET.AUTHENTICATION_SERVICES=(NONE)
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>dirsqlnet.ora
驱动器 E 中的卷没有标签。
卷的序列号是 1CF8-89BB
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN 的目录
2012-05-08 20:
48 266sqlnet.ora
1 个文件 266 字节
0 个目录 1,969,827,840 可用字节
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>typesqlnet.ora
#Thisfileisactuallygeneratedbynetca.Butifcustomerschooseto
#install"SoftwareOnly",thisfilewontexistandwithoutthenative
#authentication,theywillnotbeabletoconnecttothedatabaseonNT.
SQLNET.AUTHENTICATION_SERVICES=(NONE)
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-Productionon 星期二 5月 820:
48:
532012
Copyright(c)1982,2005,Oracle. Allrightsreserved.
ERROR:
ORA-01031:
权限不足
请输入用户名:
C.SQLNET.AUTHENTICATION_SERVICES=(ALL)
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>typesqlnet.ora
#Thisfileisactuallygeneratedbynetca.Butifcustomerschooseto
#install"SoftwareOnly",thisfilewontexistandwithoutthenative
#authentication,theywillnotbeabletoconnecttothedatabaseonNT.
SQLNET.AUTHENTICATION_SERVICES=(ALL)
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-Productionon 星期二 5月 820:
51:
282012
Copyright(c)1982,2005,Oracle. Allrightsreserved.
ERROR:
ORA-12641:
验证服务无法初始化
请输入用户名:
D.SQLNET.AUTHENTICATION_SERVICES=(NTS)
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>typesqlnet.ora
#Thisfileisactuallygeneratedbynetca.Butifcustomerschooseto
#install"SoftwareOnly",thisfilewontexistandwithoutthenative
#authentication,theywillnotbeabletoconnecttothedatabaseonNT.
SQLNET.AUTHENTICATION_SERVICES=(NTS)
E:
\oracle\product\10.2.0\db_1\NETWORK\ADMIN>sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-Productionon 星期二 5月 820:
53:
492012
Copyright(c)1982,2005,Oracle. Allrightsreserved.
连接到:
OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production
WiththePartitioning,OLAPandDataMiningoptions
SQL>
l LINUX
A. 无sqlnet.ora文件:
bash-3.00$ ls-lsqlnet.ora
sqlnet.ora:
无此文件或目录
bash-3.00$ sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-ProductiononTueMay821:
11:
042012
Copyright(c)1982,2005,Oracle. Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-64bitProduction
WiththePartitioning,OLAPandDataMiningoptions
SQL>
B.SQLNET.AUTHENTICATION_SERVICES=(NONE)
bash-3.00$ catsqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(NONE)
bash-3.00$ sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-ProductiononTueMay821:
13:
002012
Copyright(c)1982,2005,Oracle. Allrightsreserved.
ERROR:
ORA-01031:
insufficientprivileges
Enteruser-name:
C.SQLNET.AUTHENTICATION_SERVICES=(ALL)
bash-3.00$ catsqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(ALL)
bash-3.00$ sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-ProductiononTueMay821:
13:
592012
Copyright(c)1982,2005,Oracle. Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-64bitProduction
WiththePartitioning,OLAPandDataMiningoptions
SQL>
D.SQLNET.AUTHENTICATION_SERVICES=(NTS)
bash-3.00$ catsqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(NTS)
bash-3.00$ sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-ProductiononTueMay821:
15:
052012
Copyright(c)1982,2005,Oracle. Allrightsreserved.
ERROR:
ORA-01031:
insufficientprivileges
Enteruser-name:
总结:
1) 在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS才可用,此值仅适用于WINDOWS。
2) 在LINUX下,SQLNET.AUTHENTICATION_SERVICES 为ALL或不设置(sqlnet.ora文件不存在时)均可登录。
才想起为什么WINDOWS底下NTS,以前常用的IBMAIX/UNIX是ALL,linux也一样。
学习了。
现在再回到正题上来,把SQLNET.AUTHENTICATION_SERVICES 修改为ALL,再试下:
再用我本机的CMD连一下试试;
OK。
至此问题解决。