oracle數據庫巡檢內容_第1頁
oracle數據庫巡檢內容_第2頁
oracle數據庫巡檢內容_第3頁
oracle數據庫巡檢內容_第4頁
oracle數據庫巡檢內容_第5頁
已閱讀5頁,還剩51頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上oracle數據庫巡檢內容1.    檢查基本狀況在本節中主要對數據庫的基本狀況進行檢查,其中包含:檢查實例狀態,檢查Oracle服務進程,檢查Oracle監聽進程,共三個部分。1.1.   檢查Oracle實例狀態SQL> select instance_name,host_name,startup_time,status,database_status from v$instance;INSTANCE_NAME HOST_NAME STARTUP_TIME S

2、TATUS   DATABASE_STATUS-     -   -  -   - -CKDB            AS14         2009-5-7 9:3     O

3、PEN       ACTIVE其中“STATUS”表示Oracle當前的實例狀態,必須為“OPEN”;“DATABASE_STATUS”表示Oracle當前數據庫的狀態,必須為“ACTIVE”。SQL> select name,log_mode,open_mode from v$database;NAME     LOG_MODE    OPEN_MODE-     - 

4、;      -CKDB     ARCHIVELOG  READ WRITE其中“LOG_MODE”表示Oracle當前的歸檔方式。“ARCHIVELOG”表示數據庫運行在歸檔模式下,“NOARCHIVELOG”表示數據庫運行在非歸檔模式下。在我們的系統中數據庫必須運行在歸檔方式下。1.2.   檢查Oracle服務進程$ps -ef|grep ora_|grep -v grep&&ps -ef|grep ora_|g

5、rep -v grep|wc loracle   2960    1 0 May07 ?       00:01:02 ora_pmon_CKDBoracle   2962    1 0 May07 ?       00:00:22 ora_psp0_CKDBoracle  &#

6、160;2964    1 0 May07 ?       00:00:00 ora_mman_CKDBoracle   2966    1 0 May07 ?       00:03:20 ora_dbw0_CKDBoracle   2968    1

7、60;0 May07 ?       00:04:29 ora_lgwr_CKDBoracle   2970    1 0 May07 ?       00:10:31 ora_ckpt_CKDBoracle   2972    1 0 May07 ?    

8、   00:03:45 ora_smon_CKDBoracle   2974    1 0 May07 ?       00:00:00 ora_reco_CKDBoracle   2976    1 0 May07 ?       00:01:24 ora_cjq0_

9、CKDBoracle   2978    1 0 May07 ?       00:06:17 ora_mmon_CKDBoracle   2980    1 0 May07 ?       00:07:26 ora_mmnl_CKDBoracle   2982

10、0;   1 0 May07 ?       00:00:00 ora_d000_CKDBoracle   2984    1 0 May07 ?       00:00:00 ora_s000_CKDBoracle   2994    1 0 May07 ?

11、       00:00:28 ora_arc0_CKDBoracle   2996    1 0 May07 ?       00:00:29 ora_arc1_CKDBoracle   3000    1 0 May07 ?      

12、 00:00:00 ora_qmnc_CKDBoracle   3625    1 0 May07 ?       00:01:40 ora_q000_CKDBoracle  31594    1 0 Jul20 ?       00:00:00 ora_q003_CKDBoracle &

13、#160;23802    1 0 05:09 ?       00:00:33 ora_j000_CKDB19在檢查Oracle的進程命令輸出后,輸出顯示至少應包括以下一些進程:. Oracle寫數據文件的進程,輸出顯示為:“ora_dbw0_CKDB”. Oracle寫日志文件的進程,輸出顯示為:“ora_lgwr_ CKDB”. Oracle監聽實例狀態的進程,輸出顯示為:“ora_smon_ CKDB”. Oracle監聽客戶端連接進程狀態的進程,輸出顯示為:“ora

