ORA-12571:信息包写入错误
Oracle中关于该参数的解释:
?
SQLNET.AUTHENTICATION_SERVICES
Purpose
Use the parameter SQLNET.AUTHENTICATION_SERVICES to enable oneor more authentication services. If authentication has beeninstalled, it is recommended that this parameter be set to eithernone or to one of the authentication methods.
Default
None
?
Values
Authentication Methods Available with Oracle Net Services:
?
* none? for no authentication methods. A validusername and password can be used to access the database.
* all? ?for all authenticationmethods
* nts?? for Windows NT nativeauthentication
?
Windows NT native authentication
An authentication method that enables a client single loginaccess to a Windows NT server and a database running on theserver.
An authentication method that enables a client single login accessto a Windows NT server and a database running on the server.
?
从oracle的解释可以知道,SQLNET.AUTHENTICATION_SERVICES=(NTS)是WINDOWS系统专用的,对linux/UNIX是不适用的。个人猜测NTS应该指NTServer.
?
测试:设置SQLNET.AUTHENTICATION_SERVICES=(ALL)?时
?
C:\Documents and Settings\Administrator>sqlplus/nolog
SQL*Plus: Release 10.1.0.2.0 - Production on 星期四 7月 23 15:33:182009
Copyright (c) 1982, 2004, Oracle.? All rightsreserved.
SQL> connect / as sysdba;
ERROR:
ORA-12641: 验证服务无法初始化
?
?
一个简单的总结:
1、在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL(10.2版本好像可以,未测试,10.1版本设置为ALL无法通过OS认证,显示ORA-12641:验证服务无法初始化)才能使用OS认证;不设置或者设置为其他任何值(包括NONE)都不能使用OS认证。
2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为其他任何值都不能使用OS认证。
?
Windows2000环境下System文件坏掉了,不能启动,修复以后机器是启动了,但发现原来的Oracle服务都不见了,也没有什么重要的数据,就重装了一遍,装完以后一切正常,连接Oracle正常,重启动机器以后发现连接Oracle出现错误:ORA-12571:TNS包写入程序失败。用SQLPLUS /NOLOG也不能正常连接,报ORA-03113错误。
?
解决办法:
打开ora92\network\admin\sqlnet.ora
将参数SQLNET.AUTHENTICATION_SERVICES= (NTS) 改为:
SQLNET.AUTHENTICATION_SERVICES= (NONE)
即可成功解决这个问题. 这个问题导致原因很多.
?
原因分析:
我的情况估计是由于域 (NAMES.DEFAULT_DOMAIN)在系统恢复的时候出错了,具体是什么至今没有搞清楚 但是解决办法倒是被我搞定。操作系统大概真的需要重装一遍了,但是目前没时间了,用用再说。