2011-05-26 17:45:07nut

[好文]Oracle DBA职责及日常工作分析

Oracle DBA职责及日常工作分析

DBA 職責及日常工作職責:

    1.安裝和升級資料庫伺服器,以及應用程式工具構建和配置網路環境.

    2.熟悉資料庫系統的存儲結構預測未來的存儲需求,制訂資料庫的存儲方案.

    3.根據開發人員設計的應用系統需求創建資料庫存儲結構.

    4.根據開發人員設計的應用系統需求創建資料庫物件

    5.根據開發人員的回饋資訊,在必要的時候修改資料庫的結構

    6.管理資料庫的使用者維護資料庫的安全

    7.控制和監控使用者對資料庫的存取訪問

    8.監控和優化資料庫的性能

    9.制定資料庫備份計畫,災難出現時對資料庫資訊進行恢復

    10.備份和恢復資料庫

    11.聯繫資料庫系統生產廠商,跟蹤技術資訊

    12.解決用戶端中間層和伺服器的連結問題

    13.保證安全連接

    每日工作:

    1 確保伺服器工作狀態正常,各類資料庫狀態正常

    2 檢查硬碟空間是否夠用

    3 查看資料庫日誌,查看跟蹤檔,檢查是否有錯誤資訊

    4 檢查備份的有效性

    5 通過系統的效能監視器對伺服器的性能參數監控發現資料庫的性能是否下降,尋找原因並解決

    6 填寫dba日誌

    每週工作:

    1 監控資料庫物件的空間擴展情況

    2 決定是否調整存儲參數

    3 對系統健康檢查

    4 檢查刪除沒有任何意義的資料物件

    5 檢查刪除沒有意義的約束和觸發器

    6 對每週的備份檢查處理

    每月工作:

    1 根據上面的檢查情況,分析資料庫中是否有影響性能的存儲碎片存在

    2 根據資料庫性能的歷史資料,決定如何優化性能

    3 處理每日每週每月的備份

    4 總結工作,提出下一步的管理計畫

    Oracle DBA日常工作總結

    Oracle管理員應按如下方式對Oracle資料庫系統做定期監控:

    1、每天對Oracle資料庫的運行狀態、日誌檔、備份情況、資料庫空間使用情況、系統資源使用情況進行檢查,發現並解決問題。

    2、每週對資料庫物件的空間擴展情況、資料的增長情況進行監控、對資料庫做健康檢查、對資料庫物件的狀態做檢查。

    3、每月對表和索引等進行analyze、檢查表空間碎片、尋找資料庫性能調整的機會、進行資料庫性能調整、提出下一步空間管理計畫。對Oracle資料庫狀態進行一次全面檢查。

    每天工作

    1、確認所有的instance狀態正常登錄到所有資料庫或實例,檢測Oracle後臺進程:#ps -ef | grep ora

    2、檢查檔案系統的使用(剩餘空間)。如果檔案系統的剩餘空間小於20%,需刪除不用的檔以釋放空間。#df -k

    3、檢查日誌檔和trace檔記錄alerttrace檔中的錯誤。

cd $Oracle_BASE/oradata/<sid>/bdump

tail -f alert_<sid>.log

 

    發現任何新的ORA_錯誤,記錄並解決

    4、檢查資料庫當日備份的有效性

    RMAN備份方式,檢查協力廠商備份工具的備份日誌以確定備份是否成功

    EXPORT備份方式,檢查exp日誌檔以確定備份是否成功

    對其它備份方式,檢查相應的日誌檔

    5、檢查資料檔案的狀態記錄狀態不是“online"的資料檔案,並做恢復。

 

select file_name from dba_data_files where status="OFFLINE"

    6、檢查表空間的使用情況

select a.tablespace_name,round((total-free)/total,3)*100 pecent

from (select tablespace_name,sum(bytes) free from dba_free_space group by tablespace_name) a,

(select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) b

where a.tablespace_name=b.tablespace_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、監控資料庫性能

    運行utlbstat.sql/utlestat.sql生成系統報告,或者使用statspace收集統計資料

    9、檢查資料庫性能,記錄資料庫的CPU使用、IOBuffer命中率等等,使用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

archiveing

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'

 

    每月的工作

    1Analyze tables/indexes/cluster

    analyze table <name> estimate statistics sample 50 percent;

    2、檢查表空間碎片