首先这对于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