欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redo日志、redo log

程序员文章站 2022-07-08 15:19:59
...

说明

Redo Log Buffer的大小由初始化参数LOG_BUFFER定义,该参数的缺省值为Max(512KB,128KB*CPU_COUNT)。
通常这一缺省值是足够的,我们知道,Redo Log Buffer的写出操作是相当频繁的,所以过大的Log Buffer设置通常是没有必要的;如果缺省值不能满足要求,一般来说3MB是一个较为合理的调整开端。

log_buffer参数的设置是否需要调整,可以从数据库的等待事件来判断:

select event#,name from v$event_name where name='log buffer space';

1	140	log buffer space

当Log Buffer Space等待事件出现并且较为显著时,可以考虑增大Log Buffer以缩减竞争。 从Oracle 10g开始,LOG_BUFFER的分配算法有所改变,由于Granule的引入,LOG_BUFFER的分配也需要以Granule为基础,缺省的SGA中的Fixed SGA Size将和LOG_BUFFER共享整数倍的Granule:

 select * from v$version where rownum<2;
 1	Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production	0


SQL> show parameter log_buffer
log_buffer                           big integer 12896K
select * from v$sgainfo  where name in ('Fixed SGA Size','Redo Buffers','Granule Size');
 1	Fixed SGA Size	3052432	No	0
2	Redo Buffers	13721600	No	0
3	Granule Size	16777216	No	0

select (3052432+13721600)/16777216 from dual

操作

--查询所有
select * from v$sgainfo
--查看内存区域大小/查看redo buffer大小
select * from v$SGA;/show sga
--查看REDO日志地址
select * from v$logfile;
--查看redo日志切换时间
select * from v$log order by group#;
--删除redo再去手动删物理文件
alter database drop logfile group 2
--增加新的redo日志文件
alter database add logfile group 1 ('G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG') size 1G;
--查询
select name,value/(1024*1024) M from v$parameter  where name = 'log_buffer';
--设置大小为15M
select 15*1024*1024 bytes from dual;
 
SQL> alter system set log_buffer = 15728640 scope=spfile;
System altered.
SQL> shutdown immediate
SQL> startup
SQL> show parameter log_buffer

 
相关标签: 数据库知识