2012年6月19日星期二

定制log组的数量和大小

根据 统计事务量 来确定 日志组数
下列语句可以 统计事务量
select to_char(first_time,'YYYY-MM-DD HH24') v_time, count(*)from v$log_history
group by to_char(first_time, 'YYYY-MM-DD HH24') order by v_time desc
看一小时 切换 几个log 一小时 切换 不能多余5次,否则影响性能
加大日志文件 也可以 , 但是当库坏,会丢的数据多些

redo 的 组多, 是为 避免 redo 一圈 使用完,要覆盖时, 却发现不能覆盖,要覆盖的还没归档
redo 的 大小:为了解决 checkpoint 数量过多 checkpoint 数量 每小时 5次, 越多越影响性能
++++++++++++++++++++++
关于影响性能说明:
1、
日志切换太频繁,那么就会引起数据写很频繁,那么就会影响性能
(日志切换就会产生checkpoint,产生了checkpoint那么就会写数据)
2、
checkpoint是把内存中的脏数据写到磁盘
checkpoint是一个数据库事件,它将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件
如果checkpoint越大(即log_checkpoint_interval值),一次写磁盘的数据
也会越多。另外,内存中的脏数据也会越多,而且这些脏数据部分占用了内存空间,其他可用的空间就会更少。
还有,checkpoint越大,数据库意外停止后的启动时,需要恢复的过程也会越长。
++++++++++++++++++++++

checkpoint : date block 从 memeber --> disk 同步
redo 的 越大, checkpoint 数量越少(当 redo切换时,会做一次 checkpoint)
select a.member,a.group#,b.thread#,b.bytes,b.members,b.status from v$logfile a,v$log b where a.group#=b.group# order by a.group#;

6 rows selected.
如果看到将要当前使用日志组的下一组状态为active,那说明可能发生要切
换日志了但是日志还没归档完毕(active说明正在归档),所以有必要增
加一组日志来避免这种情况
也可以增大日志文件,但是增大日志文件会增大数据库的风险

没有评论:

发表评论