DBA平常工做職責

ORACLE數據庫管理員應按以下方式對ORACLE數據庫系統作按期監控: 
(1) 天天 ORACLE數據庫的運行狀態,日誌文件,備份狀況,數據庫的磁盤空間使用狀況,系統資源的使用狀況進行檢查,發現並解決問題。
(1).確認全部的INSTANCE狀態正常,登錄到全部數據庫或例程,檢測ORACLE後臺進程: $ps ef|grep ora_ 
(2). 檢查文件系統的使用(剩餘空間)。若是文件系統的剩餘空間小於20%,需刪除不用的文件以釋放空間。 清理空間時請務必當心! $df 
(3). 檢查日誌文件和trace文件記錄alerttrace文件中的錯誤。 
鏈接到每一個需管理的系統對每一個數據庫,cd bdump目錄,一般是ORACLE_BASE/admin/<SID>/bdump 
使用 Unix tail 命令來查看alert_<SID>.log文件若是發現任何新的ORA- 錯誤,記錄並解決.
(4). 檢查數據庫當日備份的有效性。 
RMAN備份方式檢查第三方備份工具的備份日誌以肯定備份是否成功 
EXPORT備份方式檢查exp日誌文件以肯定備份是否成功 
對其餘備份方式檢查相應的日誌文件 
(5). 檢查數據文件的狀態記錄狀態不是「online」的數據文件,並考慮是否須要作恢復。 
Select file_name from dba_data_files where status=OFFLINE’ 
v$recover_file
(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 
order by pct_free
System:  字典空間,不能被損壞
Sysaux:  10g高併發,或者系統繁忙時候,會形成system爭用,能夠將工具放在sysaux中減輕system的壓力,sysaux不影響系統(影響性能)
Example
Users: 10g 用戶數據從system剝離出來
Undo: dmldql把數據快照到此,數據提交以後當即消失(用戶回覆)
解決方法:設置預警、設置表空間爲自動增加、添加數據文件
(7). 監控數據庫性能 
運行statspack生成系統報告 
1、使用statspack的要求   job_queue_processes >0 ;    timed_statistics  =true 
2statspack存儲統計信息,須要建立一個足夠大的表空間。
create tablespace perfstat  datafile '/u01/perfstat.dbf' size 500m  extent management local;
3、執行安裝腳本,安裝statspack
cd $ORACLE_HOME/rdmbs/admin/spcreate.sql   sp開頭的都是statspack的腳本
4、收集統計信息:  exec statspack.snap ;  exec statspack.snap 
5、 查看統計信息   @spreport.sql 
(8). 檢查數據庫性能,記錄數據庫的cpu使用、IObuffer命中率等等 
使用vmstat,iostat,sar,top等命令 
VMstat顯示虛擬內存的使用狀態,
iostat顯示cpu和設備的輸入輸出統計信息的狀態,
sar收集並顯示系統中的動態活動信息,
top動態顯示linux中的系統任務。
(2) 每週對數據庫對象的空間擴展狀況,數據的增加狀況進行監控,對數據庫作健康檢查,對數據庫對象的狀態作檢查。 
(1). 監控數據庫對象的空間擴展狀況 
根據本週天天的檢查狀況找到空間擴展很快的數據庫對象,並採起相應的措施 
-- 刪除歷史數據 
-- 擴表空間 
alter tablespace <name> add datafile <file>’ size <size> 
-- 調整數據對象的存儲參數 或者放在合理存儲參數的本地管理表空間上
next extent 
pct_increase 
(2)系統健康檢查
檢查如下內容
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)
(3)檢查無效的數據庫對象
SELECT owner, object_name, object_type FROM dba_objects 
WHERE status='INVALID'
(4)檢查不起做用的約束
SELECT   owner, constraint_name, table_name, constraint_type, status 
FROM     dba_constraints 
WHERE    status = 'DISABLED' AND constraint_type = 'P'
(5)檢查無效的trigger
SELECT  owner, trigger_name, table_name, status 
FROM   dba_triggers 
WHERE  status = 'DISABLED' 
(3) 每個月對錶和索引等進行Analyze,檢查表空間碎片,尋找數據庫性能調整的機會,進行數據庫性能調整,提出下一步空間管理計劃。對ORACLE數據庫狀態進行一次全面檢查。 
1 若是使用CBO(10g中這部分工做被簡化了)
a nalyze Tables/Indexes/Cluster 
analyze table <name> estimate statistics sample 40 percent; 
(2). 檢查表空間碎片 
根據本月每週的檢查分析數據庫碎片狀況,找到相應的解決方法 。( SQL
(3). 尋找數據庫性能調整的機會 
比較天天對數據庫性能的監控報告,肯定是否有必要對數據庫性能進行調整 
(4). 數據庫性能調整 
若有必要,進行性能調整 
(5). 提出下一步空間管理計劃 
根據每週的監控,提出空間管理的改進方法
其餘工做:
1、作好備份!!!
2、找環境作災難測試
3、應對領導、用戶等各個方面的需求變動
4、根據新的需求設計新的數據庫架構方案
5、爲其餘部門提供業務或者腳本支持
6、考慮存儲的使用
相關文章
相關標籤/搜索