作為DBA需要對oracle的連接情況和內存使用情況瞭如指掌,不能等出問題的時候再去排除問題,平時也需要做好監控。下面分享下怎麼通過sql去查看oracle的連接情況和內存使用情況。
1、查看連接oracle的所有機器的連接數
select machine,count(*) from v$session group by machine;
2、查看連接oracle的所有機器的連接數和狀態
select machine,status,count(*)from v$sessiongroup by machine,statusorder by status;
3、oracle的PGA、SGA和process count
select 'SGA' AS NAME,ROUND(sum(value)/1024/1024,2)||'M' AS "SIZE(M)" from v$sga;
select 'PGA' AS NAME,ROUND(value/1024/1024,2)||'M' AS "SIZE(M)" from v$pgastatwhere name='total PGA allocated';
select 'TOTAL' AS NAME,((SELECT ROUND(sum(value)/1024/1024,2)from v$sga)+(select ROUND(value/1024/1024,2)from v$pgastatwhere name='total PGA allocated'))||'M' AS "SIZE(M)" FROM DUAL;
SELECT NAME,TO_CHAR(VALUE)FROM V$PGASTATWHERE NAME='process count';
4、查看oracle進程消耗的內存
SELECT * FROM V$PROCESS_MEMORY;
5、查看oracle進程的使用
SELECT PROGRAM, PGA_USED_MEM, PGA_ALLOC_MEM, PGA_FREEABLE_MEM, PGA_MAX_MEM FROM V$PROCESS;
大家有什麼好的sql也可以一起分享下哦,共勉。
後面會開始分享下dblink、ogg、rac相關內容,大家有興趣的話可以關注下哦~
閱讀更多 波波說運維 的文章