【ARCHIVELOG】怎樣統計歸檔日誌更準確
下午做一個歸檔日誌歷史記錄的一些資訊,發現兩個檢視 v$archived_log 另一個是 V$log_history
下面我們先看下官方說明:
v$archived_log 也就是這個檢視顯示的是控制檔案中的資訊,如果歸檔日誌已經刪除,name列將顯示為空
點選(此處)摺疊或開啟
- V$ARCHIVED_LOG displays archived log information from the control file, including archive log names. An archive log record is inserted after the online redo log is successfully archived or cleared (name column is NULL if the log was cleared). If the log is archived twice, there will be two archived log records with the same THREAD#, SEQUENCE#, and FIRST_CHANGE#, but with a different name. An archive log record is also inserted when an archive log is restored from a backup set or a copy and whenever a copy of a log is made with the RMAN COPY command.
v$log_history 這個說的比較簡單,就是控制檔案中的歷史資訊
點選(此處)摺疊或開啟
- V$LOG_HISTORY displays log history information from the control file
那麼它們有什麼區別呢,或者說誰統計的個數 更準確?(已做過統計測試,每天生成的歸檔日誌數量不一致)
如下所示:
v$log_history
點選(此處)摺疊或開啟
-
SQL> SELECT trunc(first_time) "Date",
-
2 to_char(first_time, 'Dy') "Day",
-
3 count(1) "Totals"
-
4 FROM V$log_history where to_date(first_time)>to_date(sysdate-15)
-
5 group by trunc(first_time), to_char(first_time, 'Dy')
-
6 Order by 1;
-
-
Date Day Totals
-
--------- ------ ----------
-
05-JUL-17 Wed 1
-
07-JUL-17 Fri 5
-
13-JUL-17 Thu 1
- 18-JUL-17 Tue 2
v$archived_log
點選(此處)摺疊或開啟
-
SQL> select trunc(completion_time) as "date",count(*) as "Count",(sum(blocks*block_size)/1024/1024) as "MB" from v$archived_log group by trunc(completion_time);
-
-
date Count MB
-
--------- ---------- ----------
-
18-JUL-17 3 28.9492188
-
07-JUL-17 7 229.628418
- 13-JUL-17 1 27.3828125
18-JUL-17 天,我手動切了三次歸檔,如下
點選(此處)摺疊或開啟
-
SQL> alter system switch logfile;
-
-
System altered.
-
-
SQL> /
-
-
System altered.
-
-
SQL> /
-
- System altered.
而v$log_history 顯示的卻是2個
下面我們透過rman來看 顯示結果 18日這天是2個, 也就是統計資訊跟v$log_history 一樣
點選(此處)摺疊或開啟
-
RMAN> list archivelog all;
-
-
using target database control file instead of recovery catalog
-
List of Archived Log Copies for database with db_unique_name MYDB
-
=====================================================================
-
-
Key Thrd Seq S Low Time
-
------- ---- ------- - ---------
-
1 1 306 A 30-JUN-17
-
Name: /backup/mydbarchivelog/1_306_947429846.dbf
-
-
2 1 307 A 04-JUL-17
-
Name: /backup/mydbarchivelog/1_307_947429846.dbf
-
-
3 1 308 A 05-JUL-17
-
Name: /backup/mydbarchivelog/1_308_947429846.dbf
-
-
4 1 309 A 07-JUL-17
-
Name: /backup/mydbarchivelog/1_309_947429846.dbf
-
-
5 1 310 A 07-JUL-17
-
Name: /backup/mydbarchivelog/1_310_947429846.dbf
-
-
6 1 311 A 07-JUL-17
-
Name: /backup/mydbarchivelog/1_311_947429846.dbf
-
-
7 1 312 A 07-JUL-17
-
Name: /backup/mydbarchivelog/1_312_947429846.dbf
-
-
8 1 313 A 07-JUL-17
-
Name: /backup/mydbarchivelog/1_313_947429846.dbf
-
-
9 1 314 A 13-JUL-17
-
Name: /backup/mydbarchivelog/1_314_947429846.dbf
-
-
10 1 315 A 18-JUL-17
-
Name: /backup/mydbarchivelog/1_315_947429846.dbf
-
-
11 1 316 A 18-JUL-17
- Name: /backup/mydbarchivelog/1_316_947429846.dbf
好,我們在透過系統命令來看 ,卻是3個
點選(此處)摺疊或開啟
-
SQL> !ls -l /backup/mydbarchivelog
-
total 341292
-
-rw-r----- 1 oracle oinstall 27716608 Jun 28 16:33 1_303_947429846.dbf
-
-rw-r----- 1 oracle oinstall 1552896 Jun 29 11:10 1_304_947429846.dbf
-
-rw-r----- 1 oracle oinstall 20325888 Jun 30 09:21 1_305_947429846.dbf
-
-rw-r----- 1 oracle oinstall 19091968 Jul 7 13:58 1_306_947429846.dbf
-
-rw-r----- 1 oracle oinstall 22322176 Jul 7 13:58 1_307_947429846.dbf
-
-rw-r----- 1 oracle oinstall 21595136 Jul 7 13:58 1_308_947429846.dbf
-
-rw-r----- 1 oracle oinstall 48646656 Jul 7 15:15 1_309_947429846.dbf
-
-rw-r----- 1 oracle oinstall 47450112 Jul 7 15:49 1_310_947429846.dbf
-
-rw-r----- 1 oracle oinstall 41217024 Jul 7 16:00 1_311_947429846.dbf
-
-rw-r----- 1 oracle oinstall 40463360 Jul 7 22:00 1_312_947429846.dbf
-
-rw-r----- 1 oracle oinstall 28713472 Jul 13 11:10 1_313_947429846.dbf
-
-rw-r----- 1 oracle oinstall 30352896 Jul 18 12:57 1_314_947429846.dbf
-
-rw-r----- 1 oracle oinstall 1024 Jul 18 12:57 1_315_947429846.dbf
- -rw-r----- 1 oracle oinstall 3072 Jul 18 12:57 1_316_947429846.dbf
什麼情況呢,透過跟rman對比,我們可以看出,其實一個統計的是開始時間,另一個統計的是結束(完成)時間,
開始時間 也就是rman執行命令(list archivelog all)查詢結果一致,另一個結束時間,也就跟作業系統中執行命令(ls -lrt)結果一致,當然他們統計的資訊是在歸檔檔案未刪除前是一致的,因為刪除後,'list archivelog all' 和'ls -lrt’ 將不再顯示。
當然,我們可以直接統計未刪除的歸檔日誌大小
點選(此處)摺疊或開啟
-
SQL> --not delete archivelog sum size
- SQL> select ((sum(blocks * block_size)) /1024 /1024) as "MB" from v$archived_log where STANDBY_DEST ='NO' and deleted='NO'
如果想要更準確的結果(如果就是為了統計未刪除的資訊)我們可以選擇 deleted='NO' 或者 NAME IS NOT NULL.
OK, 如果有其他好玩的 ,我們會繼續跟蹤 , 手工,下班
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2142259/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN delete archivelog命令刪除歸檔日誌及歸檔日誌拷貝deleteHive
- rman 還原歸檔日誌(restore archivelogRESTHive
- Oracle基礎 04 歸檔日誌 archivelogOracleHive
- rman 還原歸檔日誌(restore archivelog)RESTHive
- 歸檔日誌大小統計
- 當ORACLE歸檔日誌滿後如何正確刪除歸檔日誌Oracle
- 用restore archivelog從備份集中恢復歸檔日誌RESTHive
- 如何正確刪除ORACLE歸檔日誌檔案Oracle
- 用rman 正確地刪除歸檔日誌
- 歸檔日誌
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- 備份歸檔日誌報錯ORA-19625: crosscheck archivelog allROSHive
- oracle歸檔日誌Oracle
- Oracle 歸檔日誌Oracle
- 歸檔日誌挖掘
- PostgreSQL 歸檔日誌SQL
- 統計某個時間段的歸檔日誌大小
- 控制檔案/歸檔日誌
- 怎樣得到準確的執行計劃
- 歸檔日誌多歸檔路徑 duplex
- 歸檔oracle alert日誌Oracle
- 14. 日誌歸檔
- PostgreSQL歸檔日誌配置SQL
- rman清理歸檔日誌
- archive log 歸檔日誌Hive
- 備份歸檔日誌
- 歸檔日誌 現象
- Oracle歸檔日誌清理Oracle
- 用RMAN備份歸檔日誌時檢查歸檔日誌是否存在
- 誤刪歸檔日誌除導致備份歸檔日誌失敗
- 聯機重做日誌、歸檔日誌、備用重做日誌
- 備份歸檔日誌檔案
- 日誌檔案和歸檔管理
- 刪除歸檔日誌檔案
- 歸檔日誌損壞驗證:Corrupt archivelog giving unclear errors [ID 1359971.1]HiveError
- 手工rm刪除歸檔日誌對備份歸檔日誌的影響
- Oralce資料庫關閉歸檔日誌並且刪除歸檔日誌資料庫
- 批量註冊歸檔日誌