Oracle資料庫巡檢

來源:互聯網
上載者:User

標籤:Oracle資料庫巡檢

select inst_id,status,count(*) from gv$session group by inst_id,status order by status;


$ORACLE_HOME\rdbms\admin\spreport.sql



Oracle資料庫巡檢

一、作業系統檢查

1.作業系統資源使用方式top/topas/iostat/vmstat 重點關注CPU/記憶體/交換的使用方式

2.作業系統空間使用方式df -h/-g      重點關注資料庫目錄空間(du -sh *)(du -sm *)

3.作業系統警示日誌

HP: cat /var/adm/syslog/syslog.log

AIX:errpt | more    

LINUX: cat /var/log/messages

SUN:cat /var/log/messages

Windows:事件檢視器,查看事件內容

4.uptime查看作業系統是否有重啟過特別是rac如有重啟重點檢查grid的alert日誌查明原因

 

 

二、叢集檢查

1.檢查叢集狀態crs_stat -t

2.檢查叢集中資料庫的狀態crsctl status res -t

 

3.檢查service狀態(grid:lsnrctl status),如都飄在一個檢點上需要reload到對應節點(srvctl -h)

srvctl relocate service -d <db_unique_name> -s <service_name> {-i <old_inst_name> -t <new_inst_name> | -c <current_node> -n <target_node>} [-f]

 

4.檢查叢集alert日誌  10g:$CRS_HOME/log/{hostname}/alert{hostname}.log11g:$ORACLE_HOME/log/{hostname}/alert{hostname}.log

5.ASM磁碟空間是否正常

select name,total_mb,free_mb from v$asm_diskgroup;

6.檢查磁碟狀態

select name,path,STATE,MODE_STATUS from v$asm_disk;

 

 

三、資料庫檢查

1.重點資料表空間使用方式確保使用率在85%以內

2.資源使用方式select * from v$resource_limit;(set linesize 300;set pagesize 300;)

3.閃回使用方式

select flashback_on from v$database;

查詢檢視v$recovery_file_dest視圖來瞭解其位置和最大的大小

select * from v$recovery_file_dest;

使用v$flash_recovery_area_usage確定閃回恢複區中的檔案使用明細

select * from v$flash_recovery_area_usage;

 

4.11g的新客戶檢查新特性是否關閉

是否開啟審計show parameter audit_trail   (db 開   none 關)

如開啟詢問是否有特許需求可以關閉

alter system set audit_trail=none scope=spfile sid='*';

truncate table sys.aud$;

 

select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES/1024/1024 MB from dba_segments where SEGMENT_TYPE='TABLE' and SEGMENT_NAME='AUD$';

 

5.清理監聽日誌             (win: > listener.log    server 2008 R2 : echo " " > log.xml)


10g及10g以前:$ORACLE_HOME/network/log

11g以後:$ORACLE_BASE/diag/tnslsnr/{hostname}/listener/trace

lsnrctl status查看監聽日誌目錄

10g: $ORACLE_HOME/network/admin/log/    11g:/oracle/gridbase/diag/tnslsnr/s1-11g/listener/alert/log.xml

LSNRCTL> set 

LSNRCTL> set current_listener LISTENER

Current Listener is LISTENER

LSNRCTL> set log_status off

LSNRCTL> set log_status on

LSNRCTL> exit

11g LISTENER_SCAN1

LSNRCTL> set current_listener LISTENER_SCAN1

 

6.檢查資料庫警示日誌

10g以前:$ORACLE_BASE/admin/{SID}/bdump

D:\ORACLE\PRODUCT\10.2.0\ADMIN\{SID}\BDUMP

11g:$ORACLE_BASE/diag/rdbms/{DB_NAME}/{SID}/trace

 

7.查看資料庫等待事件

--查看整體資料庫的等待事件情況

select event,count(*) from gv$session_wait where wait_class<>'Idle' group by event;

 

 

8.收集awr報告

(1)擷取AWR報告

SQL>@ /rdbms/admin/awrrpt.sql     (退出sqlplus即可看到AWR報告)

詢問客戶高峰期時間點,截取1-2小時的報告

 

四、備份檢查

1.確定是否存在邏輯或物理備份並查看備份情況(需檢查備份日誌)

2.如存在dbra或dg需檢查同步情況

