oracle11g 连接问题

一、The Network Adapter could not establish the connection 

 状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection 
 
解决:
(①、检查防火墙,可能是端口号1521防火墙拦截,把1521加入可允许访问即可。)

这个异常的出现一般与数据库和你的PC的设置有关

这种异常的出现大致上有下面几种:

1。IP错误。
在设置URL时错误,例如:jdbc:oracle:thin:@192.168.0.36:1521:sharp
数据库服务器不正确:ping 服务器IP是否正确。不正确,将URL更改为正确
端口号错误:一般不会错误。
进行一下操作:在DOS上键入sqlplus,检查oracle是否开启
一却正常,执行下面第2步。

2。防火墙
如果机器上安装有放火墙,可能是服务器端口号屏蔽而造成的。关闭防火墙后,尝试重新连接。
仍然不行,执行第3步。

3。数据库监听未启动

i:linux上,启动监听:

lsnrctl status

lsnrctl stop

lsnrctl start

ii:windows启动监听

修改PC上注册表中的ImagePath值。
我下面以现在主流的数据库ORACLE为例
重新手动启动数据库监听:
1:开始 → 运行→ 输入CMD→  进入DOS命令提示界面
d:>lsnrctl
LSNRCTL> status
或者
LSNRCTL> start
如果是类似图片中的信息

 

恭喜,你的问题已经查找出来,是数据库监听器没未启动而造成的。
以下是手动启动数据库的方法:
在运行处执行regedit进入注册表到
开始 →运行→ regedit
按下面路径
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome90TNSListener
找到OracleOraHome90TNSListener(我用的是Oracle9i 其他的版本的应该是OracleOraHomexxxTNSListener)

 

 

 

 找到之后你会发现ImagePath关键值不存在了,创建它:(存在的话,点击修改,修改方法在下文有介绍)
右键单击,弹出菜单选择新键(N)→字符串值(S)

 
将其命名为ImagePath
选中ImagePath点右键,选中修改:

在值中输入你的Oracle安装目录\ora90(其他本对应的是oraxxx目录)\bin\tnslsnr

如果是ORACLE 10G则安装目录为F:\oracle\product\10.1.0\Db_2\BIN\tnslsnr

 

 

确定后退出注册表:
再在DOS命令下键入start
如果出现下面画面,恭喜你,监听器启动成功:

 

关闭DOS,启动你的程序进行测试,应该恢复正常了。
以上就是3中常见的引发The Network Adapter could not establish the connection 异常的原因

 

二、状态: 失败 -测试失败: ORA-01031: insufficient privileges

权限不足。

经过测试,system,用一般权限登录,可以正常登录,只要是dba登录,就登录不上去,经过调查发现是

/usr/oracle/product/11.2.0/db_1/dbs目录下缺少密码文件:

orapworcl

【orapw+实例名】的文件缺失,创建即可。(我是从其他服务器直接拷贝的,因为我的两台服务器的密码都一样)
 
参考:
如下创建密码文件,密码为oracle,实例名为orapwbys3
orapwd  file=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwbys3  password=oracle entries=3 force=y
 
参考:http://blog.csdn.net/haibusuanyun/article/details/16350089
 
 
三、

ORA-01506: missing or illegal database name,Oracle 启动实例所需最小化参数

以下实验过程来自10.2.0.3 

引用
SQL> select * from v$version; 

 

BANNER 
---------------------------------------------------------------- 
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod 
PL/SQL Release 10.2.0.3.0 - Production 
CORE    10.2.0.3.0      Production 
TNS for Linux: Version 10.2.0.3.0 - Production 
NLSRTL Version 10.2.0.3.0 - Production



我们知道Oracle启动实例寻找参数文件的顺序为spfile<sid>.ora,spfile.ora,init<sid>.ora。那么Oracle启动一个实例最小化参数是什么呢?以下就是实验过程。 
创建任意名字实例 

引用
[ora10g@mcprod ~]$ export ORACLE_SID=zhoul


启动实例需要参数文件initzhoul.ora 

引用
[ora10g@mcprod ~]$ sqlplus "/as sysdba" 

 

SQL*Plus: Release 10.2.0.3.0 - Production on Sat Jan 9 13:55:35 2010 

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved. 

