小知識:統計Oracle的日歸檔量

首先這對於Oracle DBA來講是個初級問題,即便不熟悉的初級DBA也能夠快速在網上搜索到現成的SQL語句。
網上搜到的查詢SQL基本相似這樣的邏輯:面試

select trunc(completion_time) "Date", count(*) cnt, round(sum(block_size * blocks / 1024 / 1024), 1) "MB"
from v$archived_log
group by trunc(completion_time) 
order by 1;

若是咱們是在DG環境中,主庫確定配置了其餘的log_archive_dest_N,若是仍是使用上面這個統計SQL就極可能出現大的訛誤,這類場景下咱們要加入限制條件dest_id=1,即正常應該只統計本地歸檔量便可:sql

select trunc(completion_time) "Date", count(*) cnt, round(sum(block_size * blocks / 1024 / 1024), 1) "MB"
from v$archived_log
where dest_id = 1  /* 限制條件 dest_id = 1 */
group by trunc(completion_time) 
order by 1;

另外看見過一些初級DBA會在統計RAC環境的日歸檔量時,想固然的將v$archived_log寫成gv$archived_log,致使統計結果出現double放大的訛誤。
這類小知識點也能夠做爲一道基礎的DBA面試題,考驗下候選人的基本功。
最後也建議廣大DBA,像這類簡單查詢,仍是不要選擇複製網上的,本身對某個視圖或其中的字段含義有疑問的,建議直接查閱官方文檔reference章節:oracle

相關文章
相關標籤/搜索