小编给大家分享一下归档日志如何统计归档日志更准确,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
做一个归档日志历史记录的一些信息,发现两个视图五美元存档日志另一个是五美元日志历史记录
下面我们先看下官方说明:
五美元存档日志也就是这个视图显示的是控制文件中的信息,如果归档日志已经删除,名称列将显示为空
V $ ARCHIVED _ LOG显示控制文件中的存档日志信息,包括存档日志名称。在线重做日志成功归档或清除后,会插入归档日志记录(如果日志已清除,则"名称"列为空)。如果日志被存档两次,将会有两个存档的日志记录,它们具有相同的线程号、序列号和FIRST_CHANGE#,但是名称不同。当从备份集或副本还原归档日志时,以及当使用RMAN复制命令制作日志副本时,也会插入归档日志记录。
五美元日志历史记录这个说的比较简单,就是控制文件中的历史信息
V$LOG_HISTORY显示控制文件中的日志历史信息
那么它们有什么区别呢,或者说谁统计的个数更准确?(已做过统计测试,每天生成的归档日志数量不一致)
如下所示:
五美元日志历史记录
SQL SELECT trunc(第一次)'日期,
2至_char(第一次,“Dy”)“日”,
3计数(1)"总计"
4 FROM V $日志_历史记录其中截止日期(第一次)至今(系统日期-15)
5组按trunc(第一次),to_char(第一次,' Dy ')
6按一排序;
日期日总计
- - -
3月一日
Fri
七月13日至17日
七月18日至17日星期二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.
以上是“ARCHIVELOG如何统计归档日志更准确”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/141863.html