ORACLE數(shù)據(jù)庫日常維護手冊_第1頁
ORACLE數(shù)據(jù)庫日常維護手冊_第2頁
ORACLE數(shù)據(jù)庫日常維護手冊_第3頁
ORACLE數(shù)據(jù)庫日常維護手冊_第4頁
ORACLE數(shù)據(jù)庫日常維護手冊_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、ORACLE 數(shù)據(jù)庫日常維護手冊1ORACLE 數(shù)據(jù)庫日常維護手冊數(shù)據(jù)庫日常維護手冊1前言前言.22ORACLE 數(shù)據(jù)庫每天應(yīng)檢查的項目數(shù)據(jù)庫每天應(yīng)檢查的項目.22.1數(shù)據(jù)庫基本狀況檢查.22.1.1檢查Oracle的進程.22.1.2檢查Oracle監(jiān)聽進程.32.1.3檢查Oracle實例狀態(tài).42.1.4檢查歸檔情況.42.2數(shù)據(jù)庫日志文件檢查.42.2.1檢查Oracle日志文件.42.2.2檢查Oracle核心轉(zhuǎn)儲目錄.52.3數(shù)據(jù)庫對象狀態(tài)檢查.52.3.1檢查Oracle控制文件狀態(tài).52.3.2檢查Oracle在線日志狀態(tài).62.3.3檢查Oracle表空間的狀態(tài).62.3.4

2、檢查Oracle所有數(shù)據(jù)文件狀態(tài).62.3.5檢查Oracle所有表、索引、存儲過程、觸發(fā)器、包等對象的狀態(tài).72.4數(shù)據(jù)庫資源使用情況檢查.72.4.1檢查Oracle初始化文件中相關(guān)的參數(shù)值.72.4.2檢查Oracle各個表空間的增長情況.82.4.3檢查一些擴展異常的對象.92.4.4檢查system表空間內(nèi)的內(nèi)容.92.4.5檢查對象的下一擴展與表空間的最大擴展值.92.4.6數(shù)據(jù)庫表空間使用情況監(jiān)控.102.5檢查數(shù)據(jù)庫定時作業(yè)的完成情況.112.6數(shù)據(jù)庫壞塊的處理.112.7數(shù)據(jù)庫備份情況檢查.122.7.1檢查備份軟件的日志.122.7.2檢查數(shù)據(jù)庫歸檔日志.122.7.3控制

3、文件的備份.122.8數(shù)據(jù)庫連接情況檢查.122.8.1檢查數(shù)據(jù)庫連接.122.8.2檢查數(shù)據(jù)庫會話.122.9操作系統(tǒng)相關(guān)檢查.132.9.1檢查空間使用情況.132.9.2檢查網(wǎng)絡(luò)狀況.132.9.3檢查內(nèi)存使用情況.132.9.4檢查磁盤I/O瓶頸.143ORACLE 數(shù)據(jù)庫每周應(yīng)檢查的項目數(shù)據(jù)庫每周應(yīng)檢查的項目.143.1查看是否有危害到安全策略的問題.143.2查看的網(wǎng)絡(luò)日志.14ORACLE 數(shù)據(jù)庫日常維護手冊23.3將所有的警告日志存檔.143.4查看 ORACLE 相關(guān)的網(wǎng)站,獲取最新信息.144ORACLE 數(shù)據(jù)庫每月應(yīng)檢查的項目數(shù)據(jù)庫每月應(yīng)檢查的項目.154.1查看對數(shù)據(jù)庫

4、會產(chǎn)生危害的增長速度.154.2查看數(shù)據(jù)庫調(diào)整產(chǎn)生的影響.154.3查看 I/O 的屏頸問題.155附:附:.175.1啟動數(shù)據(jù)庫.175.2關(guān)閉數(shù)據(jù)庫.175.3啟動監(jiān)聽.185.4關(guān)閉監(jiān)聽.19ORACLE 數(shù)據(jù)庫日常維護手冊31 前言前言數(shù)據(jù)庫系統(tǒng)往往是企業(yè)或組織信息系統(tǒng)中最重要的基礎(chǔ)架構(gòu),一旦數(shù)據(jù)庫系統(tǒng)不能正常運行,那基于數(shù)據(jù)庫的整個信息架構(gòu)都會隨之癱瘓,因此我們必須保證數(shù)據(jù)庫系統(tǒng)持續(xù)的健康的運行。因此數(shù)據(jù)庫管理員必須每天對數(shù)據(jù)庫的運行狀態(tài),日志文件,備份情況,數(shù)據(jù)庫的空間使用情況,系統(tǒng)資源的使用情況進行檢查,發(fā)現(xiàn)并解決可能存在的問題,將隱患消除在萌芽中。本文列舉了 ORACLE 數(shù)據(jù)

