当前位置:首页 » 操作系统 » 查看数据库进程

查看数据库进程

发布时间: 2022-07-14 13:59:58

❶ 查看一下数据库现有的进程数,是否已经达到参数processes的大小

查看一下数据库现有的进程数,是否已经达到参数processes的大小
-- select count(*) from v$process; 取得数据库目前的进程数。
-- select value from v$parameter where name = 'processes'; 取得进程数的上限
(1)查看当前会话数、processes和sessions值,发现session数14和processes值150已经非常接近

sql>selectcount(*)fromv$session;
COUNT(*)
----------
146
SQL>showparameterprocesses
NAMETYPEVALUE
------------------------------------------------------------------
aq_tm_processesinteger0
db_writer_processesinteger2
gcs_server_processesinteger0
job_queue_processesinteger10
log_archive_max_processesinteger2
processesinteger150
(2)Modifythetwoparameter(processes,sessions)
SQL>altersystemsetprocesses=300scope=spfile;
Systemaltered.
SQL>altersystemsetsessions=335scope=spfile;
Systemaltered.
(3)Let'.
SQL>shutdownimmediate;
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
SQL>startup
ORACLEinstancestarted.

FixedSize2030456bytes
VariableSize989856904bytes
DatabaseBuffers603979776bytes
RedoBuffers14745600bytes
Databasemounted.
Databaseopened.
SQL>exit
.2.0.3.0-64bitProction
WiththePartitioning,OLAPandDataMiningoptions
$sqlplus/nolog
(4)testtheresult.
SQL*Plus:Release10.2.0.3.0-Proctionon星期五12月909:53:132011
Copyright(c)1982,2006,Oracle.AllRightsReserved.
SQL>connsys/oracle@orclassysdba
Connected.
SQL>
--theend.



❷ 如何查看数据库当前的状态