14、_pmon_ CKDB”. Oracle進行歸檔的進程,輸出顯示為:“ora_arc0_ CKDB”. Oracle進行檢查點的進程,輸出顯示為:“ora_ckpt_ CKDB”. Oracle進行的進程,輸出顯示為:“ora_reco_ CKDB”1.3.   檢查Oracle監聽狀態/home/oracle>lsnrctl statusLSNRCTL for Linux: Version 10.2.0.2.0 - Production on 23-JUL-2009 14:11:53Copyright (c) 1991, , Oracle.

15、60;All rights reserved.Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)STATUS of the LISTENER-Alias                    LISTENERVersion          

16、;        TNSLSNR for Linux: Version 10.2.0.2.0 - ProductionStart Date               07-MAY-2009 09:35:52Uptime            

17、60;      77 days 4 hr. 36 min. 0 secTrace Level              offSecurity                 ON: Local OS Authenticatio

18、nSNMP                     OFFListener Parameter File  /data/oracle/product/10.2.0/network/admin/listener.oraListener Log File        /data/oracle

19、/product/10.2.0/network/log/listener.logListening Endpoints Summary.(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=AS14)(PORT=1521)Services Summary.Service "CKDB" has 1 instance(s).Instance "CKDB", status READY, has 1 handler(s) for this service.Service "CKDBXDB" has 1 insta

20、nce(s).Instance "CKDB", status READY, has 1 handler(s) for this service.Service "CKDB_XPT" has 1 instance(s).Instance "CKDB", status READY, has 1 handler(s) for this service.The command completed successfully“Services Summary”項表示Oracle的監聽進程正在監聽哪些數據庫實例,輸出顯示中至少應該有“CKDB”這一

21、項。檢查監聽進程是否存在:oracleAS14 $ ps -ef|grep lsn|grep -v greporacle   2954    1 0 May07 ?       00:01:17 /data/oracle/product/10.2.0/bin/tnslsnr LISTENER inherit2.    檢查系統和oracle日志文件在本節主要檢查相關的日志文件,包含:檢查操作系統的

22、日志文件,檢查Oracle日志文件,檢查Oracle核心轉儲目錄,檢查Root用戶和Oracle用戶的email,總共四個部分。2.1.   檢查操作系統日志文件# cat /var/log/messages |grep failed查看是否有與Oracle用戶相關的出錯信息。2.2.   檢查oracle日志文件oracleAS14 $ cat /data/oracle/admin/CKDB/bdump/alert_CKDB.log |grep ora-oracleAS14 $ cat /data/oracle/admin/CKDB

23、/bdump/alert_CKDB.log |grep erroracleAS14 $ cat /data/oracle/admin/CKDB/bdump/alert_CKDB.log |grep failOracle在運行過程中,會在警告日志文件(alert_SID.log)中記錄數據庫的一些運行情況:數據庫的啟動、關閉,啟動時的非缺省參數;數據庫的重做日志切換情況,記錄每次切換的時間,及如果因為檢查點(checkpoint)操作沒有執行完成造成不能切換,會記錄不能切換的原因;對數據庫進行的某些操作,如創建或刪除表空間、增加數據文件;數據庫發生的錯誤,如表空間不夠、出現壞塊、數據庫內部錯誤(

24、ORA600)等。定期檢查日志文件,根據日志中發現的問題及時進行處理:問題處理啟動參數不對檢查初始化參數文件因為檢查點操作或歸檔操作沒有完成造成重做日志不能切換如果經常發生這樣的情況,可以考慮增加重做日志文件組;想辦法提高檢查點或歸檔操作的效率;有人未經授權刪除了表空間檢查數據庫的安全問題,是否密碼太簡單;如有必要,撤消某些用戶的系統權限出現壞塊檢查是否是硬件問題(如磁盤本生有壞塊),如果不是,檢查是那個數據庫對象出現了壞塊,對這個對象進行重建表空間不夠增加數據文件到相應的表空間出現ORA-600根據日志文件的內容查看相應的TRC文件,如果是Oracle的bug,要及時打上相應的補丁Liste