5、庫管理員每天,每周和每月應(yīng)該檢查的一些東西,希望對 DBA有些幫助。注:所有示例可能與客戶的實際系統(tǒng)不盡相同。2 ORACLE 數(shù)據(jù)庫每天應(yīng)檢查的項目數(shù)據(jù)庫每天應(yīng)檢查的項目2.1 數(shù)據(jù)庫基本狀況檢查數(shù)據(jù)庫基本狀況檢查2.1.1 檢查檢查 Oracle 的進程的進程$ps ef|grep “ora_”|grep v grep oracle 6586 1 0 May 15 ? 0:00 ora_pmon_ORCL oracle 6598 1 0 May 15 ? 0:00 ora_snp0_ORCL oracle 6600 1 0 May 15 ? 0:00 ora_snp1_ORCL oracl

6、e 6594 1 0 May 15 ? 0:06 ora_smon_ORCL oracle 6604 1 0 May 15 ? 0:00 ora_snp3_ORCL oracle 6588 1 0 May 15 ? 6:50 ora_dbw0_ORCL oracle 6590 1 0 May 15 ? 37:48 ora_lgwr_ORCL oracle 6602 1 0 May 15 ? 0:00 ora_snp2_ORCL oracle 6606 1 0 May 15 ? 5:19 ora_arc0_ORCL oracle 6592 1 0 May 15 ? 0:45 ora_ckpt_O

7、RCL oracle 6596 1 0 May 15 ? 0:01 ora_reco_ORCL . 在檢查 Oracle 的進程命令輸出后,輸出顯示至少應(yīng)包括以下一些進程: Oracle 寫數(shù)據(jù)文件的進程,輸出顯示為:ora_dbw0_ORCL。 Oracle 寫日志文件的進程,輸出顯示為:ora_lgwr_ORCL。 Oracle 監(jiān)聽實例狀態(tài)的進程,輸出顯示為:ora_smon_ORCL。 Oracle 進行檢查點的進程,輸出顯示為:ora_ckpt_ORCL。 注:進程的后綴 ORCL 是指數(shù)據(jù)庫的實例名,以上僅是示例,與客戶系統(tǒng)可能不盡相同。ORACLE 數(shù)據(jù)庫日常維護手冊42.1.2

8、 檢查檢查 Oracle 監(jiān)聽進程監(jiān)聽進程$lsnrctl status LSNRCTL for Solaris: Version 9.2.0.4.0 - Production on 23-MAY-2005 13:12:09 (c) Copyright 2002 Oracle Corporation. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ipasdb)(PORT=1521) STATUS of the LISTENER - Alias LISTENER Version TNSL

9、SNR for Solaris: Version 9.2.0.4.0 - Production Start Date 15-MAY-2005 22:05:58 Uptime 7 days 15 hr. 6 min. 11 sec Trace Level off Security OFF SNMP OFF Listener Parameter File /opt/oracle/db01/app/oracle/product/920/network/ admin/listener.ora Listener Log File /opt/oracle/db01/app/oracle/product/9

10、20/network/ log/listener.log Services Summary. ORCL has 1 service handler(s)注:以上僅是示例,與客戶系統(tǒng)可能不盡相同。2.1.3 檢查檢查 Oracle 實例狀態(tài)實例狀態(tài)$sqlplus system/manager sqlselect instance_name,version,status,database_status from v$instance; INSTANCE_NAME VERSION STATUS DATABASE_STATUS - - - - ORCL 9.2.0.4.0 OPEN ACTIVE 其

11、中 STATUS 表示 Oracle 當前的實例狀態(tài),必須為 OPEN;DATABASE_STATUS 表示Oracle 當前數(shù)據(jù)庫的狀態(tài),必須為 ACTIVE。 sqlselect name,log_mode,open_mode from v$database; NAME LOG_MODE OPEN_MODE - - -ORACLE 數(shù)據(jù)庫日常維護手冊5ORCLARCHIVELOGREAD WRITE2.1.4 檢查歸檔情況檢查歸檔情況SQLarchive log list; Database log mode Archive Mode Automatic archival Enabled

