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 代碼。
一.日維護過程
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.查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,記憶體,網路,硬體資源論點的過程