Connected to an idle instance. 

SQL> startup 
ORA-01078: failure in processing system parameters 
LRM-00109: could not open parameter file '/ora10g/oracle/product/10.2.0/db_1/dbs/initzhoul.ora' 
SQL> exit 
Disconnected


创建参数文件initzhoul.ora 

引用
[ora10g@mcprod ~]$ touch /ora10g/oracle/product/10.2.0/db_1/dbs/initzhoul.ora


再次尝试启动,提示需要参数db_name 

引用
SQL> startup nomount 
ORA-01506: missing or illegal database name


添加db_name至参数文件 

引用
[ora10g@mcprod ~]$ echo "db_name=zhoul">initzhoul.ora


再次尝试启动zhoul实例,启动成功 

引用
SQL> startup nomount 
ORACLE instance started. 

 

Total System Global Area  117440512 bytes 
Fixed Size                  1260384 bytes 
Variable Size              58721440 bytes 
Database Buffers           50331648 bytes 
Redo Buffers                7127040 bytes


查看数据字典v$parameter,发现启动该实例的只有db_name是非默认,也就是说只要只要设置参数db_name,即可启动数据库实例,其他参数均可采用初始值。 

引用
SQL> select name from v$parameter where isdefault='FALSE'; 

 

NAME 
-------------------------------------------------------------------------------- 
db_name



观察alert_zhoul.log,可以看到Oracle在启动实例zhoul中调成了部分初始值。注意到undo retention自动调整被关闭。 

引用
SQL> show parameter background_core_dump 

 

NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
background_core_dump                 string      partial 

[ora10g@mcprod log]$ cat  alert_zhoul.log 
Sat Jan  9 13:58:08 2010 
Adjusting the default value of parameter parallel_max_servers 
from 40 to 25 due to the value of parameter processes (40) 
Sat Jan  9 13:58:08 2010 
Starting ORACLE instance (normal) 
LICENSE_MAX_SESSION = 0 
LICENSE_SESSIONS_WARNING = 0 
Sat Jan  9 13:58:19 2010 
Adjusting the default value of parameter parallel_max_servers 
from 40 to 25 due to the value of parameter processes (40) 
Sat Jan  9 13:58:19 2010 
Starting ORACLE instance (normal) 
LICENSE_MAX_SESSION = 0 
LICENSE_SESSIONS_WARNING = 0 
Sat Jan  9 13:59:52 2010 
Adjusting the default value of parameter parallel_max_servers 
from 40 to 25 due to the value of parameter processes (40) 
Sat Jan  9 13:59:52 2010 
Starting ORACLE instance (normal) 
LICENSE_MAX_SESSION = 0 
LICENSE_SESSIONS_WARNING = 0 
Sat Jan  9 14:01:25 2010 
Adjusting the default value of parameter parallel_max_servers 
from 40 to 25 due to the value of parameter processes (40) 
Sat Jan  9 14:01:25 2010 
Starting ORACLE instance (normal) 
LICENSE_MAX_SESSION = 0 
LICENSE_SESSIONS_WARNING = 0 
Shared memory segment for instance monitoring created 
Picked latch-free SCN scheme 2 
Using LOG_ARCHIVE_DEST_1 parameter default value as /ora10g/oracle/product/10.2.0/db_1/dbs/arch 
Autotune of undo retention is turned off. 
LICENSE_MAX_USERS = 0 
SYS auditing is disabled 
ksdpec: called for event 13740 prior to event group initialization 
Starting up ORACLE RDBMS Version: 10.2.0.3.0. 
System parameters with non-default values: 
  db_name                  = zhoul 
PMON started with pid=2, OS id=32133 
PSP0 started with pid=3, OS id=32135 
MMAN started with pid=4, OS id=32137 
DBW0 started with pid=5, OS id=32139 
LGWR started with pid=6, OS id=32141 
CKPT started with pid=7, OS id=32143 
SMON started with pid=8, OS id=32145 
RECO started with pid=9, OS id=32147 
MMON started with pid=10, OS id=32149 
MMNL started with pid=11, OS id=32151

原文链接:http://dbzone.iteye.com/blog/566478
 
posted @ 2016-08-19 14:08  园芳宝贝  阅读(3272)  评论(0编辑  收藏  举报