今天碰到一個ASM歸檔磁盤空間異常的情況,需要查詢過去幾小時、幾天內的歸檔日志生成量,涉及到v$archived_log視圖,借此機會學習總結一下。
一、v$archived_log與gv$archived_log
單實例情況下毋庸置疑查詢v$archived_log
那么rac環境下varchived_log與gvarchived_log是個什么關系呢
我對比了兩個視圖,gv$archived_log僅多了一列INST_ID
執行查詢看到gv$archived_log中,同一個歸檔日志記錄了兩行,區別僅是inst_id不同

所以集群環境也查詢v$archived_log即可
二、歸檔數量及大小查詢
下面列出四種查詢的情況
1.查詢當天每小時的歸檔日志生成量
alter session set nls_date_format='yyyy.mm.dd hh24:mi:ss';
select logtime,
count(*),
round(sum(blocks * block_size) / 1024 / 1024) mbsize
from (select trunc(first_time, 'hh') as logtime, a.BLOCKS, a.BLOCK_SIZE
from v$archived_log a
where a.DEST_ID = 1
and a.FIRST_TIME > trunc(sysdate))
group by logtime
order by logtime desc;
說明:
1、first_time 是歸檔日志的開頭時間
2、DEST_ID指向本地歸檔,1代表log_archive_dest_1
3、trunc()函數中的hh代表小時,下面sql取dd代表天

上圖可見每小時產生19G左右的歸檔,count(*)列代表每小時兩節點一共產生了多少個歸檔日志。
2.查最近一周每天的歸檔日志生成量
select logtime,
count(*),
round(sum(blocks * block_size) / 1024 / 1024) mbsize
from (select trunc(first_time, 'dd') as logtime, a.BLOCKS, a.BLOCK_SIZE
from v$archived_log a
where a.DEST_ID = 1
and a.FIRST_TIME > trunc(sysdate - 7))
group by logtime
order by logtime desc;

3.查詢當天每小時的各個實例的歸檔日志生成量
select THREAD#,
logtime,
count(*),
round(sum(blocks * block_size) / 1024 / 1024) mbsize
from (select a.THREAD#,
trunc(first_time, 'hh') as logtime,
a.BLOCKS,
a.BLOCK_SIZE
from v$archived_log a
where a.DEST_ID = 1
and a.FIRST_TIME > trunc(sysdate))
group by THREAD#, logtime
order by THREAD#, logtime desc;

4. 查詢最近一周每天的各個實例的歸檔日志生成量
select THREAD#,
logtime,
count(*),
round(sum(blocks * block_size) / 1024 / 1024) mbsize
from (select THREAD#,
trunc(first_time, 'dd') as logtime,
a.BLOCKS,
a.BLOCK_SIZE
from v$archived_log a
where a.DEST_ID = 1
and a.FIRST_TIME > trunc(sysdate - 7))
group by THREAD#, logtime
order by THREAD#, logtime desc;

三、v$archived_log視圖的部分常用列說明
詳細說明見官方文檔:
https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/V-ARCHIVED_LOG.html#GUID-51618DF3-0C20-40E1-B94F-212FDF7CD729
| 列名 | 說明 |
|---|---|
| THREAD# | 產生歸檔的實例節點編號 |
| NAME | 歸檔日志的路徑和名稱 |
| SEQUENCE# | 歸檔的的序列號 |
| DEST_ID | 歸檔的目標,對應log_archive_dest_n參數,比如本地歸檔路徑使用log_archive_dest_1,那么這里的值就是1 |
| FIRST_CHANGE# | 歸檔開始記錄的SCN號 |
| NEXT_CHANGE# | 歸檔結束記錄的SCN號 |
| FIRST_TIME | 歸檔日志的開頭時間 |
| COMPLETION_TIME | 歸檔完成的時間 |
| BLOCKS | 歸檔日志有多少個塊 |
| BLOCK_SIZE | 歸檔日志每個塊有多大,結合上面BLOCKS能計算出每個歸檔日志的大小 |
| APPLIED | 歸檔是否被應用,DG相關 |
| STATUS | 狀態 A - Available D - Deleted U - Unavailable X - Expired,標記為刪除的歸檔日志NAME為空 |


最后修改時間:2022-03-07 19:09:08
「喜歡這篇文章,您的關注和贊賞是給作者最好的鼓勵」
關注作者
【版權聲明】本文為墨天輪用戶原創內容,轉載時必須標注文章的來源(墨天輪),文章鏈接,文章作者等基本信息,否則作者和墨天輪有權追究責任。如果您發現墨天輪中有涉嫌抄襲或者侵權的內容,歡迎發送郵件至:contact@modb.pro進行舉報,并提供相關證據,一經查實,墨天輪將立刻刪除相關內容。




