Oracle DBA日常的工作

來源:互聯網
上載者:User
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,記憶體,網路,硬體資源論點的過程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.