Oracle數(shù)據(jù)庫(kù)治理員應(yīng)按如下方式對(duì)ORACLE數(shù)據(jù)庫(kù)系統(tǒng)做定期監(jiān)控:
(1). 天天對(duì)ORACLE數(shù)據(jù)庫(kù)的運(yùn)行狀態(tài),日志文件,備份情況,數(shù)據(jù) 庫(kù)的空間使用情況,系統(tǒng)資源的使用情況進(jìn)行檢查,發(fā)現(xiàn)并解決 問題。
(2). 每周對(duì)數(shù)據(jù)庫(kù)對(duì)象的空間擴(kuò)展情況,數(shù)據(jù)的增長(zhǎng)情況進(jìn)行監(jiān)控,對(duì)數(shù)據(jù)庫(kù)做健康檢查,對(duì)數(shù)據(jù)庫(kù)對(duì)象的狀態(tài)做檢查。
(3). 每月對(duì)表和索引等進(jìn)行Analyze,檢查表空間碎片,尋找數(shù)據(jù)庫(kù) 性能調(diào)整的機(jī)會(huì),進(jìn)行數(shù)據(jù)庫(kù)性能調(diào)整,提出下一步空間治理計(jì)劃。對(duì)ORACLE數(shù)據(jù)庫(kù)狀態(tài)進(jìn)行一次全面檢查。 天天的工作
(1).確認(rèn)所有的INSTANCE狀態(tài)正常登陸到所有數(shù)據(jù)庫(kù)或例程,檢測(cè)ORACLE后臺(tái)進(jìn)程:
$ps –efgrep ora
(2). 檢查文件系統(tǒng)的使用(剩余空間)。假如文件系統(tǒng)的剩余空間小于20%,需刪除不用的文件以釋放空間。
$df –k
(3). 檢查日志文件和trace文件記錄alert和trace文件中的錯(cuò)誤。連接到每個(gè)需治理的系統(tǒng)
使用’telnet’
對(duì)每個(gè)數(shù)據(jù)庫(kù),cd 到bdump目錄,通常是$ORACLE_BASE/<SID>/bdump
使用 Unix ‘tail’命令來查看alert_<SID>.log文件
假如發(fā)現(xiàn)任何新的ORA- 錯(cuò)誤,記錄并解決
(4). 檢查數(shù)據(jù)庫(kù)當(dāng)日備份的有效性。
對(duì)RMAN備份方式:
檢查第三方備份工具的備份日志以確定備份是否成功
對(duì)EXPORT備份方式:
檢查exp日志文件以確定備份是否成功
對(duì)其他備份方式:
檢查相應(yīng)的日志文件
(5). 檢查數(shù)據(jù)文件的狀態(tài)記錄狀態(tài)不是“online”的數(shù)據(jù)文件,并做恢復(fù)。
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). 監(jiān)控?cái)?shù)據(jù)庫(kù)性能
運(yùn)行bstat/estat生成系統(tǒng)報(bào)告
或者使用statspack收集統(tǒng)計(jì)數(shù)據(jù)
(9). 檢查數(shù)據(jù)庫(kù)性能,記錄數(shù)據(jù)庫(kù)的cpu使用、IO、buffer命中率等等
使用vmstat,iostat,glance,top等命令
(10). 日常出現(xiàn)問題的處理。
每周的工作
(1). 控?cái)?shù)據(jù)庫(kù)對(duì)象的空間擴(kuò)展情況
根據(jù)本周天天的檢查情況找到空間擴(kuò)展很快的數(shù)據(jù)庫(kù)對(duì)象,并采取相
應(yīng)的措施
-- 刪除歷史數(shù)據(jù)
--- 擴(kuò)表空間
alter tablespace <name> add datafile ‘<file>’ size <size>
--- 調(diào)整數(shù)據(jù)對(duì)象的存儲(chǔ)參數(shù)
next extent
pct_increase
(2). 監(jiān)控?cái)?shù)據(jù)量的增長(zhǎng)情況
根據(jù)本周天天的檢查情況找到記錄數(shù)量增長(zhǎng)很快的數(shù)據(jù)庫(kù)對(duì)象,并采
取相應(yīng)的措施
-- 刪除歷史數(shù)據(jù)
--- 擴(kuò)表空間
alter tablespace <name> add datafile ‘<file>’ size <size>
(3). 系統(tǒng)健康檢查
檢查以下內(nèi)容:
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). 檢查無效的數(shù)據(jù)庫(kù)對(duì)象
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). 檢查表空間碎片
根據(jù)本月每周的檢查分析數(shù)據(jù)庫(kù)碎片情況,找到相應(yīng)的解決方法
(3). 尋找數(shù)據(jù)庫(kù)性能調(diào)整的機(jī)會(huì)
比較天天對(duì)數(shù)據(jù)庫(kù)性能的監(jiān)控報(bào)告,確定是否有必要對(duì)數(shù)據(jù)庫(kù)性能進(jìn) 行調(diào)整
(4). 數(shù)據(jù)庫(kù)性能調(diào)整
如有必要,進(jìn)行性能調(diào)整
(5). 提出下一步空間治理計(jì)劃
根據(jù)每周的監(jiān)控,提出空間治理的改進(jìn)方法
Oracle DBA 日常治理
目的:這篇文檔有很具體的資料記錄著對(duì)一個(gè)甚至更多的ORACLE 數(shù)據(jù)庫(kù)天天的,每月的, 每年的運(yùn)行的狀態(tài)的結(jié)果及檢查的結(jié)果,在文檔的附錄中你將會(huì)看到所有檢查,修改的SQL 和PL/SQL 代碼。
目錄
1.日常維護(hù)程序
A. 檢查已起的所有實(shí)例
B. 查找一些新的警告日志
C. 檢查DBSNMP 是否在運(yùn)行
D. 檢查數(shù)據(jù)庫(kù)備份是否正確
E. 檢查備份到磁帶中的文件是否正確
F. 檢查數(shù)據(jù)庫(kù)的性能是否正常合理,是否有足夠的空間和資源
G. 將文檔日志復(fù)制到備份的數(shù)據(jù)庫(kù)中
H. 要常看DBA 用戶手冊(cè)
2.晚間維護(hù)程序
A.收集VOLUMETRIC 的數(shù)據(jù)
3.每周維護(hù)工作
A. 查找那些破壞規(guī)則的OBJECT
B. 查找是否有違反安全策略的問題
C. 查看錯(cuò)誤地方的SQL*NET 日志
D. 將所有的警告日志存檔
E. 經(jīng)常訪問供給商的主頁(yè)
4.月維護(hù)程序
A. 查看對(duì)數(shù)據(jù)庫(kù)會(huì)產(chǎn)生危害的增長(zhǎng)速度
B. 回顧以前數(shù)據(jù)庫(kù)優(yōu)化性能的調(diào)整
C. 查看I/O 的屏頸問題
D. 回顧FRAGMENTATION
E. 將來的執(zhí)行計(jì)劃
F. 查看調(diào)整點(diǎn)和維護(hù)
5.附錄
A. 月維護(hù)過程
B. 晚間維護(hù)過程
C. 周維護(hù)過程
一.日維護(hù)過程
A.查看所有的實(shí)例是否已起確定數(shù)據(jù)庫(kù)是可用的,把每個(gè)實(shí)例寫入日志并且運(yùn)行日?qǐng)?bào)告或是運(yùn)行測(cè)試 文件。當(dāng)然有一些操作我們是希望它能自動(dòng)運(yùn)行的。 可選擇執(zhí)行:用ORACLE 治理器中的‘PROBE’事件來查看
B.查找新的警告日志文件
1. 聯(lián)接每一個(gè)操作治理系統(tǒng)
2. 使用‘TELNET’或是可比較程序
3. 對(duì)每一個(gè)治理實(shí)例,經(jīng)常的執(zhí)行$ORACLE_BASE/<SID>/bdump 操 作,并使其能回退到控制數(shù)據(jù)庫(kù)的SID。
4. 在提示下,使用UNIX 中的‘TAIL’命令查看alert_<SID>.log,或是 用其他方式檢查文件中最近時(shí)期的警告日志
5. 假如以前出現(xiàn)過的一些ORA_ERRORS 又出現(xiàn),將它記錄到數(shù)據(jù)庫(kù) 恢復(fù)日志中并且仔細(xì)的研究它們,這個(gè)數(shù)據(jù)庫(kù)恢復(fù)日志在〈FILE〉中
C.查看DBSNMP 的運(yùn)行情況 檢查每個(gè)被治理機(jī)器的‘DBSNMP’進(jìn)程并將它們記錄到日志中。 在UNIX 中,在命令行中,鍵入ps –ef grep dbsnmp,將回看到2 個(gè) DBSNMP 進(jìn)程在運(yùn)行。假如沒有,重啟DBSNMP。
D.查數(shù)據(jù)庫(kù)備份是否成功
E.檢查備份的磁帶文檔是否成功
F.檢查對(duì)合理的性能來說是否有足夠的資源
1. 檢查在表空間中有沒有剩余空間。對(duì)每一個(gè)實(shí)例來說,檢查在表空間中是否存在有剩余空間來滿足當(dāng)天 的預(yù)期的需要。當(dāng)數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)是穩(wěn)定的,數(shù)據(jù)日增長(zhǎng)的平均 數(shù)也是可以計(jì)算出來,最小的剩余空間至少要能滿足天天數(shù)據(jù)的增 長(zhǎng)。
A) 運(yùn)行‘FREE.SQL’來檢查表空間的剩余空間。
B) 運(yùn)行‘SPACE.SQL’來檢查表空間中的剩余空間百分率
2. 檢查回滾段回滾段的狀態(tài)一般是在線的,除了一些為復(fù)雜工作預(yù)備的專用 段,它一般狀態(tài)是離線的。
a) 每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)回滾段名字的列表。
b) 你可以用V$ROLLSTAT 來查詢?cè)诰€或是離線的回滾段的現(xiàn)在狀 態(tài).
c) 對(duì)于所有回滾段的存儲(chǔ)參數(shù)及名字, 可用DBA_ROLLBACK_SEGS 來查詢。但是它不如V$ROLLSTAT正確。
3. 識(shí)別出一些過分的增長(zhǎng)查看數(shù)據(jù)庫(kù)中超出資源或是增長(zhǎng)速度過大的段,這些段的存儲(chǔ)參 數(shù)需要調(diào)整。
a) 收集日數(shù)據(jù)大小的信息, 可以用‘ANALYZE5PCT.SQL’。假如你收集的是每晚的信息, 則可跳過這一步。
b) 檢查當(dāng)前的范圍,可用‘NR.EXTENTS.SQL’。
c) 查詢當(dāng)前表的大小信息。
d) 查詢當(dāng)前索引大小的信息。
e) 查詢?cè)鲩L(zhǎng)趨勢(shì)。
4. 確定空間的范圍。假如范圍空間對(duì)象的NEXT_EXTENT 比表空間所能提供的最大范圍還要大,那么這將影響數(shù)據(jù)庫(kù)的運(yùn)行。假如我們找到了這個(gè)目標(biāo),可以用‘ALTER TABLESPACE COALESCE’調(diào)查它的位置,或加另外 的數(shù)據(jù)文件。
A)運(yùn)行‘SPACEBOUND.SQL’。
假如都是正常的,將不返回任何行。
5. 回顧C(jī)PU,內(nèi)存,網(wǎng)絡(luò),硬件資源論點(diǎn)的過程
A)檢查CPU的利用情況,進(jìn)到x:/web/phase2/default.htm =>system metrics=>CPU 利用頁(yè),CPU 的最大限度為400,當(dāng)CPU 的占用保持在350 以上