在实际的工作中,数据库管理员(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数据库的后台进程,请大家不要对这些会话进行任何操作。

❸ 如何查找oracle进程

Oracle数据库查看一个进程是如何执行相关的实际SQL语句

SELECT b.sql_text, sid, serial#, osuser, machine
FROM v$session a, v$sqlarea b
WHERE a.sql_address = b.address;
查询前台发出的SQL语句.

select user_name,sql_text
from v$open_cursor
where sid in
(select sid from (select sid,serial#,username,program from v$session where status='ACTIVE'));

根据SPID查询session
SELECT * FROM v$session WHERE paddr IN
(SELECT addr FROM v$process WHERE spid=&spid);

根据SID查询process
SELECT * FROM v$process WHERE addr IN
(SELECT paddr FROM v$session WHERE sid=&sid);

DBA如何查询其他用户所进行的操作
SELECT sql_text
FROM v$sql t1, v$session t2
WHERE t1.address = t2.sql_address
AND t2.sid = &sid;

根据process查询sql语句

SELECT sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN (
SELECT DECODE (sql_hash_value,0, prev_hash_value,sql_hash_value ),
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr = (SELECT addr
FROM v$process c
WHERE c.spid = '$processID'))
ORDER BY piece ASC;

其他
执行下列命令语句
sqlplus / as sysdba <<EOF
create tablespace test datafile '/data/test01.dbf' size 10240M;
quit;
EOF

通过ps -ef|grep sqlplus命令得到上面所执行的命令的进程id为:12345
(1)关于v$process
执行下面的SQL是查不到相关的信息:
select * from v$process where spid='12345';
因为这个spid字段对应的并不是我们用ps命令从系统中查询到的进程id,而是这个进程执行的当前SQL的进程id,
也就是上面命令中的“create tablespace test datafile '/data/test01.dbf' size 10240M;”所对应的进程id,如果想
通过用ps命令从系统中查询到的进程id查看对应的信息,那么必须使用下面语句:
select spid,sid,process,sql_address from v$session where process='12345'
上面sql中的process就是通过ps查看的进程id,而spid就是里面的sql语句所对应的进程id。
还可以通过上面的sql_address 查看正在执行的SQL语句内容:
select sql_text from v$sqlarea s,v$session ses where s.address=ses.sql_address and ses.process='12345';

(2)关于v$session
在查询 v$session 视图的时候,我们根据command字段内部表示解码每一个字段,当我们需要快速找出他们的 Oracle 系统的内部情况时非常有用。
select
substr(s.username,1,18) username,substr(s.program,1,15) program,p.spid,s.process,
decode(s.command,
0,'No Command',
1,'Create Table',
2,'Insert',
3,'Select',
6,'Update',
7,'Delete',
9,'Create Index',
15,'Alter Table',
21,'Create View',
23,'Validate Index',
35,'Alter Database',
39,'Create Tablespace',
41,'Drop Tablespace',
40,'Alter Tablespace',
53,'Drop User',
62,'Analyze Table',
63,'Analyze Index',
s.command||': Other') command
from
v$session s,
v$process p,
v$transaction t,
v$rollstat r,
v$rollname n
where s.paddr = p.addr
and s.taddr = t.addr (+)
and t.xisn = r.usn (+)
and r.usn = n.usn (+)
order by username

(3)几个相关的SQL
--查看系统进程对应的信息
select se.saddr,se.sid,se.serial#,p.pid,se.paddr,s.sql_id,s.sql_text
from v$session se ,v$process p, v$sqlarea s
where se.paddr=p.addr and se.sql_address=s.address and se.process='&1'
and se.username is not null

--查看所有的会话
select se.username,se.saddr,se.sid,se.serial#,se.process,s.sql_id
from v$session se,v$sqlarea s
where se.sql_address=s.address

--查看会话对应的sql内容
select se.username,se.process,s.sql_text
from v$session se,v$sqlarea s
where se.sql_address=s.address and s.sql_id='&1'

❹ 怎么在plsql developer 中查看数据库进程

在菜单 Tools 下面有个 Object browser 将其打勾(如果已经打勾了就不用管了),之后在IDE的左边有个Objects窗口,其中有一个树型结构图,在里面找到Tables 展开就可以了看到所有的Table了,默认显示的表包括系统表和权限允许范围内的其他schema下的表,如果不想看到,只需将树型图上方的All objects(下拉选框)改为My objects 就只看自己的表了

❺ 如何查看sybase数据库运行情况

1.检查数据库是否运行。

检查步骤 :

操作系统命令

Sun solaris 和unix 以及AIX下

#ps –ef | grep dataserver


参考指标:正常情况下,会显示ASE及BACKUP server的进程信息。若无显示任何进程信息,说明sybase没有运行。

备注:对于不同的版本,数据库进程数根据max online engines、number of engines at startup确定。

2.检查访问数据库连接的数量 。

检查步骤 :

sybase命令

sp_configure “number of user connections” 确定最大连接数

sp_who 确定在用连接数

对于每个运行的进程,sp_who报告其服务器进程ID,状态和进程用户的的登陆名,主机名,阻塞此进程(如果存在)的服务器进程ID,数据库名和正在运行的命令。


参考指标:如果连接数为最大可连接数的80%以上,表示存在连接数不足的可能。需要先分析在用连接数是否都是正常使用所需的,如果不是,通知数据库系统管理员处理;如果是,则通知数据库管理员增加最大可连接数的数量。

备注:sp_who命令结果中,登录名NULL和空缺主机名的进程为系统进程。如NETWORK HANDERLER, DEADLOCK TUNE, CHECKPOINT SLEEP等。


3.检查数据库系统进程对内存的占用情况。主要是检查系统内存利用率和数据库系统进程占用内存量。

检查步骤:

操作系统命令

Sun solaris

#vmstat 5 100

AIX

#vmstat 5 100

#ps aux 详细看每个进程情况

#topas 简单列举前几个进程

linux

#free –m

以MB为单位显示内存状况

未用内存=free+buffer+cache


参考指标:

正常情况下,进程内存使用率不会发生太大的变化。如果进程内存使用率不断增加且速度较快,则要确定进程是否正常,有没有软、硬件的问题,如内存泄漏等。

备注:

Sun系统结果Free列呈现的数值即为空余内存值,单位为K,与总内存大小进行比较,即可计算出内存占用比。

Linux系统结果剩余内存为total减used的值。

❻ postgres 数据库怎么查看进程

命令如下:
sudo apt-get install postgresql

在安装的过程中,会自动创建一个postgres的默认账户,可以在该账户下执行各种SQL命令。

❼ oracle数据库怎么查看进程数

oracle进程数查询

1.cmd

2.sqlplus /nolog

3.connect sys/test@test as sysdba

SQL> show parameter process;

NAME TYPE VALUE

------------------------------------ ----------- -----

aq_tm_processes integer 0

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 10

log_archive_max_processes integer 2

processes integer 1000

再查进程数

SQL> select count(*) from v$session;

COUNT(*)

----------

224

❽ 如何查看哪些进程和服务器正在使用数据库

Oracle服务器由数据库和实例组成,实例包括进程和内存结构。
你连接到一个实例上,只能查到与该实例对应的数据库。数据库名可以这样简单查询
show
parameter
db_name
或者楼上的语句也可以,但是都只能获得当前的数据库名。

热点内容
内存大小的存储 发布:2025-01-22 18:58:17 浏览:392
tampermonkey脚本 发布:2025-01-22 18:53:17 浏览:116
windows7共享文件夹 发布:2025-01-22 18:53:17 浏览:478
如何调节安卓手机的内存 发布:2025-01-22 18:49:30 浏览:638
佳能相机存储卡怎么取消 发布:2025-01-22 18:40:59 浏览:568
天猫宝贝上传 发布:2025-01-22 18:35:09 浏览:544
ipad如何登录金铲铲安卓账号 发布:2025-01-22 18:32:09 浏览:319
加密沟通 发布:2025-01-22 18:31:22 浏览:555
win7ftp用户名和密码设置 发布:2025-01-22 17:46:48 浏览:221
三表联查的sql语句 发布:2025-01-22 17:27:13 浏览:418