Posted on 2006-10-09 11:52
Hally 閱讀(540)
評論(0) 編輯 收藏 所屬分類:
技術文章轉載
轉自:http://www.linuxmine.com/49842.html
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/<SID>/bdump
使用 Unix ‘tail’命令來查看alert_<SID>.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 <name> add datafile ‘<file>’ size <size>
--- 調整數據對象的存儲參數
next extent
pct_increase
(2). 監控數據量的增長情況
根據本周每天的檢查情況找到記錄數量增長很快的數據庫對象,并采
取相應的措施
-- 刪除歷史數據
--- 擴表空間
alter tablespace <name> add datafile ‘<file>’ size <size>
(3). 系統健康檢查
檢查以下內容:
init<sid>.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 <name> 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. 查看調整點和維護
5.附錄
A. 月維護過程
B. 晚間維護過程
C. 周維護過程
一.日維護過程
A.查看所有的實例是否已起確定數據庫是可用的,把每個實例寫入日志并且運行日報告或是運行測試 文件。當然有一些操作我們是希望它能自動運行的。 可選擇執行:用ORACLE 管理器中的‘PROBE’事件來查看
B.查找新的警告日志文件
1. 聯接每一個操作管理系統
2. 使用‘TELNET’或是可比較程序
3. 對每一個管理實例,經常的執行$ORACLE_BASE/<SID>/bdump 操 作,并使其能回退到控制數據庫的SID。
4. 在提示下,使用UNIX 中的‘TAIL’命令查看alert_<SID>.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:\web\phase2\default.htm =>system metrics=>CPU 利用頁,CPU 的最大限度為400,當CPU 的占用保持在350 以上