25、ner日志:$ORACLE_HOME/network/log2.3.   檢查Oracle核心轉儲目錄$ls $ORACLE_BASE/admin/CKDB/cdump/*.trc|wc -l$ls $ORACLE_BASE/admin/CKDB/udump/*.trc|wc l如果上面命令的結果每天都在增長,則說明Oracle進程經常發生核心轉儲。這說明某些用戶進程或者數據庫后臺進程由于無法處理的原因而異常退出。頻繁的核心轉儲特別是數據庫后臺進程的核心轉儲會導致數據庫異常終止。2.4.   檢查Root用戶和Oracle用戶的ema

26、il#tail n 200 /var/mail/root#tail n 200 /var/mail/oracle查看有無與Oracle用戶相關的出錯信息。3.    檢查Oracle對象狀態在本節主要檢查相關Oracle對象的狀態,包含:檢查Oracle控制文件狀態,檢查Oracle在線日志狀態,檢查Oracle表空間的狀態,檢查Oracle所有數據文件狀態,檢查Oracle所有表、索引、存儲過程、觸發器、包等對象的狀態,檢查Oracle所有回滾段的狀態,總共六個部分。3.1.   檢查Oracle控制文件狀態SQL>

27、 select status,name from v$controlfile;STATUS NAME- -/data/oradata/CKDB/control01.ctl/data/oradata/CKDB/control02.ctl/data/oradata/CKDB/control03.ctl輸出結果應該有3條以上(包含3條)的記錄,“STATUS”應該為空。狀態為空表示控制文件狀態正常。3.2.   檢查Oracle在線日志狀態SQL> select group#,status,type,member from v$logfile;GROUP

28、# STATUS TYPE   MEMBER- - - -3        ONLINE /data/oradata/CKDB/redo03.log2        ONLINE /data/oradata/CKDB/redo02.log1        ONLINE /data/orad

29、ata/CKDB/redo01.log4        ONLINE /data/oradata/CKDB/redo04.log5        ONLINE /data/oradata/CKDB/redo05.log6        ONLINE /data/oradata/CKDB/redo06.log6 rows sele

30、cted輸出結果應該有3條以上(包含3條)記錄,“STATUS”應該為非“INVALID”,非“DELETED”。注:“STATUS”顯示為空表示正常。3.3.   檢查Oracle表空間的狀態SQL> select tablespace_name,status from dba_tablespaces;TABLESPACE_NAME               STATUS- -SYSTEM 

31、60;                      ONLINEUNDOTBS1                      ONLINESYSAUX &

32、#160;                      ONLINETEMP                         

33、60;ONLINEUSERS                         ONLINESJ1                     &

34、#160;     ONLINEADM_INDEX                     ONLINEHOME_DATA                  &

35、#160;  ONLINEHOME_INDEX                    ONLINEPHOTO_DATA                    ONLINEPHOTO

36、_INDEX                   ONLINE。輸出結果中STATUS應該都為ONLINE。3.4.   檢查Oracle所有數據文件狀態SQL> select name,status from v$datafile;NAME           

37、                                   STATUS- -/data/oradata/CKDB/system01.dbf        &#

38、160;          SYSTEM/data/oradata/CKDB/undotbs01.dbf                  ONLINE/data/oradata/CKDB/sysaux01.dbf         

39、;          ONLINE/data/oradata/CKDB/users01.dbf                    ONLINE/data/oradata/CKDB/sj.dbf        

40、0;                ONLINE/data/oradata/CKDB/HOME_DATA1.dbf                 ONLINE/data/oradata/CKDB/HOME_INDEX1.dbf   

41、60;            ONLINE/data/oradata/CKDB/PHOTO_DATA1.dbf                ONLINE/data/oradata/CKDB/PHOTO_INDEX1.dbf        

42、       ONLINE/data/oradata/CKDB/BLOG_DATA1.dbf                 ONLINE/data/oradata/CKDB/BLOG_INDEX1.dbf             

43、;   ONLINE/data/oradata/CKDB/AUDIO_DATA1.dbf                ONLINE/data/oradata/CKDB/AUDIO_INDEX1.dbf               ONLINE/data/or

44、adata/CKDB/VIDEO_DATA1.dbf                ONLINE/data/oradata/CKDB/VIDEO_INDEX1.dbf               ONLINE/data/oradata/CKDB/SYS_DATA1.dbf 

45、60;                ONLINE/data/oradata/CKDB/SYS_INDEX1.dbf                 ONLINE/data/oradata/CKDB/ADM_DATA1.dbf   

46、0;              ONLINE/data/oradata/CKDB/ADM_INDEX1.dbf                 ONLINE/data/oradata/CKDB/perfstat.dbf      

47、             ONLINE輸出結果中“STATUS”應該都為“ONLINE”。或者:SQL> select file_name,status from dba_data_files;FILE_NAME                     

48、               STATUS- -/data/oradata/CKDB/users01.dbf               AVAILABLE/data/oradata/CKDB/sysaux01.dbf       

49、;       AVAILABLE/data/oradata/CKDB/undotbs01.dbf             AVAILABLE/data/oradata/CKDB/system01.dbf              AVAILABLE/data

50、/oradata/CKDB/sj.dbf                    AVAILABLE/data/oradata/CKDB/perfstat.dbf              AVAILABLE/data/oradata/CKDB/HOME_DAT

51、A1.dbf            AVAILABLE/data/oradata/CKDB/HOME_INDEX1.dbf           AVAILABLE/data/oradata/CKDB/PHOTO_DATA1.dbf           AVAI

52、LABLE輸出結果中“STATUS”應該都為“AVAILABLE”。3.5.   檢查無效對象sql>select owner,object_name,object_type from dba_objects where status!='VALID' and owner!='SYS' and owner!='SYSTEM'no rows selected如果有記錄返回,則說明存在無效對象。若這些對象與應用相關,那么需要重新編譯生成這個對象,或者:SELECT owner, object_name, objec

53、t_type FROM dba_objects WHERE status= 'INVALID'3.6.   檢查所有回滾段狀態SQL> select segment_name,status from dba_rollback_segs;SEGMENT_NAME                  STATUS- -SYSTEM   

54、60;                    ONLINE_SYSSMU1$                     ONLINE_SYSSMU2$   

55、60;                 ONLINE_SYSSMU3$                     ONLINE_SYSSMU4$      

56、60;              ONLINE_SYSSMU5$                     ONLINE_SYSSMU6$         

57、60;           ONLINE_SYSSMU7$                     ONLINE_SYSSMU8$            

58、60;        ONLINE_SYSSMU9$                     ONLINE_SYSSMU10$               &#

59、160;    ONLINE11 rows selected輸出結果中所有回滾段的“STATUS”應該為“ONLINE”。4.    檢查Oracle相關資源的使用情況在本節主要檢查Oracle相關資源的使用情況,包含:檢查Oracle初始化文件中相關的參數值,檢查數據庫連接情況,檢查系統磁盤空間,檢查Oracle各個表空間使用情況,檢查一些擴展異常的對象,檢查system表空間內的內容,檢查對象的下一擴展與表空間的最大擴展值,總共七個部分。4.1.   檢查Oracle初始化文件中相

60、關參數值SQL> select resource_name,max_utilization,initial_allocation,limit_value from v$resource_limit;RESOURCE_NAME       MAX_UTILIZATION INITIAL_ALLOCAT LIMIT_VALUE- - - -processes              

61、         162       500            500sessions                   &

62、#160;    168       555            555enqueue_locks                   136   

63、   6930           6930enqueue_resources               111      2660      UNLIMITEDges_procs

64、0;                        0         0              0ges_ress 

65、;                         0         0      UNLIMITEDges_locks      

66、60;                  0         0      UNLIMITEDges_cache_ress            &#

67、160;       0         0      UNLIMITEDges_reg_msgs                      0 &#

68、160;       0      UNLIMITEDges_big_msgs                      0         0 &#

69、160;    UNLIMITEDges_rsv_msgs                      0         0          

70、60;   0gcs_resources                     0         0              

71、;0gcs_shadows                       0         0              0dml_lock

72、s                        76      2440      UNLIMITEDtemporary_table_locks        

73、;     26 UNLIMITED      UNLIMITEDtransactions                     13       610   

74、0;  UNLIMITEDbranches                          0       610      UNLIMITEDcmtcallbk  &

75、#160;                      3       610      UNLIMITEDsort_segment_locks         

76、       5 UNLIMITED      UNLIMITEDmax_rollback_segments             11       610        

77、60; 65535RESOURCE_NAME       MAX_UTILIZATION INITIAL_ALLOCAT LIMIT_VALUE- - - -max_shared_servers                1 UNLIMITED      UNLIMITEDparall

78、el_max_servers             16        80           360022 rows selected若LIMIT_VALU-MAX_UTILIZATION<=5,則表明與RESOURCE_NAME相關的Oracle初始化參數需要調整。

79、可以通過修改Oracle初始化參數文件$ORACLE_BASE/admin/CKDB/pfile/initORCL.ora來修改。4.2.   檢查數據庫連接情況查看當前會話連接數,是否屬于正常范圍。SQL> select count(*) from v$session;COUNT(*)-29select sid,serial#,username,program,machine,status from v$session;SID   SERIAL#    USERNAME 

80、60;    PROGRAM       MACHINE     STATUS- - - - - -1  3                      oraclexz15saledb (P

81、MON)    xz15saledb  ACTIVE2  3                      oraclexz15saledb (DBW0)    xz15saledb  ACTIVE3  3 

82、60;                    oraclexz15saledb (DBW1)    xz15saledb  ACTIVE4  3              

83、0;       oraclexz15saledb (LGWR)    xz15saledb  ACTIVE5  3                      oraclexz15saledb (CKPT)  

84、  xz15saledb  ACTIVE6  3                      oraclexz15saledb (SMON)    xz15saledb  ACTIVE7  3    &

85、#160;                 oraclexz15saledb (RECO)    xz15saledb  ACTIVE8   1                &#

86、160;     oraclexz15saledb (CJQ0)   xz15saledb  ACTIVE9   3                      oraclexz15saledb (ARC0)   xz15

87、saledb  ACTIVE10   3                      oraclexz15saledb (ARC1)   xz15saledb  ACTIVE11 11319   ZK  AccPrtInv

88、_svrxz15tuxedo2 (TNS V1-V3)  xz15tuxedo2 INACTIVE13 48876   ZG          uploadxz15saleap (TNS V1-V3)  xz15saleap  INACTIVE17 20405   ZK   AccCreateRptxz15tuxedo

89、1 (TNS V1-V3)  xz15tuxedo1 INACTIVE20 12895   ZK      OweScanSvrxz15billdb (TNS V1-V3)  xz15billdb  INACTIVE其中:SID 會話(session)的ID號;SERIAL# 會話的序列號,和SID一起用來唯一標識一個會話;USERNAME 建立該會話的用戶名;PROGRAM 這個會話是

90、用什么工具連接到數據庫的;STATUS 當前這個會話的狀態,ACTIVE表示會話正在執行某些任務,INACTIVE表示當前會話沒有執行任何操作;如果建立了過多的連接,會消耗數據庫的資源,同時,對一些“掛死”的連接可能需要手工進行清理。如果要手工斷開某個會話,則執行:(一般不建議使用這種方式去殺掉數據庫的連接,這樣有時候session不會斷開。容易引起死連接。建議通過sid查到操作系統的spid,使用ps ef|grep spidno的方式確認spid不是ORACLE的后臺進程。使用操作系統的kill -9命令殺掉連接)alter system kill session 'SI

91、D,SERIAL#'注意:上例中SID為1到10(USERNAME列為空)的會話,是Oracle的后臺進程,不要對這些會話進行任何操作。4.3.   檢查系統磁盤空間如果文件系統的剩余空間過小或增長較快,需對其進行確認并刪除不用的文件以釋放空間。oracleAS14 $ df -hFilesystem           Size Used Avail Use% Mounted on/dev/sda5   &

92、#160;        9.7G 3.9G 5.4G 42% /dev/sda1            479M  16M 438M  4% /boot/dev/sda2            &#

93、160;49G  19G  28G 41% /datanone                1014M    0 1014M  0% /dev/shm4.4.   檢查表空間使用情況SQL> select f.tablespace_name,a.total,f.free,round(f.fr

94、ee/a.total)*100) "% Free"from(select tablespace_name, sum(bytes/(1024*1024) total from dba_data_files group by tablespace_name) a,(select tablespace_name, round(sum(bytes/(1024*1024) free from dba_free_space group by tablespace_name) fWHERE a.tablespace_name = f.tablespace_name(+)order by

95、"% Free"TABLESPACE_NAME                    TOTAL      FREE    % Free- - - -OPERATION_DATA        

96、60;             1800       547        30WAPWEB_DATA                  &

97、#160;       100        36        36OPERATION_INDEX                      500

98、       186        37SYSTEM                              1024  

99、60;    515        50SYSAUX                              1024     

100、  534        52SALE8_TEMP                           100        62 

101、0;      62SJ1                                  500       348 

102、;       70PERFSTAT                             500       356    &

103、#160;   71.HOME_DATA                            100        77       &#

104、160;77SYS_INDEX                            100       100       100VIDEO_INDEX  &

105、#160;                       100       100       100VIDEO_DATA         

106、                  100       100       100BLOG_DATA               

107、             100       100       10039 rows selected如果空閑率%Free小于10%以上(包含10%),則注意要增加數據文件來擴展表空間而不要是用數據文件的自動擴展功能。請不要對表空間增加過多的數據文件,增加數據文件的原則是每個數據文件大小為2G或者4G,自動擴展的最大限制在8G

108、。4.5.   檢查一些擴展異常的對象sql>select Segment_Name, Segment_Type, TableSpace_Name,(Extents/Max_extents)*100 PercentFrom sys.DBA_SegmentsWhere Max_Extents != 0 and (Extents/Max_extents)*100>=95order By Percent;no rows selected如果有記錄返回,則這些對象的擴展已經快達到它定義時的最大擴展值。對于這些對象要修改它的存儲結構參數。4.6. &#

109、160; 檢查system表空間內的內容select distinct(owner) from dba_tableswhere tablespace_name='SYSTEM' andowner!='SYS' and owner!='SYSTEM'unionselect distinct(owner) from dba_indexeswhere tablespace_name='SYSTEM' andowner!='SYS' and owner!='SYSTEM'no rows selec

110、ted如果記錄返回,則表明system表空間內存在一些非system和sys用戶的對象。應該進一步檢查這些對象是否與我們應用相關。如果相關請把這些對象移到非System表空間,同時應該檢查這些對象屬主的缺省表空間值。4.7.   檢查對象的下一擴展與表空間的最大擴展值sql>select a.table_name, a.next_extent, a.tablespace_namefrom all_tables a,(select tablespace_name, max(bytes) as big_chunkfrom dba_free_spacegroup by tablespace_name ) fwhere f.tablespace_name = a.tablespace_nameand a.next_extent > f.big_chunkunionselect a.index_name, a.next_extent, a.tablespace_namefrom all_indexes a,(select tablespace

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論