如何查看ORACLE数据库是否正常
发布网友
发布时间:2022-04-26 19:24
我来回答
共2个回答
热心网友
时间:2022-04-07 18:30
select
status
from
v$instance;
如果报错不能执行(用dba用户,或者有查看$视图权限的用户),那么就是没启动。
如果结果为nomount,那么就是仅仅搭载了初始文件,分配了内存,但是还没有加载控制文件。
mount就是加载了控制文件。
open就是完全启动了。
除了open意外,其他状态都不算完全启动数据库。
热心网友
时间:2022-04-07 19:48
在实际的工作中,数据库管理员(DBA)需要经常要定时对数据库的连接情况进行检查,查看与数据库建立的会话数目是不是正常,假如建立了过多的连接,会消耗许多数据库的资源。与此同时,针对一些“挂死”的连接,可能会需要DBA自行手工进行清理。
下面的SQL语句列出当前数据库建立的会话情况:
select
sid,serial#,username,program,machine,status
from
v$session;
输出的结果:
SID
SERIAL#
USERNAME
PROGRAM
MACHINE
STATUS
----
-------
----------
-----------
---------------
--------
1
1
ORACLE.EXE
WORK3
ACTIVE
2
1
ORACLE.EXE
WORK3
ACTIVE
3
1
ORACLE.EXE
WORK3
ACTIVE
4
1
ORACLE.EXE
WORK3
ACTIVE
5
3
ORACLE.EXE
WORK3
ACTIVE
6
1
ORACLE.EXE
WORK3
ACTIVE
7
1
ORACLE.EXE
WORK3
ACTIVE
8
27
SYS
SQLPLUS.EXE
WORKGROUP\WORK3
ACTIVE
11
5
DBSNMP
dbsnmp.exe
WORKGROUP\WORK3
INACTIVE
其中SID
会话(session)的ID号;
SERIAL#
会话的序列号,和SID一起用来唯一标识一个会话;
USERNAME
建立该会话的用户名;
STATUS
当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作;
假如要手工断开某个会话,则执行:
alter
system
kill
session
'SID,SERIAL#';注意:在上面的示例中,SID为1到7(USERNAME列为空)的会话,它是Oracle数据库的后台进程,请大家不要对这些会话进行任何操作。