12、Archive destination /opt/oracle/arch/ORCL Oldest online log sequence 1 Next log sequence to archive 2 Current log sequence 2 Automatic archivalEnabled 表示歸檔進行是否自動啟動 其中 LOG_MODE 表示 Oracle 當前的歸檔方式。ARCHIVELOG 表示數(shù)據(jù)庫運行在歸檔模式下,NOARCHIVELOG 表示數(shù)據(jù)庫運行在非歸檔模式下。2.2 數(shù)據(jù)庫日志文件檢查數(shù)據(jù)庫日志文件檢查2.2.1 檢查檢查 Oracle 日志文件日志文件$cat

13、$ORACLE_BASE/admin/ORCL/bdump/alert_ORCL.log|grep -i ora- $cat $ORACLE_BASE/admin/ORCL/bdump/alert_ORCL.log|grep -i err $cat $ORACLE_BASE/admin/ORCL/bdump/alert_ORCL.log|grep -i fail Oracle 在運行過程中,會在警告日志文件(alert_SID.log)中記錄數(shù)據(jù)庫的一些運行情況:數(shù)據(jù)庫的啟動、關(guān)閉,啟動時的非缺省參數(shù);數(shù)據(jù)庫的重做日志切換情況,記錄每次切換的時間,及如果因為檢查點(checkpoint)操作沒

14、有執(zhí)行完成造成不能切換,會記錄不能切換的原因; 對數(shù)據(jù)庫進行的某些操作,如創(chuàng)建或刪除表空間、增加數(shù)據(jù)文件; 數(shù)據(jù)庫發(fā)生的錯誤,如表空間不夠、出現(xiàn)壞塊、數(shù)據(jù)庫內(nèi)部錯誤(ORA600)DBA 應(yīng)該定期檢查日志文件,根據(jù)日志中發(fā)現(xiàn)的問題及時進行處理問題 處理:啟動參數(shù)不對 檢查初始化參數(shù)文件因為檢查點操作或歸檔操作沒有完成造成重做日志不能切換 如果經(jīng)常發(fā)生這樣的情況,可以考慮增加重做日志文件組;想辦法提高檢查點或歸檔操作的效率;有人未經(jīng)授權(quán)刪除了表空間 檢查數(shù)據(jù)庫的安全問題,是否密碼太簡單;如有必要,撤消某些用戶的系統(tǒng)權(quán)限出現(xiàn)壞塊 檢查是否是硬件問題(如磁盤本生有壞塊),如果不是,檢查是那個數(shù)據(jù)庫對