切日誌,查看備庫是否應用正常

select THREAD#,max(sequence#) from v$archived_log group by thread#;  主機

select THREAD#,max(sequence#) from v$archived_log where applied='YES' group by thread#;  備庫

select THREAD#,max(sequence#) from v$archived_log group by thread#;  備庫

備機空間檢查

3.ogg同步情況檢查

[[email protected] odc12]$ ps -ef | grep mgr

oracle    8492     1  0 Mar17          00:02:29 ./mgr PARAMFILE /odc12/dirprm/mgr.prm REPORTFILE /odc12/dirrpt/MGR.rpt PROCESSID MGR USESUBDIRS

oracle   26085     1  0 Mar22          00:00:15 ./mgr PARAMFILE /odc/dirprm/mgr.prm REPORTFILE /odc/dirrpt/MGR.rpt PROCESSID MGR PORT 7809

cd /odc12

./ggsci

info all

ggserr.log

 

 

 

 

五、跑巡檢指令碼

六、資訊收集打包

1.作業系統日誌

2.叢集alert日誌      grid使用者(/oracle/grid/crs_1($ORACLE_HOME)/log/zjrac1)

3.資料庫alert日誌

4.巡檢指令碼輸出內容

 

mkdir 

 

資料表空間檢查

set feed off 

set linesize 100 

set pagesize 200 

column "USED (MB)" format a10 

column "FREE (MB)" format a10 

column "TOTAL (MB)" format a10 

column PER_FREE format a10 

--spool tablespace.alert 

SELECT F.TABLESPACE_NAME,

TO_CHAR ((T.TOTAL_SPACE - F.FREE_SPACE),'999,999') "USED (MB)", 

TO_CHAR (F.FREE_SPACE, '999,999') "FREE (MB)", 

TO_CHAR (T.TOTAL_SPACE, '999,999') "TOTAL (MB)", 

TO_CHAR ((ROUND ((F.FREE_SPACE/T.TOTAL_SPACE)*100)),'999')||' %' PER_FREE,

TO_CHAR (T.MAX_SPACE,'999,999') "MAXEXTEND (MB)"

FROM ( 

SELECT TABLESPACE_NAME, 

ROUND (SUM (BLOCKS*(SELECT VALUE/1024 

FROM V$PARAMETER 

WHERE NAME = 'db_block_size')/1024) 

) FREE_SPACE 

FROM DBA_FREE_SPACE 

GROUP BY TABLESPACE_NAME 

) F, 

SELECT TABLESPACE_NAME, 

ROUND (SUM (BYTES/1048576)) TOTAL_SPACE,

ROUND (SUM (MAXBYTES/1048576)) MAX_SPACE

FROM DBA_DATA_FILES 

GROUP BY TABLESPACE_NAME 

) T 

WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME

order by PER_FREE asc;

 

資料表空間:

select tpsname,status,mgr,maxsize,c_userd,max_used from (

SELECT  d.tablespace_name  tpsname,d.status status,

        d.segment_space_management mgr, d.contents type,

        TO_CHAR(NVL(trunc(A.maxbytes / 1024 / 1024), 0),'99G999G990') maxsize,

        TO_CHAR(NVL((a.bytes - NVL(f.bytes, 0)) / a.bytes * 100, 0),'990D00') c_userd,

        TO_CHAR(NVL((a.bytes - NVL(f.bytes, 0)) / a.maxbytes * 100, 0),'990D00') max_used

        FROM sys.dba_tablespaces d,

        (SELECT tablespace_name,sum(bytes) bytes,SUM(case autoextensible when  'NO'  then BYTES when  'YES' then MAXBYTES else null end ) maxbytes   FROM dba_data_files  GROUP BY tablespace_name) a,

        (SELECT tablespace_name,SUM(bytes) bytes, MAX(bytes) largest_free   FROM dba_free_space   GROUP BY tablespace_name) f  

        WHERE d.tablespace_name = a.tablespace_name   AND d.tablespace_name = f.tablespace_name(+)

        )

        where max_used>80

    order by max_used desc;




其它:


SQL> select file_name,bytes/1024/1024,maxbytes/1024/1024,AUTOEXTENSIBLE from dba_data_files;




Oracle資料庫巡檢

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.