ITPub博客

首页 > 数据库 > Oracle > 第3章:调整redo buffer cache

第3章:调整redo buffer cache

原创 Oracle 作者:OmarChina 时间:2007-05-20 13:52:29 0 删除 编辑
调整redo buffer cache[@more@]

设置初始参数,不能动态修改

SQL> alter system set log_buffer=128000 scope=spfile;

系统已更改。

SQL> show parameter log_buffer

NAME TYPE VALUE
------------------------------------ ----------- --------
log_buffer integer 524288
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 118098724 bytes
Fixed Size 453412 bytes
Variable Size 104857600 bytes
Database Buffers 12582912 bytes
Redo Buffers 204800 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter log_buff

NAME TYPE VALUE
------------------------------------ ----------- --------
log_buffer integer 128000

其默认大小=512K或者(128K*CPU数目)

注:要把日志BUFFER设置为操作系统块容量的倍数!

二,容量影响性能:

没有一个绝对的计算方法,也没有绝对的设置多大的大小,因环境而异!

有默认的修改REDO BUFFER CACHE容量的规则:

应用类型Redo buffer Byte
OLTPLARGE1M-2M
DSS/DW/REPORTSMALL50KB-250K
混合型或普通型MEDIUM250K-1M

查看其大小:

SQL> SHOW PARAMETER LOG_BUFFER;

NAME TYPE VALUE
------------------------------------ ----------- --------
log_buffer integer 128000
SQL> SELECT * FROM V$SGASTAT WHERE NAME='log_buffer';

POOL NAME BYTES
----------- -------------------------- ----------
log_buffer 194560

SQL> show sga

Total System Global Area 118098724 bytes
Fixed Size 453412 bytes
Variable Size 104857600 bytes
Database Buffers 12582912 bytes
Redo Buffers 204800 bytes
SQL>

发现大小不一致,是正常的,ORACLE保留经由参数LOG_BUFFER设置的内存。

容量超过2M的不产生额外的益处。

另一个测量REDO BUFFER大小的方式。

1,当事务量处于最大时,选择一个时间帧;

2,发布查询,获得冲做记录项的平均容量,BYTE表示

SQL> SELECT r.VALUE / e.VALUE "average size of redo entries"
2 FROM V$sysstat r, V$sysstat e
3 WHERE r.NAME = 'redo size'
4 AND e.NAME = 'redo entries';

average size of redo entries
----------------------------
217.34452

3,记录该时间帧的并发事务数:

SQL> SELECT COUNT(*) "concurrent transactions"
2 FROM V$transaction;

concurrent transactions
-----------------------11

4,计算估计的REDO LOG BUFFER的容量,要+10%的FUDGE

concurrent transactions* average size of redo entries*1.10

5,CEIL(EST.

SELECT CEIL(217.34452*11*1.1/(8*1024))*8*1024/8192||'K' FROM DUAL;

REDO LOG BUFFER SIZE/OS BLOCK SIZE)*OS BLOCK SIZE

checkpoint

log_checkpoint_timeout 多少秒空闲等待后出现CHECKPOINT

log_checkpoint_interval多少量的记录写入重做日志文件时。

SQL> show parameter log_checkpoint

NAME TYPE VALUE
------------------------------------ ----------- -------
log_checkpoint_interval integer 0
log_checkpoint_timeout integer 1800
log_checkpoints_to_alert boolean FALSE
SQL> alter system set log_checkpoint_timeout=600;

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

下一篇: 分析函數的學習
请登录后发表评论 登录
全部评论
  • 博文量
    68
  • 访问量
    1008514