今天使用了手工建库来创建数据库,创建成功后出现了两个问题:
1.无法关闭数据库
SQL> shutdown immediate;
ORA-00106: 无法在连接到调度程序时启动/关闭数据库
解决方法:
在sqlnet.ora里加上USE_DEDICATED_SERVER=ON,TNS设成dedicated方式连接
2.无法使用conn / as sysdba登录系统
SQL> conn / as sysdba
ERROR:
ORA-12560: TNS: 协议适配器错误
解决方法:http://www.itpub.net/thread-223688-1-1.html
解决ORA-12560: TNS: 协议适配器错误,与大家共享
今天遭遇ORA-12560: TNS: 协议适配器错误的问题,经过一番努力问题已经解决,与大家共享。
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,
启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务
面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SI
D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建
,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下
输set oracle_sid=XXXX,XXXX就是你的database SID.
经过以上步骤,就可以解决问题。
额外的信息:
● Oracle认证方式:
C:\>sqlplus "/as sysdba"
SQL*Plus:Release 10.2.0.1.0 - Production on Fri Nov 2 16:16:22 2007
Copyright (c) 1982, 2005, Oracle. All right reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
这个错误一般是由于oracle登录认证出现了问题:
Oracle登录认证有两种方式,基于操作系统的登录认证,基于oracle的验证。
可以通过改变sqlnet.ora文件,可以修改oracle登录认证方式:
SQLNET.AUTHENTICATION_SERVICES= (NTS)是基于操作系统验证;
SQLNET.AUTHENTICATION_SERVICES= (NONE)是基于Oracle验证;
SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)是二者共存。
经过测试,以上规则只适用于windows服务器,在linux下规则如下:
默认情况下linux下的oracle数据库sqlnet.ora文件没有SQLNET.AUTHENTICATION_SERVICES参数,
此时是基于操作系统认证和oracle密码验证共存的,
加上SQLNET.AUTHENTICATION_SERVICES参数后,
不管SQLNET.AUTHENTICATION_SERVICES设置为NONE或者NTS,都是基于oracle密码验证的。
Windows下设置oracle登录验证为操作系统验证方式的方法:
1:把os用户加到ora_dba组
2:设置sqlnet.ora SQLNET.AUTHENTICATION_SERVICES = (NTS)
或者你可以重建口令文件来改密码,只不过原来授予sysdba和sysoper权限的用户,就不再具有这2个权限了。
● sqlnet.ora文件中USE_DEDICATED_SERVER参数的意义:
专用服务器连接
如果客户端要求建立专用服务器连接方式,可以修改客户羰的网络配置文件tnsnames.ora或修改连接描述串。
增加关键字“Server=DEDICATED”
还必须修改SQLNET.ORA文件,增加“USE_DEDICATED_SERVER=TRUE”
阅读(984) | 评论(0) | 转发(0) |