oracle连接提示: ORA-03135:连接失去联系 进程 ID: 0 会话层 ID: 0 序列号: 0 请问这个问题怎么解决?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&有关ORACLE登陆出错问题:ora-01033:oracle initialization or shutdown in progress 解决方法,求解。_百度知道Posts - 638,
Articles - 0,
Comments - 1214
00:15 by 潇湘隐者, ... 阅读,
&&&& 通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息. & &&&& 连接(Connection):连接是从客户端到ORACLE实例的一条物理路径。连接可以在网络上建立,或者在本机通过IPC机制建立。通常会在客户端进程与一个专用服务器或一个调度器之间建立连接。 & &&&& 会话(Session) 是和连接(Connection)是同时建立的,两者是对同一件事情不同层次的描述。简单讲,连接(Connection)是物理上的客户端同服务器的通信链路,会话(Session)是逻辑上的用户同服务器的通信交互。 & &&&& ORACLE中一个用户登录ORACLE服务器的前提,就是该用户具有ORACLE的 “CREATE SESSION”权限。ORACE允许同一个用户在同一个客户机上建立多个同服务器的会话,每个SESSION都代表了用户与服务器的一个交互。就像你用IE浏览器打开博客园网站,然后你再打开一个IE窗口,又打开一个博客园网站。两个IE窗口就相当于两个SESSION, 而物理链路就相当于连接(Connection)。后台进程PMON会每隔一段时间,就会检测用户连接状况,如果连接已断开,PMON会清理现场,释放相关的资源。 &&&& 在一条连接上可以建立0个、一个或多个会话。各个会话是单独而且独立的,即使它们共享同一条数据库物理连接也是如此。一个会话中的提交不会影响该连接上的任何其他会话。实际上,还可以有连接而无相应的会话。另外,一个会话可以有连接也可以没有连接。使用高级Oracle Net特性(如连接池)时,客户可以删除一条物理连接,而会话依然保留(但是会话会空闲)。客户在这个会话上执行某个操作时,它会重新建立物理连接。 &&& 在专用服务器中,一个会话对应一个服务器进程(Process),如果数据库运行在共享服务器方式,一个服务器进程可以为多个会话服务。 下面是一段关于连接(connection)、会话、进程的英文描述 A connection is a physical circuit between you and the database. A connection might be one of many types -- most popular begin DEDICATED server and SHARED server. Zero, one or more sessions may be established over a given connection to the database as show above with sqlplus. A process will be used by a session to execute statements. Sometimes there is a one to one relationship between CONNECTION-&SESSION-&PROCESS (eg: a normal dedicated server connection). Sometimes there is a one to many from connection to sessions (eg: like autotrace, one connection, two sessions, one process). A process does not have to be dedicated to a specific connection or session however, for example when using shared server (MTS), your SESSION will grab a process from a pool of processes in order to execute a statement. When the call is over, that process is released back to the pool of processes. & 会话&链接
在具体的应用场景中连接(connction) 和 会话(session) 有很多情况: 1. SQL*PLUS 登录 ORACLE 这种场景比较容易理解,一个连接对应一个Session。 2. PL/SQL Developer工具登录ORACLE PL/SQL Developer工具——&首选项——&连接下,你可以设置会话方式,如下图所示:
如果设置选项选择多路会话,:PL/SQL Developer 登录ORACLE,每打开一个窗口,将创建一个新的会话,而设置选项选择单路会话,则新打开的窗口会共用一个会话。具体你可以参考PLSQL Developer8.0用户指南: 多路会话:每个测试窗口、SQL窗口和命令窗口都将有它自己的会话,另外的一个会话将被用于编译。这是最灵活的设置,明显地会导致最大数量的数据库会话。另外可能的缺点是,在更新被提交之后,它们只在X窗口中可以看到,而在Y窗口看不到。 双路会话:测试窗口、SQL窗口和命令窗口将共享一个会话,另外一个会话将被用于编译。这个模式的缺点是每次只有一个窗口可以运行程序。 单路会话:所有的窗口和所有的编译都使用同一个会话,这使事务管理变得很困难。在这个模式中调试器被禁用使用。如果你被限制只能使用一个数据库会话,那么你只能使用这个设置了。 & 会话&进程 &
在Oracle中如何查看参数sessiones或processes的值呢?一般使用show parameter命令查看。
SQL& show parameter&NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&&&&&&&&&&&&&&&&&&&&&&& VALUE------------------------------------ -------------------------------- ---------------aq_tm_processes&&&&&&&&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 0db_writer_processes&&&&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 1gcs_server_processes&&&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 0job_queue_processes&&&&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 10log_archive_max_processes&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 2processes&&&&&&&&&&&&&&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 850SQL& show parameter&session;&NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&&&&&&&&&&&&&&&&&&&&&&& VALUE------------------------------------ -------------------------------- -----------java_max_sessionspace_size&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 0java_soft_sessionspace_limit&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 0license_max_sessions&&&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 0license_sessions_warning&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 0logmnr_max_persistent_sessions&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 1session_cached_cursors&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 20session_max_open_files&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 10sessions&&&&&&&&&&&&&&&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&&&&&&&&&&&& 940shared_server_sessions&&&&&&&&&&&&&& integerSQL&
方法2:查询v$parameter
select name, type, value ,display_value, isses_modifiable, issys_modifiable from v$parameter&where name='sessions';&&select name, type, value ,display_value, isses_modifiable, issys_modifiable from v$parameter&where name='processes';
& 方法3:查询v$resiyrce_
& Oracle的sessions和processes的数量关系是:
Oracle 11g R1以及之前版本
&&&&&&&&&&&& sessions=(1.1 * processes) + 5
Oracle 11g R2
&&&&&&&&&&&& sessions=(1.5 * processes) + 22
如下例子所示,在Oracle 10g 版本中,processes与sessions的关系如下所示:
SQL& select * from v$&BANNER----------------------------------------------------------------Oracle Database 10g Release 10.2.0.4.0 - 64bit ProductionPL/SQL Release 10.2.0.4.0 - ProductionCORE&&& 10.2.0.4.0&&&&& ProductionTNS for Linux: Version 10.2.0.4.0 - ProductionNLSRTL Version 10.2.0.4.0 - Production
& & SELECT (1.1 *850)+ 5 FROM DUAL; 其值刚好为940
一般修改参数processes后,sessions参数也会随之变化,但是有一个奇怪的现象时,如下所示,我将processes从
850改为120后,重启数据库实例,发现sessions的值并没有随之变化。这个现象一般发生在改小processes参数。为什么这样呢?
共享服务器模式,一个会话可能由多个服务进程轮流为之服务,一个进程可能为多个会话服务。简单地说,进程和会话之间有一种多对多的关系。
& 会话管理
& 1:查看当前所有用户的会话(SESSION):
SELECT * FROM V$SESSION&WHERE USERNAME IS&NOT&NULLORDER&BY LOGON_TIME , SID;
其中Oracle内部进程的USERNAME为空
& 2:查看当前用户的所有SESSION:
SELECT * FROM V$SESSIONWHERE USERNAME = USERORDER&BY LOGON_TIME, SID;
& 3:查看当前窗口/当前用户的会话信息
SELECT SID, SERIAL#, STATUS FROM V$SESSION&WHERE AUDSID=USERENV('SESSIONID');
& 4:查看所有ACTIVE会话(活动会话)
SELECT * FROM V$SESSION&WHERE USERNAME IS&NOT&NULL&AND STATUS='ACTIVE'ORDER&BY LOGON_TIME, SID;
& 5:查看当前会话的ID可以通过如下脚本:
SELECT * FROM V$MYSTAT WHERE ROWNUM =1
查看当前用户的SPID
SELECT P.SPID, S.SID, S.SERIAL#FROM V$PROCESS PINNER&JOIN V$SESSION S ON P.ADDR = S.PADDRWHERE S.AUDSID=USERENV('SESSIONID');
& 6:查看数据库允许最大会话数
SQL& SHOW PARAMETER SESSIONS;&NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE------------------------------------ ----------- ------------------------------java_max_sessionspace_size&&&&&&&&&& integer&&&& 0java_soft_sessionspace_limit&&&&&&&& integer&&&& 0license_max_sessions&&&&&&&&&&&&&&&& integer&&&& 0license_sessions_warning&&&&&&&&&&&& integer&&&& 0logmnr_max_persistent_sessions&&&&&& integer&&&& 1sessions&&&&&&&&&&&&&&&&&&&&&&&&&&&& integer&&&& 225shared_server_sessions&&&&&&&&&&&&&& integer&&&& &&SQL& SELECT NAME, TYPE, VALUE&FROM V$PARAMETER&WHERE NAME LIKE&'session%';&NAME&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&&&&&&&&&&& VALUE---------&&&&&&&&&&&&&&&& ----------&&&&&&&&&&&& -----------sessions&&&&&&&&&&&&&&&&&&&&&&&&& 3&&&&&&&&&&&&&&& 225session_cached_cursors&&&&&&&&&&& 3&&&&&&&&&&&&&&& 20session_max_open_files&&&&&&&&&&& 3&&&&&&&&&&&&&&& 10
7:查看曾经的最大会话数:
&SQL&SQL& SELECT SESSIONS_MAX,SESSIONS_WARNING,SESSIONS_CURRENT,SESSIONS_HIGHWATER& & 2& FROM v$&SESSIONS_MAX SESSIONS_WARNING SESSIONS_CURRENT SESSIONS_HIGHWATER------------ ---------------- ---------------- ------------------&&&&&&&&&& 0&&&&&&&&&&&&&&& 0&&&&&&&&&&&&& 512&&&&&&&&&&&&&&& 553
SESSIONS_HIGHWATER表示曾经的最大会话数512
& 8:查询那些应用的连接数此时是多少
SELECT& B.PROGRAM , COUNT(1) FROM V$PROCESS A, V$SESSION B WHERE A.ADDR = B.PADDR &&&&& AND& B.USERNAME IS&NOT&NULLGROUP&BY B.PROGRAM;
& 会话状态:
会话有ACTIVE、INACTIVE、KILLED、CACHED、SNIPED五个状态,一般比较常见的有ACTIVE、INACTIVE、KILLED三个状态。
& ACTIVE&& :处于此状态的会话,表示正在执行,处于活动状态。
INACTIVE :处于此状态的会话表示不是正在执行的
KILLED&& :处于此状态的会话,表示出现了错误或进程被杀掉,正在回滚,当然,这个状态的会话也占用系统资源的。还有一点就是,&&& KILLED的状态一般会持续较长时间,如果你想快速杀掉回话,可以参考我以前的一篇文章
CACHED&& : Session temporarily cached for use by Oracle*XA
SNIPED&& : Session inactive, waiting on the client。 标记为SNIPED的进程被释放有两种条件:
&&&&&&&& 1、相关的terminal再一次试图登录及执行sql
&&&&&&&& 2、手动的在操作系统后台kill掉相应的spid
关于会话信息
通过如下SQL你可以查询你的每个应用程序到底在等待什么,从而针对这些信息对数据库的性能进行调整。
COL USERNAME FOR A12;COL PROGRAM& FOR A32;COL EVENT&&& FOR A26;SELECT S.USERNAME&&&&& ,S.PROGRAM&&&&& ,S.STATUS&&&&& ,SE.EVENT&&&&& ,SE.TOTAL_WAITS&&&&& ,SE.TOTAL_TIMEOUTS&&&&& ,SE.TIME_WAITED&&&&& ,SE.AVERAGE_WAITFROM V$SESSION S, V$SESSION_EVENT SEWHERE S.SID=SE.SID AND SE.EVENT NOT&LIKE&'SQL*Net%'& AND S.STATUS ='ACTIVE'&AND S.USERNAME IS&NOT&NULL;
& 2.ORACLE中查询被锁的表并释放session
SELECT A.OWNER& ,A.OBJECT_NAME& ,B.XIDUSN& ,B.XIDSLOT& ,B.XIDSQN& ,B.SESSION_ID& ,B.ORACLE_USERNAME& ,B.OS_USER_NAME& ,B.PROCESS& ,B.LOCKED_MODE& ,C.MACHINE& ,C.STATUS& ,C.SERVER& ,C.SID& ,C.SERIAL#& ,C.PROGRAMFROM ALL_OBJECTS A,V$LOCKED_OBJECT B,SYS.GV_$SESSION CWHERE& A.OBJECT_ID = B.OBJECT_ID& AND B.PROCESS = C.PROCESS& ORDER&BY 1,2;
& 3.查看占用系统IO较大的session
SELECT se.sid&&&&& ,se.serial#&&&&& ,pr.spid&&&&& ,se.username&&&&& ,se.status&&&&& ,se.terminal&&&&& ,se.program&&&&& ,se.module&&&&& ,se.sql_address&&&&& ,st.event&&&&& ,st.p1text&&&&& ,si.physical_reads&&&&& ,si.block_changesFROM v$session se,v$session_wait st,v$sess_io si,v$process prWHERE st.sid=se.sid& AND st.sid=si.sid & AND se.paddr=pr.ADDR AND se.sid&6& AND st.wait_time=0 AND st.event NOT&LIKE&'%SQL%'&& ORDER&BY physical_reads DESC;
& 4.找出耗cpu较多的session
select a.sid&&&&& ,spid&&&&& ,status&&&&& ,substr(a.program,1,40) prog&&&&& ,a.terminal&&&&& ,osuser&&&&& ,value/60/100 valuefrom v$session a,v$process b,v$sesstat cwhere c.statistic#=12 and c.sid=a.sid and a.paddr=b.addr&& order&by&value desc
& 参考资料:2393人阅读
- - - Oracle Problem(32)
场景描述:
领导callme,说pslql远程登录报错,报错信息:
ORA-03135 connections lost contact Process ID:0
1,赶紧vpn,登录后台去查看负载,看到负载很低:
[oracle@powerlong4 ~]$ w
20:05:16 up 22 days,
load average: 0.45, 0.58, 0.38
192.168.120.218
0.03s sqlplus
192.168.120.218
0.02s -bash
[oracle@powerlong4 ~]$
&版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!&
原博客地址:
原作者:黄杉 (mchdba)
2,再去查看alert日志:
Wed May 27 02:00:00 2015
Clearing Resource Manager plan via parameter
Wed May 27 07:15:39 2015
Suspending MMON action 'Block Cleanout Optim, Undo Segment Scan' for 82800 seconds
Wed May 27 07:35:48 2015
Suspending MMON action 'undo usage' for 82800 seconds
Wed May 27 07:56:08 2015
Suspending MMON action 'metrics monitoring' for 82800 seconds
Wed May 27 08:11:17 2015
Suspending MMON slave action kewrmafsa_ for 82800 seconds
Wed May 27 08:16:23 2015
Suspending MMON action 'AWR Auto Purge Task' for 82800 seconds
Wed May 27 16:56:14 2015
Suspending MMON slave action kewfmcpsa_ for 82800 seconds
Wed May 27 19:32:45 2015
***********************************************************************
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for Linux: Version 11.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production
Time: 27-MAY-2015 19:32:45
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS:operation timed out
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.120.218)(PORT=55693))
Wed May 27 19:39:43 2015
3,alert日志中没有看出啥问题来,去check是否有锁,卡住了,只好ctrl+c停住
执行sql检查是否有锁
SQL& select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_
^Cselect t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time
ERROR at line 1:
ORA-01013: user requested cancel of current operation
4,尝试重启下,卡住了,shutdown hang住了
SQL& shutdown immediate
^CORA-01013: user requested cancel of current operation
后台alert日志信息
Shutting down instance (immediate)
Stopping background process SMCO
Shutting down instance: further logons disabled
Wed May 27 19:39:44 2015
Stopping background process CJQ0
Stopping background process QMNC
Stopping background process MMNL
Stopping background process MMON
Wed May 27 19:39:48 2015
AUD: Audit Commit Delay exceeded, written a copy to OS Audit Trail
License high water mark = 28
Stopping Job queue slave processes, flags = 7
Wed May 27 19:39:48 2015
Errors in file /oracle/app/oracle/diag/rdbms/pddev1/pddev1/trace/pddev1_j005_8455.trc:
ORA-12012: error on auto execute of job 57381
ORA-01089: immediate shutdown in progress - no operations are permitted
ORA-01089: immediate shutdown in progress - no operations are permitted
Process ID:
Session ID: 0 Serial number: 0
Wed May 27 19:39:48 2015
opiodr aborting process unknown ospid (7674) as a result of ORA-1089
Wed May 27 19:39:48 2015
opiodr aborting process unknown ospid (7002) as a result of ORA-1089
Wed May 27 19:39:48 2015
opiodr aborting process unknown ospid (9183) as a result of ORA-1089
Job queue slave processes stopped
Wed May 27 19:42:46 2015
Instance shutdown cancelled
再去看下trace日志,如下:
[oracle@powerlong4 ~]$ more /oracle/app/oracle/diag/rdbms/pddev1/pddev1/trace/pddev1_j005_8455.trc
Trace file /oracle/app/oracle/diag/rdbms/pddev1/pddev1/trace/pddev1_j005_8455.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/app/oracle/product/11.2.0/dbhome_1
System name:
Node name:
powerlong4
2.6.32-358.el6.x86_64
Instance name: pddev1
Redo thread mounted by this instance: 1
Oracle process number: 49
Unix process pid: 8455, image: oracle@powerlong4 (J005)
*** 2015-05-27 19:39:48.078
*** SESSION ID:(79.110) 2015-05-27 19:39:48.078
*** CLIENT ID:() 2015-05-27 19:39:48.078
*** SERVICE NAME:(SYS$USERS) 2015-05-27 19:39:48.078
*** MODULE NAME:() 2015-05-27 19:39:48.078
*** ACTION NAME:() 2015-05-27 19:39:48.078
ORA-12012: error on auto execute of job 57381
ORA-01089: immediate shutdown in progress - no operations are permitted
ORA-01089: immediate shutdown in progress - no operations are permitted
Process ID:
Session ID: 0 Serial number: 0
[oracle@powerlong4 ~]$
5,没有看出啥问题,领导催的紧急,看来只好用绝招了
SQL& shutdown abort
ORACLE instance shut down.
SQL& startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area
Fixed Size
2214296 bytes
Variable Size
Database Buffers
Redo Buffers
6385664 bytes
Database mounted.
Database opened.
SQL& select t2.username,t2.sid,t2.serial
no rows selected
OK,能登录正常了。事后诸葛亮,我这台线上db完全是边缘业务,无压力的,怎么会plsql远程登录不上呢?奇怪。看alert日志也么有异常信息,留此纪念,以待后续观察。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1858950次
积分:26382
积分:26382
排名:第148名
原创:519篇
评论:956条
难度:高级
类型:实战教学
难度:高级
类型:技术教程
难度:高级
类型:技术教程
文章:20篇
阅读:92789
阅读:23222
文章:14篇
阅读:41891
文章:32篇
阅读:155286
(8)(20)(17)(23)(14)(10)(13)(11)(10)(8)(6)(9)(2)(4)(9)(12)(7)(9)(7)(10)(10)(3)(10)(13)(12)(10)(10)(17)(9)(5)(7)(2)(2)(16)(29)(34)(37)(14)(17)(24)(15)(23)}

我要回帖

更多关于 qq会话 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信