15、象出現(xiàn)了壞塊,對這個對象進行重建表空間不夠 增加數(shù)據(jù)文件到相應(yīng)的表空間出現(xiàn) ORA-600 根據(jù)日志文件的內(nèi)容查看相應(yīng)的 TRC 文件,如果是 Oracle 的 bug,要及時打上相應(yīng)的補丁ORACLE 數(shù)據(jù)庫日常維護手冊62.2.2 檢查檢查 Oracle 核心轉(zhuǎn)儲目錄核心轉(zhuǎn)儲目錄$ls $ORACLE_BASE/admin/ORCL/cdump/*.trc|wc -l $ls $ORACLE_BASE/admin/ORCL/udump/*.trc|wc l 如果上面命令的結(jié)果每天都在增長,則說明 Oracle 進程經(jīng)常發(fā)生核心轉(zhuǎn)儲。這說明某些用戶進程或者數(shù)據(jù)庫后臺進程由于無法處理的原因而異

16、常退出。頻繁的核心轉(zhuǎn)儲特別是數(shù)據(jù)庫后臺進程的核心轉(zhuǎn)儲會導(dǎo)致數(shù)據(jù)庫異常終止。2.3 數(shù)據(jù)庫對象狀態(tài)檢查數(shù)據(jù)庫對象狀態(tài)檢查2.3.1 檢查檢查 Oracle 控制文件狀態(tài)控制文件狀態(tài)sqlselect * from v$controlfile; STATUS NAME - /opt/oracle/db02/oradata/ORCL/control01.ctl /opt/oracle/db03/oradata/ORCL/control02.ctl /opt/oracle/db04/oradata/ORCL/control03.ctl2.3.2 檢查檢查 Oracle 在線日志狀態(tài)在線日志狀態(tài)sqls

17、elect * from v$logfile; GROUP# STATUS MEMBER - - 1 ONLINE/opt/oracle/db02/oradata/ORCL/redo01.log 2 ONLINE/opt/oracle/db03/oradata/ORCL/redo02.log 3 ONLINE/opt/oracle/db04/oradata/ORCL/redo03.log 輸出結(jié)果應(yīng)該有 3 條以上(包含 3 條)記錄,STATUS 應(yīng)該為非 INVALID,非DELETED。 注:STATUS 顯示為空表示正常。2.3.3 檢查檢查 Oracle 表空間的狀態(tài)表空間的狀態(tài)sq

18、lselect tablespace_name,status from dba_tablespaces; ORACLE 數(shù)據(jù)庫日常維護手冊7 TABLESPACE_NAME STATUS - - SYSTEM ONLINE TOOLS ONLINE RBS ONLINE TEMP ONLINE USERS ONLINE INDX ONLINE DRSYS ONLINE其中 STATUS 應(yīng)該都為 ONLINE2.3.4 檢查檢查 Oracle 所有數(shù)據(jù)文件狀態(tài)所有數(shù)據(jù)文件狀態(tài)sqlselect name,status from v$datafile; NAME STATUS - /opt/or

19、acle/db02/oradata/ORCL/system01.dbf ONLINE /opt/oracle/db02/oradata/ORCL/tools01.dbf ONLINE /opt/oracle/db02/oradata/ORCL/rbs01.dbf ONLINE /opt/oracle/db02/oradata/ORCL/temp01.dbf ONLINE /opt/oracle/db02/oradata/ORCL/users01.dbf ONLINE /opt/oracle/db02/oradata/ORCL/indx01.dbf ONLINE /opt/oracle/db02

20、/oradata/ORCL/drsys01.dbf ONLINE /opt/oracle/wacos/oradata/ORCL/wacos01.dbf ONLINE /opt/oracle/nms/oradata/ORCL/data01.dbf ONLINE 輸出結(jié)果中 STATUS 應(yīng)該都為 ONLINE。2.3.5 檢查檢查 Oracle 所有表、索引、存儲過程、觸發(fā)器、包等所有表、索引、存儲過程、觸發(fā)器、包等對象的狀態(tài)對象的狀態(tài)sqlselect owner,object_name,object_type from dba_objects where status!=VALID and

21、owner!=SYS and owner!=SYSTEM; no rows selected 如果有記錄返回,則說明存在無效的對象。如果應(yīng)用相關(guān)的對象。請首先以 sys 用戶登錄sqlplus,執(zhí)行$ORACLE_HOME/rdbms/admin/utlrp.sql 來重新編譯這些對象。編譯后再執(zhí)行上述語句來檢查,如果仍有輸出,請尋求技術(shù)支持。ORACLE 數(shù)據(jù)庫日常維護手冊82.4 數(shù)據(jù)庫資源使用情況檢查數(shù)據(jù)庫資源使用情況檢查2.4.1 檢查檢查 Oracle 初始化文件中相關(guān)的參數(shù)值初始化文件中相關(guān)的參數(shù)值SQL select resource_name,max_utilization,i

22、nitial_allocation,limit_value from v$resource_limit;RESOURCE_NAME MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE- - - -processes 11 150 150sessions 11 170 170enqueue_locks 14 2230 2230enqueue_resources 10 968 UNLIMITEDges_procs 0 0 0ges_ress 0 0 UNLIMITEDges_locks 0 0 UNLIMITEDges_cache_ress 0 0 UNL

23、IMITEDges_reg_msgs 0 0 UNLIMITEDges_big_msgs 0 0 UNLIMITEDges_rsv_msgs 0 0 0RESOURCE_NAME MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE- - - -gcs_resources 0 3300 3300gcs_shadows 0 3300 3300dml_locks 3 748 UNLIMITEDtemporary_table_locks 0 UNLIMITED UNLIMITEDtransactions 4 187 UNLIMITEDbranches 0 18

24、7 UNLIMITEDcmtcallbk 0 187 UNLIMITEDsort_segment_locks 1 UNLIMITED UNLIMITEDmax_rollback_segments 11 38 38max_shared_servers 0 20 20parallel_max_servers 0 6 6若 LIMIT_VALU-MAX_UTILIZATIONselect A.tablespace_name,(1-(A.total)/B.total)*100 used_percent from (select tablespace_name,sum(bytes) total from

25、 dba_free_space group by tablespace_name) A, (select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) B where A.tablespace_name=B.tablespace_name; TABLESPACE_NAME USED_PERCENT - - DRSYS 30.7578125 FS .19375 INDX .00390625 Data01 .0375 SYSTEM 34.265625 TEMP 2.71972656 TO

26、OLS .00390625 USERS .608473558 1、 如果使用率 USED_PERCENT 在 90%以上,則注意要增加數(shù)據(jù)文件來擴展表空間而不要是用數(shù)據(jù)文件的自動擴展功能。 2、 請不要對表空間增加過多的數(shù)據(jù)文件,增加數(shù)據(jù)文件的原則是每個數(shù)據(jù)文件大小為 2G,自動擴展的最大限制在 4G; 3、 增加數(shù)據(jù)文件后,請檢查熱備腳本,是否會包含新增的數(shù)據(jù)文件; 2.4.3 檢查一些擴展異常的對象檢查一些擴展異常的對象sqlselect Segment_Name, Segment_Type, TableSpace_Name, (Extents/Max_extents)*100 Perce

27、nt From sys.DBA_Segments Where Max_Extents != 0 and (Extents/Max_extents)*100=95 order By Percent; no rows selected 如果有記錄返回,則這些對象的擴展已經(jīng)快達到它定義時的最大擴展值。對于這些對象要修改它的存儲結(jié)構(gòu)參數(shù)。2.4.4 檢查檢查 system 表空間內(nèi)的內(nèi)容表空間內(nèi)的內(nèi)容sqlselect distinct(owner) from dba_tables ORACLE 數(shù)據(jù)庫日常維護手冊10 where tablespace_name=SYSTEM and owner!=S

28、YS and owner!=SYSTEM union select distinct(owner) from dba_indexes where tablespace_name=SYSTEM and owner!=SYS and owner!=SYSTEM; no rows selected 如果記錄返回,則表明 system 表空間內(nèi)存在一些非 system 和 sys 用戶的對象。請把這些對象移到非 System 表空間,同時應(yīng)該檢查這些對象屬主的缺省表空間值。 2.4.5 檢查對象的下一擴展與表空間的最大擴展值檢查對象的下一擴展與表空間的最大擴展值sqlselect a.table_na

29、me, a.next_extent, a.tablespace_name from all_tables a, (select tablespace_name, max(bytes) as big_chunk from dba_free_space group by tablespace_name ) f where f.tablespace_name = a.tablespace_name and a.next_extent f.big_chunk union select a.index_name, a.next_extent, a.tablespace_name from all_ind

30、exes a, (select tablespace_name, max(bytes) as big_chunk from dba_free_space group by tablespace_name ) f where f.tablespace_name = a.tablespace_name and a.next_extent f.big_chunk; no rows selected 如果有記錄返回,則表明這些對象的下一個擴展大于該對象所屬表空間的最大擴展值,需調(diào)整相應(yīng)表空間的存儲參數(shù)2.4.6 數(shù)據(jù)庫表空間使用情況監(jiān)控數(shù)據(jù)庫表空間使用情況監(jiān)控數(shù)據(jù)庫運行了一段時間后,由于不斷的在表空間

31、上創(chuàng)建和刪除對象,會在表空間上產(chǎn)生大量的碎片,DBA 應(yīng)該及時了解表空間的碎片和可用空間情況,以決定是否要對碎片進行整理或為表空間增加數(shù)據(jù)文件。select tablespace_name,count(*) chunks ,max(bytes/1024/1024) max_chunkORACLE 數(shù)據(jù)庫日常維護手冊11from dba_free_spacegroup by tablespace_name;上面的 SQL 列出了數(shù)據(jù)庫中每個表空間的空閑塊情況,如下所示(以下只是示例,與客戶數(shù)據(jù)庫可能有出入):TABLESPACE_NAME CHUNKS MAX_CHUNK- - -INDX 1

32、57.9921875RBS 3 490.992188RMAN_TS 1 16.515625SYSTEM 1 207.296875TEMP 20 70.8046875TOOLS 1 11.8359375USERS 67 71.3671875其中,CHUNKS 列表示表空間中有多少可用的空閑塊(每個空閑塊是由一些連續(xù)的 Oracle數(shù)據(jù)塊組成),如果這樣的空閑塊過多,比如平均到每個數(shù)據(jù)文件上超過了 100 個,那么該表空間的碎片狀況就比較嚴重了,可以嘗試用以下的 SQL 命令進行表空間相鄰碎片的接合:alter tablespace 表空間名 coalesce;然后再執(zhí)行查看表空間碎片的 SQL

33、語句,看表空間的碎片有沒有減少。如果沒有效果,并且表空間的碎片已經(jīng)嚴重影響到了數(shù)據(jù)庫的運行,則考慮對該表空間進行重建。MAX_CHUNK 列的結(jié)果是表空間上最大的可用塊大小,如果該表空間上的對象所需分配的空間(NEXT 值)大于可用塊的大小的話,就會提示 ORA-1652、ORA-1653、ORA-1654 的錯誤信息,DBA 應(yīng)該及時對表空間的空間進行擴充,以避免這些錯誤發(fā)生。對表空間的擴充對表空間的數(shù)據(jù)文件大小進行擴展,或向表空間增加數(shù)據(jù)文件,具體操作見“存儲管理”部份。2.5 檢查數(shù)據(jù)庫定時作業(yè)的完成情況檢查數(shù)據(jù)庫定時作業(yè)的完成情況 a如果數(shù)據(jù)庫使用了 Oracle 的 JOB 來完成一

34、些定時作業(yè),要對這些 JOB 的運行情況進行檢查:select job,log_user,last_date,failures from dba_jobs;如果 FAILURES 列是一個大于 0 的數(shù)的話,說明 JOB 運行失敗,要進一步的檢查。2.6 數(shù)據(jù)庫壞塊的處理數(shù)據(jù)庫壞塊的處理當 Oracle 數(shù)據(jù)庫出現(xiàn)壞塊時,Oracle 會在警告日志文件(alert_SID.log)中記錄壞塊的信息:ORA-01578: ORACLE data block corrupted (file # 7, block # )ORA-01110: data file : /oracle1/oradata/

35、V920/oradata/V816/users01.dbf其中,AFN代表壞塊所在數(shù)據(jù)文件的絕對文件號,代表壞塊是數(shù)據(jù)文件上的第幾個數(shù)據(jù)塊。出現(xiàn)這種情況時,應(yīng)該首先檢查是否是硬件及操作系統(tǒng)上的故障導(dǎo)致 Oracle 數(shù)據(jù)庫出現(xiàn)壞塊。在排除了數(shù)據(jù)庫以外的原因后,再對發(fā)生壞塊的數(shù)據(jù)庫對象進行處理。1 確定發(fā)生壞塊的數(shù)據(jù)庫對象SELECT tablespace_name,segment_type,owner,segment_nameORACLE 數(shù)據(jù)庫日常維護手冊12FROM dba_extents WHERE file_id = AND between block_id AND block_id+

36、blocks-1;2 決定修復(fù)方法如果發(fā)生壞塊的對象是一個索引,那么可以直接把索引 DROP 掉后,再根據(jù)表里的記錄進行重建;如果發(fā)生壞塊的表的記錄可以根據(jù)其它表的記錄生成的話,那么可以直接把這個表 DROP掉后重建;如果有數(shù)據(jù)庫的備份,則恢復(fù)數(shù)據(jù)庫的方法來進行修復(fù);如果表里的記錄沒有其它辦法恢復(fù),那么壞塊上的記錄就丟失了,只能把表中其它數(shù)據(jù)塊上的記錄取出來,然后對這個表進行重建。3 用 Oracle 提供的 DBMS_REPAIR 包標記出壞塊exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS(,);4 使用 Create table as select 命令將表中其它

37、塊上的記錄保存到另一張表上create table corrupt_table_bak asselect * from corrupt_table;5 用 DROP TABLE 命令刪除有壞塊的表drop table corrupt_table;6 用 alter table rename 命令恢復(fù)原來的表alter table corrupt_table_bakrename to corrupt_table;7 如果表上存在索引,則要重建表上的索引2.7 數(shù)據(jù)庫備份情況檢查數(shù)據(jù)庫備份情況檢查2.7.1 檢查備份軟件的日志檢查備份軟件的日志如果采用了第三方的備份軟件,如:verytas,HP

38、Ominback 等,備份過程中都會有日志,查看備份軟件的日志,若有錯誤報告,判斷錯誤類型,然后分別檢查備份軟件與 ORACLE 數(shù)據(jù)庫。2.7.2 檢查數(shù)據(jù)庫歸檔日志檢查數(shù)據(jù)庫歸檔日志所有的歸檔日志都應(yīng)是當天產(chǎn)生的, 如果存在更早的歸檔日志, 則說明前次的備份有問題。如果歸檔目錄所在卷已滿會導(dǎo)致數(shù)據(jù)庫掛起。ORACLE 數(shù)據(jù)庫日常維護手冊132.7.3 控制文件的備份控制文件的備份在數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化時,如增加了表空間,增加了數(shù)據(jù)文件或重做日志文件這些操作,都會造成 Oracle 數(shù)據(jù)庫控制文件的變化,DBA 應(yīng)及進行控制文件的備份,備份方法是:執(zhí)行 SQL 語句:alter databas

39、e backup controlfile to /home/backup/control.bak;或:alter database backup controlfile to trace;這樣會在 USER_DUMP_DEST(初始化參數(shù)文件中指定)目錄下生成創(chuàng)建控制文件的腳本。2.8 數(shù)據(jù)庫連接情況檢查數(shù)據(jù)庫連接情況檢查2.8.1 檢查數(shù)據(jù)庫連接檢查數(shù)據(jù)庫連接在客戶端用字符串方式連接數(shù)據(jù)庫,測試網(wǎng)絡(luò)連接SQLconnect username/passwordstringConnected2.8.2 檢查數(shù)據(jù)庫會話檢查數(shù)據(jù)庫會話DBA 要定時對數(shù)據(jù)庫的連接情況進行檢查,看與數(shù)據(jù)庫建立的會話數(shù)目

40、是不是正常,如果建立了過多的連接,會消耗數(shù)據(jù)庫的資源。同時,對一些“掛死”的連接,可能會需要 DBA手工進行清理。以下的 SQL 語句列出當前數(shù)據(jù)庫建立的會話情況:select sid,serial#,username,program,machine,status from v$session;輸出結(jié)果為:SID SERIAL# USERNAME PROGRAM MACHINE STATUS- - - - - -1 1 ORACLE.EXE WORK3 ACTIVE2 1 ORACLE.EXE WORK3 ACTIVE3 1 ORACLE.EXE WORK3 ACTIVE4 1 ORACLE.

41、EXE WORK3 ACTIVE5 3 ORACLE.EXE WORK3 ACTIVE6 1 ORACLE.EXE WORK3 ACTIVE7 1 ORACLE.EXE WORK3 ACTIVE8 27 SYS SQLPLUS.EXE WORKGROUPWORK3 ACTIVE11 5 DBSNMP dbsnmp.exe WORKGROUPWORK3 INACTIVE其中,SID 會話(session)的 ID 號;SERIAL# 會話的序列號,和 SID 一起用來唯一標識一個會話;USERNAME 建立該會話的用戶名;ORACLE 數(shù)據(jù)庫日常維護手冊14PROGRAM 這個會話是用什么工具連

42、接到數(shù)據(jù)庫的;STATUS 當前這個會話的狀態(tài),ACTIVE 表示會話正在執(zhí)行某些任務(wù),INACTIVE 表示當前會話沒有執(zhí)行任何操作;如果 DBA 要手工斷開某個會話,則執(zhí)行:alter system kill session SID,SERIAL#;注意,上例中 SID 為 1 到 7(USERNAME 列為空)的會話,是 Oracle 的后臺進程,不要對這些會話進行任何操作。2.9 操作系統(tǒng)相關(guān)檢查操作系統(tǒng)相關(guān)檢查2.9.1 檢查空間使用情況檢查空間使用情況檢查各掛載點的空間使用情況,特別是 ORACLE 相關(guān)的,如:ORACLE 軟件掛載點,數(shù)據(jù)庫掛載點及歸檔日志掛載點,如果這些掛載點

43、的使用率達到 90以上,就要考慮增加這些文件系統(tǒng)的大小。df -k2.9.2 檢查網(wǎng)絡(luò)狀況檢查網(wǎng)絡(luò)狀況檢查用于 ORACLE 數(shù)據(jù)庫連接的 IP 是否正常。ifconfig -a2.9.3 檢查內(nèi)存使用情況檢查內(nèi)存使用情況#vmstat 5 10查看是否有持續(xù)高數(shù)值的 po 和 sr,若有說明系統(tǒng)內(nèi)存分配有問題,請尋求技術(shù)支持。注:高數(shù)值按經(jīng)驗數(shù)量級不應(yīng)該超過 10 的三次方,但是不能一概而論,需與系統(tǒng)平衡運行時相比較。2.9.4 檢查磁盤檢查磁盤 I/O 瓶頸瓶頸#sar d 5 2檢查是否有異常高的%busy 和 avque,若有說明系統(tǒng)出現(xiàn)了磁盤 I/O 瓶頸,請尋求技術(shù)支持。注:異常高

44、是指與系統(tǒng)穩(wěn)定運行后的數(shù)值相比較。ORACLE 數(shù)據(jù)庫日常維護手冊153 ORACLE 數(shù)據(jù)庫每周應(yīng)檢查的項目數(shù)據(jù)庫每周應(yīng)檢查的項目3.1 查看是否有危害到安全策略的問題查看是否有危害到安全策略的問題根據(jù)本系統(tǒng)的安全策略,查看本周是否有違反安全策略的事件,如:系統(tǒng)用戶或數(shù)據(jù)庫用戶是否用了默認的口令;sys 或 system 用戶的口令是否太短;口令與用戶名一致;系統(tǒng)沒有安裝最新補丁以上只是列舉部分,具體要根據(jù)本系統(tǒng)的安全策略而定3.2 查看的網(wǎng)絡(luò)日志查看的網(wǎng)絡(luò)日志查看 listener.log 與 sqlnet.log,是否有報錯信息$cat $ORACLE_HOME/network/log/

45、listener.log$cat $ORACLE_HOME/network/log/sqlnet.log3.3 將所有的警告日志存檔將所有的警告日志存檔包括$ORACLE_BASE/admin/ORCL/bdump/alert_ORCL.log,$ORACLE_BASE/admin/ORCL/bdump/*.trc,$ORACLE_BASE/admin/ORCL/cdump/*.trc$ORACLE_HOME/network/log/listener.log$ORACLE_HOME/network/log/sqlnet.log3.4 查看查看 ORACLE 相關(guān)的網(wǎng)站,獲取最新信息相關(guān)的網(wǎng)站,

46、獲取最新信息4 ORACLE 數(shù)據(jù)庫每月應(yīng)檢查的項目數(shù)據(jù)庫每月應(yīng)檢查的項目4.1 查看對數(shù)據(jù)庫會產(chǎn)生危害的增長速度查看對數(shù)據(jù)庫會產(chǎn)生危害的增長速度回顧一個月的對數(shù)據(jù)庫資源使用情況的檢查,對比前幾個月的情況,總結(jié)哪些對象有異常增長,判斷是否會對數(shù)據(jù)庫產(chǎn)生危害。ORACLE 數(shù)據(jù)庫日常維護手冊164.2 查看數(shù)據(jù)庫調(diào)整產(chǎn)生的影響查看數(shù)據(jù)庫調(diào)整產(chǎn)生的影響回顧 ORACLE 數(shù)據(jù)庫的調(diào)整點,對比調(diào)整前后數(shù)據(jù)庫的表現(xiàn),來確定數(shù)據(jù)庫的發(fā)展 趨勢。4.3 查看查看 I/O 的屏頸問題的屏頸問題回顧每天檢查的磁盤 I/O 瓶頸,總結(jié)數(shù)據(jù)庫文件的活動性,比較以前的輸出來判斷有可能導(dǎo)致屏頸 問題的趨勢。ORACL

47、E 數(shù)據(jù)庫日常維護手冊175 附:附:5.1 啟動數(shù)據(jù)庫啟動數(shù)據(jù)庫# su - oracle$ sqlplus /nologSQL*Plus: Release 9.2.0.4.0 - Production on Thu Jun 29 14:05:54 2006Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL conn /as sysdbaConnected to an idle instance.SQL startupORACLE instance started.Total System Global

48、Area 1377274736 bytesFixed Size 744304 bytesVariable Size 536870912 bytesDatabase Buffers 838860800 bytesRedo Buffers 798720 bytesDatabase mounted.Database opened.5.2 關(guān)閉數(shù)據(jù)庫關(guān)閉數(shù)據(jù)庫# su - oracle$ sqlplus /nologSQL*Plus: Release 9.2.0.4.0 - Production on Thu Jun 29 14:03:40 2006Copyright (c) 1982, 2002,

49、Oracle Corporation. All rights reserved.SQL conn /as sysdbaConnected.SQL shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.ORACLE 數(shù)據(jù)庫日常維護手冊185.3 啟動監(jiān)聽啟動監(jiān)聽# su - oracle$ lsnrctl startLSNRCTL for IBM/AIX RISC System/6000: Version 9.2.0.4.0 - Production on 29-JUN-2006 14:07:07Copyright

溫馨提示

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

最新文檔

評論

0/150

提交評論