(2). 每週對資料庫物件的空間擴充套件情況 , 資料的增長情況進行監控 , 對資料庫做健康檢查 , 對資料庫物件的狀態做檢查。 (3). 每月對錶和索引等進行 Analyze, 檢查表空間碎片 , 尋找資料庫效能調整的機會 , 進行資料庫效能調整 , 提出下一步空間管理計劃。對Oracle資料庫狀態進行一次全面檢查。 每天的工作 (1). 確認所有的 INSTANCE 狀態正常 登陸到所有資料庫或例程 , 檢測 ORACLE 後臺程式 : $ps –ef|grep ora (2). 檢查檔案系統的使用(剩餘空間)。如果檔案系統的剩餘空間小於 20% ,需刪除不用的檔案以釋放空間。 $df –k (3). 檢查日誌檔案和 trace 檔案記錄 alert 和 trace 檔案中的錯誤。 連線到每個需管理的系統 使用' telnet ' 對每個資料庫 ,cd 到 bdump 目錄 , 通常是 $ORACLE_BASE//bdump 使用 Unix ‘tail' 命令來檢視 alert_.log 檔案 如果發現任何新的 ORA- 錯誤 , 記錄並解決 (4). 檢查資料庫當日備份的有效性。 對 RMAN 備份方式 : 檢查第三方備份工具的備份日誌以確定備份是否成功 對 EXPORT 備份方式 : 檢查 exp 日誌檔案以確定備份是否成功 對其他備份方式 : 檢查相應的日誌檔案 (5). 檢查資料檔案的狀態記錄狀態不是“ online” 的資料檔案,並做恢復。 Select file_name from dba_data_files where status='OFFLINE' (6). 檢查表空間的使用情況 SELECT tablespace_name, max_m, count_blocks free_blk_cnt, sum_free_m,to_char(100*sum_free_m/sum_m, '99.99') || '%' AS pct_free FROM ( SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name), ( SELECT tablespace_name AS fs_ts_name, max(bytes)/1024/1024 AS max_m, count(blocks) AS count_blocks, sum(bytes/1024/1024) AS sum_free_m FROM dba_free_space GROUP BY tablespace_name ) WHERE tablespace_name = fs_ts_name (7). 檢查剩餘表空間 SELECT tablespace_name, sum ( blocks ) as free_blk , trunc ( sum ( bytes ) /(1024*1024) ) as free_m, max ( bytes ) / (1024) as big_chunk_k, count (*) as num_chunks FROM dba_free_space GROUP BY tablespace_name; (8). 監控資料庫效能 執行 bstat/estat 生成系統報告 或者使用 statspack 收集統計資料 (9). 檢查資料庫效能,記錄資料庫的 cpu 使用、 IO 、 buffer 命中率等等 使用 vmstat,iostat,glance,top 等命令 (10). 日常出現問題的處理。 每週的工作 (1). 控資料庫物件的空間擴充套件情況 根據本週每天的檢查情況找到空間擴充套件很快的資料庫物件 , 並採取相應的措施 -- 刪除歷史資料 --- 擴表空間 alter tablespace add datafile ‘' size --- 調整資料物件的儲存引數 next extent pct_increase (2). 監控資料量的增長情況 根據本週每天的檢查情況找到記錄數量增長很快的資料庫物件 , 並採取相應的措施 -- 刪除歷史資料 --- 擴表空間 alter tablespace add datafile ‘' size (3). 系統健康檢查 檢查以下內容 : init.ora controlfile redo log file archiving sort area size tablespace(system,temporary,tablespace fragment) datafiles(autoextend,location) object(number of extent,next extent,index) rollback segment logging &tracing(alert.log,max_dump_file_size,sqlnet) (4). 檢查無效的資料庫物件 SELECT owner, object_name, object_type FROM dba_objects WHERE status= ' INVALID '。 (5). 檢查不起作用的約束 SELECT owner, constraint_name, table_name, constraint_type, status FROM dba_constraints WHERE status = 'DISABLED' AND constraint_type = 'P' (6). 檢查無效的 trigger SELECT owner, trigger_name, table_name, status FROM dba_triggers WHERE status = 'DISABLED' 每月的工作 (1). Analyze Tables/Indexes/Cluster analyze table estimate statistics sample 50 percent; (2). 檢查表空間碎片 根據本月每週的檢查分析資料庫碎片情況 , 找到相應的解決方法 (3). 尋找資料庫效能調整的機會 比較每天對資料庫效能的監控報告 , 確定是否有必要對資料庫效能進 行調整 (4). 資料庫效能調整 如有必要 , 進行效能調整 (5). 提出下一步空間管理計 劃 根據每週的監控 , 提出空間管理的改進方法 Oracle DBA 日常管理 目的:這篇文件有很詳細的資料記錄著對一個甚至更多的 ORACLE 資料庫每天的,每月的,每年的執行的狀態的結果及檢查的結果,在文件的附錄中你將會看到所有檢查,修改的 SQL和 PL/SQL 程式碼。 目錄 1. 日常維護程式 A . 檢查已起的所有例項 B . 查詢一些新的警告日誌 C . 檢查 DBSNMP 是否在執行 D . 檢查資料庫備份是否正確 E . 檢查備份到磁帶中的檔案是否正確 F . 檢查資料庫的效能是否正常合理,是否有足夠的空間和資源 G . 將文件日誌複製到備份的資料庫中 H . 要常看 DBA 使用者手冊 2. 晚間維護程式 A .收集 VOLUMETRIC 的資料 3. 每週維護工作 A . 查詢那些破壞規則的 OBJECT B . 查詢是否有違反安全策略的問題 C . 檢視錯誤地方的 SQL*NET 日誌 D . 將所有的警告日誌存檔 E . 經常訪問供應商的主頁 4. 月維護程式 A . 檢視對資料庫會產生危害的增長速度 B . 回顧以前資料庫最佳化效能的調整 C . 檢視 I/O 的屏頸問題 D . 回顧 FRAGMENTATION E . 將來的執行計劃 F . 檢視調整點和維護 一.日維護過程 A .檢視所有的例項是否已起 確定資料庫是可用的,把每個例項寫入日誌並且執行日報告或是執行測試檔案。當然有一些操作我們是希望它能自動執行的。 可選擇執行:用 ORACLE 管理器中的‘ PROBE' 事件來檢視 B .查詢新的警告日誌檔案 1. 聯接每一個操作管理系統 2. 使用‘ TELNET' 或是可比較程式 3. 對每一個管理例項,經常的執行 $ORACLE_BASE//bdump 操作,並使其能回退到控制資料庫的 SID 。 4. 在提示下,使用 UNIX 中的‘ TAIL '命令檢視 alert_.log ,或是用其他方式檢查檔案中最近時期的警告日誌 5. 如果以前出現過的一些 ORA_ERRORS 又出現,將它記錄到資料庫恢復日誌中並且仔細的研究它們,這個資料庫恢復日誌在〈 FILE 〉中 C .檢視 DBSNMP 的執行情況 檢查每個被管理機器的‘ DBSNMP' 程式並將它們記錄到日誌中。 在 UNIX 中,在命令列中,鍵入 ps –ef | grep dbsnmp, 將回看到 2 個DBSNMP 程式在執行。如果沒有,重啟 DBSNMP 。 D .查資料庫備份是否成功 E .檢查備份的磁帶文件是否成功 F .檢查對合理的效能來說是否有足夠的資源 1. 檢查在表空間中有沒有剩餘空間 對每一個例項來說,檢查在表空間中是否存在有剩餘空間來滿足當天的預期的需要。當資料庫中已有的資料是穩定的,資料日增長的平 均數也是可以計算出來,最小的剩餘空間至少要能滿足每天資料的增 長。 A ) 執行‘ FREE.SQL' 來檢查表空間的剩餘空間。 B ) 執行‘ SPACE.SQL' 來檢查表空間中的剩餘空間百分率 2. 檢查回滾段 回滾段的狀態一般是線上的,除了一些為複雜工作準備的專用 段,它一般狀態是離線的。 a. 每個資料庫都有一個回滾段名字的列表。 b. 你可以用 V$ROLLSTAT 來查詢線上或是離線的回滾段的現在狀 態 . c. 對於所有回滾段的儲存引數及名字, 可用DBA_ROLLBACK_SEGS 來查詢。但是它不如 V$ROLLSTAT 準確。 3. 識別出一些過分的增長 檢視資料庫中超出資源或是增長速度過大的段,這些段的儲存參 數需要調整。 a.收集日資料大小的資訊, 可以用 ‘ ANALYZE5PCT.SQL '。如果你收集的是每晚的資訊, 則可跳過這一步。 b.檢查當前的範圍,可用‘ NR.EXTENTS.SQL' 。 c.查詢當前表的大小資訊。 d.查詢當前索引大小的資訊。 e.查詢增長趨勢。 4. 確定空間的範圍 如果範圍空間物件的 NEXT_EXTENT 比表空間所能提供的最大範圍還要大,那麼這將影響資料庫的執行。如果我們找到了這個目標,可以用‘ ALTER TABLESPACE COALESCE' 調查它的位置,或加另外 的資料檔案。 A )執行‘ SPACEBOUND.SQL' 。如果都是正常的,將不返回任何行。 5. 回顧 CPU ,記憶體,網路,硬體資源論點的過程 A )檢查 CPU 的利用情況,進到 x:webphase2default.htm =>system metrics=>CPU 利用頁, CPU 的最大限度為 400 ,當 CPU 的佔用保持在 350 以上有一段時間的話,我們就需要檢視及研究出現的問題。 G .將存檔日誌複製到備用資料庫中 如果有一個備用資料庫,將適當的存檔日誌複製到備用資料庫的期望位置,備用資料庫中儲存最近期的資料。 H. 經常查閱 DBA 使用者手冊 如果有可能的話,要廣泛的閱讀,包括 DBA 手冊,行業雜誌,新聞 組或是郵件列表。 二.晚間維護過程 大部分的數 |