ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 与redo files相关的4个参数

与redo files相关的4个参数

原创 Linux操作系统 作者:pingley 时间:2012-03-08 15:44:23 0 删除 编辑
与redo files相关的4个参数
1、blocksize  redo log files 的默认block 大小等于磁盘扇区的大小。典型值是512 bytes.有些新的大容量磁盘提供了4KB 的扇区。在大多数平台下oracle数据库可以探测到磁盘的扇区大小,并把redo log files 的block 大小设置成磁盘扇区的大小。较大的扇区可以提供redo log files 读写的性能,但是会增加存储空间浪费。在oracle 11g R2 可以通过在create dadabase,alter database,create controlfile语句中指定 blocksize 语句来从512,1024,4096bytes中选择一个值作为redo log files的block 大小。不过前提是你的磁盘扇区的大小是4KB的,可以才可以通过扇区模拟设置block 的大小为512bytes,1024bytes。另外扇区大小是512bytes的磁盘没必要使用blocksize 512.其实使用大容量的扇区浪费不了多少存储空间,完全可以使用大容量的redo log files 块。
确定当前数据库中redo log files 的block大小:
SQL> select blocksize from V$log;
 BLOCKSIZE
----------
       512
确定redo log files 浪费的存储空间:
SQL> select name,value from V$sysstat where name='redo wastage';
NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo wastage                                                         222104
上面查询的值的单位是bytes,至于为什么会产生redo wastage 和LGWR写redo log files block的方式有关,简单的说就是LGWR
每写一次redo data,都会从新的block 开始,这样上次没有写满的block中的剩余空间就浪费掉了。所有的这些浪费的空间
积累起来就成了 redo wastage。
2、maxlogfiles 在创建数据库的create database 语句中为数据库实例确定最大的日志文件组数。设置了该值以后允许的日志文件组的范围是1到maxlogfiles。当数据库的兼容参数设置为10.2.0以前的时候。日志文件组的数量不能超过maxlogfiles 。如果需要创建更多的日志文件组只能重新创建数据库或者控制文件。但是如果兼容参数设置为10.2.0及以后日志文件组的数量可以超过maxlogfiles 的限制。相应的控制文件中的值也会自动的扩展为实例当前的日志文件组数。如果在创建数据库的时候没有指定maxlogfiles,将会使用与操作系统相关的默认值。如果在使用DBCA创建数据库的时候生成了脚本你可以通过查看CreateDB.sql文件查看maxlogfiles的值。
查看当前数据库的maxlogfiles:
SQL> select type,records_total from V$controlfile_record_section
  2  where type='REDO LOG';
TYPE                         RECORDS_TOTAL
---------------------------- -------------
REDO LOG                                16
redo log 就是maxlogfiles 的值。
3、maxlogmembers 在创建数据库数据库的create database 语句中,通过指定maxlogmembers来指设置一个日志文件组中最大允许的日志文件成员数量。设置了该值以后日志文件组中允许的日志文件成员数量从1 到 maxlogmembers 限制的最大值。对于maxlogmembers 参数如果想创建更多的日志文件成员需要重新创建数据库或者控制文件。因此指定该参数的值时应该谨慎,如果在create database语句中没有指定maxlogmembers 参数,将会使用特定于操作系统的默认值。同样也可以通过传看DBCA
生成的数据库创建脚本确定该参数的值。注意maxlogmembers 同样是受兼容参数影响的,兼容参数设置为10.2.0以后控制文件中的maxlogmembers也会自动扩展到实例的日志文件组中最大的日志文件成员数。
查看当前数据库的maxlogmembers:
SQL> select dimlm from X$kccdi;
     DIMLM
----------
         3
dimlm 的意思是:maximum number of log file members allowed
4、archive_lag_target 参数设置经过一定的时间之后强制日志切换,这样可以避免出现故障的时候丢失的数据量。该参数的默认值是0,即不启用该特性。该参数的取值范围是60~7200,通常不建议把参数的值设置成小于1800(30分钟)或者大于7200.该参数的值设置的较小将会导致频繁的日志文件组却换,增加系统开销影响系统的性能。使用alter system set 设置该动态参数的时候,需要考虑以下两个
重要的因素:
1、正常情况下日志文件组切换的频率。
2、可以容忍丢失多少redo 数据。
如果日志文件组已经很频繁的切换,这时候archive_log_target 参数的值就变成了日志文件组切换时间的上限了。(archive_lag_target参数在没有standby database 的时候也可以使用。)
查看当前数据库是否启用了archive_log_target:
SQL> show parameter archive_lag_target;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------
archive_lag_target                   integer     0

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-718074/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    715410