Oracle 資料庫管 理員應按如下方式對Oracle資料庫系統做定期監控:
(1). 每天對Oracle資料庫的運行狀態 , 記錄檔 , 備份情況 , 資料庫的空間使用方式 , 系統資源的使用方式進行檢查 , 發現並解決問題。
(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 . 檢查Database Backup是否正確
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 .查Database Backup是否成功
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:\web\phase2\default.htm =>system
metrics=>CPU 利用頁, CPU 的最大限度為 400 ,當 CPU 的佔用保持在 350 以上有一段時間的話,我們就需要查看及研究出現的問題。
G .將存檔日誌複製到備用資料庫中
如果有一個備用資料庫,將適當的存檔日誌複製到備用資料庫的期望位置,備用資料庫中儲存最近期的資料。
H. 經常查閱 DBA 使用者手冊
如果有可能的話,要廣泛的閱讀,包括 DBA 手冊,行業雜誌,新聞 組或是郵件清單。
二.晚間維護過程
大部分的數
|
據庫產品將受益於每晚確定的檢查進程的運行。 A. 收集 VOLUMETRIC 資料 1. 分析計劃和收集資料 更準確的分析計算並儲存結果。 a ) 如果你現在沒有作這些的話,用‘ MK VOLFACT.SQL' 來建立測定體積的 表。 b ) 收集晚間資料大小的資訊,用‘ ANALYZE COMP.SQL' 。 c ) 收集統計結果,用‘ POP VOL.SQL' 。 d ) 在閒置時候檢查資料,可能的話,每周或每個月進行。 我是用 MS EXCEL 和 ODBC 的聯結來檢查資料和圖表的增長 ------------------------------------------------------------- 三.每周維護過程 A . 尋找被破壞的目標 1. 對於每個給定資料表空間的對象來說, NEXT_EXTENT 的大小是相同的,如12/14/98 ,預設的NEXT_EXTENT 的 DATAHI 為 1G , DATALO 為 500MB ,INDEXES 為 256MB 。 A ) 檢查 NEXT_EXTENT 的設定,可用‘ NEXTEXT 。 SQL' 。 B ) 檢查已有的 EXTENTS ,可用‘ EXISTEXT 。 SQL' 。 2. 所有的表都應該有唯一的主鍵 a.查看那些表沒有主鍵,可用‘ NO_PK.SQL' 。 b.尋找那些主鍵是沒有發揮作用的,可用‘ DIS_PK.SQL' 。 c.所有作索引的主鍵都要是唯一的,可用‘ NONUPK 。 SQL' 來檢 查。 3. 所有的索引都要放到索引資料表空間中。運行‘ MKREBUILD_IDX 。 SQL' 4. 不同的環境之間的計劃應該是同樣的,特別是測試環境和成品環境之間的 計劃應該相同。 a.檢查不同的 2 個運行環境中的資料類型是否一致,可用‘ DATATYPE.SQL '。 b.在 2 個不同的執行個體中尋找對象的不同點, 可用‘ OBJ_COORD.SQL '。 c.更好的做法是,使用一種工具,象尋求軟體的計劃管理器那樣的 工具。 B.查看是否有危害到安全性原則的問題。 C.查看報錯的 SQL*NET 日誌。 1. 用戶端的日誌。 2. 伺服器端的日誌。 D .將所有的警告日誌存檔 E .供應商的首頁 1. ORACLE 供應商 http://www.oracle.com http://technet.oracle.com http://www.oracle.com/support http://www.oramag.com 2. Quest Software http://www.quests.com 3. Sun Microsystems http://www.sun.com 四.月維護過程 A .查看對資料庫會產生危害的增長速度 1. 從以前的記錄或報告中回顧段增長的變化以此來確定段增長帶來危害 B . 回顧以前資料庫最佳化效能的調整 1. 回顧一般 ORACLE 資料庫的調整點,比較以前的報告來確定有害的發展 趨勢。 C . 查看 I/O 的屏頸問題 1. 查看前期資料庫檔案的活動性,比較以前的輸出來判斷有可能導致屏頸 問題的趨勢。 D . 回顧 FRAGMENTATION E . 計劃資料庫將來的效能 1. 比較 ORACLE 和作業系統的 CPU ,記憶體,網路,及硬碟的利用率以此來確定在近期將會有的一些資源爭奪的趨勢 2. 當系統將超出範圍時要把效能趨勢當作服務水平的協議來看 F . 完成調整和維護工作 1. 使修改滿足避免系統資源的爭奪的需要,這裡麵包括增加新資源或使預期的停工。 |