資料庫巡檢常用的SQL語句
連線到伺服器後
su - oracle
sqlplus /nolog
conn / as sysdba
1.檢視例項的狀態:
set linesize 200
set pagesize 200
select instance_name,status
from v$instance;
2.檢視資料檔案的狀態:
set linesize 200
set pagesize 200
select file_name,tablespace_name,status,autoextensible
from dba_data_files;
3.檢視日誌的狀態資訊:
set linesize 200
set pagesize 200
select sequence#,group#,status,archived
from v$log;
4.檢視備份的有效性:
su - oracle
rman
connect target
list backup;
看當天備份的status,如果是AVAILABLE,說明備份有效
5.檢視session的使用情況:
set linesize 200
set pagesize 200
select count(*)
from v$session;---總的session
select count(*)
from v$session
where status='ACTIVE';---活動的session
6.表空間使用情況:
set linesize 200
set pagesize 200
select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
from
(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
order by ((a.bytes-b.bytes)/a.bytes) desc;
7.監控FRA空間使用率
set linesize 200
set pagesize 200
select * from v_$flash_recovery_area_usage;
SELECT (100 - sum(percent_space_used)) + sum(percent_space_reclaimable)FROM v$flash_recovery_area_usage;
8.緩衝區命中率:
set linesize 200
set pagesize 200
select (1-(sum(decode(name, 'physical reads',value,0))/(sum(decode(name, 'db block gets',value,0))
+sum(decode(name,'consistent gets',value,0))))) * 100 "Hit Ratio"
from v$sysstat;
9.資料字典快取命中率:
set linesize 200
set pagesize 200
select (1-(sum(getmisses)/sum(gets))) * 100 "Hit Ratio" from v$rowcache;
10.庫快取命中率:
set linesize 200
set pagesize 200
select Sum(Pins)/(Sum(Pins) + Sum(Reloads)) * 100 "Hit Ratio" from V$LibraryCache;
11.PGA記憶體排序命中率:
set linesize 200
set pagesize 200
select a.value "Disk Sorts",b.value "Memory Sorts",
round((100*b.value) / decode((a.value+b.value),0,1,(a.value+b.value)),2) "Pct Memory Sorts"
from v$sysstat a,v$sysstat b
where a.name = 'sorts (disk)'
and b.name = 'sorts (memory)';
12.最消耗記憶體的前10個語句佔所有語句的比例:---在沒有調整的情況下,大多數系統中10個最常使用的SQL語句的訪問量佔了整個系統中記憶體讀操作的50%以上
set linesize 200
set pagesize 200
select sum(pct_bufgets) "Percent"
from (select rank() over ( order by buffer_gets desc) as rank_bufgets,
to_char(100*ratio_to_report(buffer_gets) over(),'999.99') pct_bufgets
from v$sqlarea)
where rank_bufgets < 11;
13.調整前25個最佔用記憶體的語句:
set serverout on size 1000000
declare
top25 number;
text1 varchar2(4000);
x number;
len1 number;
cursor c1 is
select buffer_gets,substr(sql_text,1,4000)
from v$sqlarea
order by buffer_gets desc;
begin
dbms_output.put_line('Gets'||' '||'Text');
dbms_output.put_line('----------'||' '||'----------------------');
open c1;
for i in 1..25 loop
fetch c1 into top25,text1;
dbms_output.put_line(rpad(to_char(top25),9)||' '||substr(text1,1,66));
len1:=length(text1);
x:=66;
while len1 > x-1 loop
dbms_output.put_line('" '||substr(text1,x,66));
x:=x+66;
end loop;
end loop;
end;
/
14.最浪費磁碟讀操作的前10個語句佔所有語句的比例:
set linesize 200
set pagesize 200
select sum(pct_bufgets) "Percent"
from (select rank() over (order by disk_reads desc) as rank_bufgets,
to_char(100*ratio_to_report(disk_reads) over (),'999.99') pct_bufgets
from v$sqlarea)
where rank_bufgets < 11;
15.查詢25個濫用磁碟讀操作的最主要語句
set serverout on size 1000000
declare
top25 number;
text1 varchar2(4000);
x number;
len1 number;
cursor c1 is
select disk_reads,substr(sql_text,1,4000)
from v$sqlarea
order by disk_reads desc;
begin
dbms_output.put_line('Reads'||' '||'Text');
dbms_output.put_line('----------'||' '||'----------------------');
open c1;
for i in 1..25 loop
fetch c1 into top25,text1;
dbms_output.put_line(rpad(to_char(top25),9)||' '||substr(text1,1,66));
len1:=length(text1);
x:=66;
while len1 > x-1 loop
dbms_output.put_line('" '||substr(text1,x,66));
x:=x+66;
end loop;
end loop;
end;
/
16.檢視鎖定問題
set linesize 200
set pagesize 200
select username,lockwait,status,machine,program
from v$session
where sid in
(select session_id from v$locked_object);
17.檢視鎖定的sql(如果發現鎖定的話)
set linesize 200
set pagesize 200
select sql_text
from v$sql
where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object));
或者
SELECT
REPLACE(SQL_TEXT, CHR(13), CHR(10) || CHR(13))
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.sid = &sid
and b.serial# = &serial) order by rownum desc;
18.檢視鎖定的位置(如果發現鎖定的話)
set linesize 200
set pagesize 200
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S
WHERE l.SESSION_ID=S.SID;
19.刪除鎖定的會話(如果發現鎖定的話)
set linesize 200
set pagesize 200
alter system kill session 'sid,serial#';
如:alter system kill session '1076,1263'; (其中sid=l.session_id)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16978544/viewspace-691846/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫常用的sql語句大全--sql資料庫SQL
- 資料庫常用操作SQL語句資料庫SQL
- 1.4 資料庫和常用SQL語句(正文)——MySQL資料庫命令和SQL語句資料庫MySql
- 資料庫常用的sql語句彙總資料庫SQL
- SQL Server資料庫巡檢SQLServer資料庫
- MySQL資料庫:7、SQL常用查詢語句MySql資料庫
- 【資料庫】SQL語句資料庫SQL
- MSSQL資料庫健康檢查--SQL Server巡檢SQL資料庫Server
- oracle資料庫檢視鎖表的sql語句整理Oracle資料庫SQL
- SQL Server 資料庫部分常用語句小結(二)SQLServer資料庫
- SQL Server 資料庫部分常用語句小結(一)SQLServer資料庫
- 資料庫的檢索語句資料庫
- oracle資料庫常用語句Oracle資料庫
- sql常用語句SQL
- sql 正則替換資料庫語句!SQL資料庫
- GaussDB資料庫SQL系列-動態語句資料庫SQL
- MySQL中常用的SQL語句MySql
- sqlserver dba常用的sql語句SQLServer
- idea內建資料庫 + sql語句庫表操作Idea資料庫SQL
- Sql Server 資料庫獲取字串中小寫字母的SQL語句SQLServer資料庫字串
- Oracle OCP(01):使用SQL SELECT語句檢索資料OracleSQL
- MySQL資料庫健康檢查--MySQL巡檢MySql資料庫
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- mysql資料庫sql語句基礎知識MySql資料庫
- MySQL資料庫中SQL語句分幾類?MySql資料庫
- 常用sql進階語句SQL
- SQL 常用語句一覽SQL
- 資料庫介紹--認識簡單的SQL語句資料庫SQL
- DBeave如何檢視資料庫表的DDL建立語句資料庫
- 值得白嫖的資料庫常用操作語句彙總(資料庫、資料表、資料操作)資料庫
- Oracle資料庫(RAC)巡檢報告Oracle資料庫
- SQL server資料庫表碎片比例查詢語句SQLServer資料庫
- Android原生SQLite常用SQL語句AndroidSQLite
- mysql 常用sql語句 簡介MySql
- 織夢cms常用的SQL語句_dedecmsSQL
- 資料庫操作語句資料庫
- Mysql 資料庫 -------- SQL語句進階查詢 ------- 前部分MySql資料庫
- 資料庫最佳化技巧 - SQL語句最佳化資料庫SQL
- Oracle資料庫(單機)巡檢報告Oracle資料庫