王旺的书房
自我介绍
切换风格
订阅我的Blog
博客日历
文章归档...
最新发表...
博客统计...
网站链接...
资源
===========================================================
9i笔记-后台进程
===========================================================

ARCn CKPT DBWn


-- 其它调整问题

-- ===========ARCn 归档进程============--
--如何确定ARCn进程是否有效地执行?

-- 与归档进程相关的等待事件
select name from v$event_name where name like 'log file switch%' ;

NAME
----------------------------------------
log file switch (checkpoint incomplete)
log file switch (archiving needed)
log file switch (clearing log file)
log file switch completion

-- 列出与日志相关的等待事件
select * from v$system_event where event like 'log%';
select * from v$system_event where name like 'log file switch (archiving%';
-- 即日志的切换要等archive的完成,如果出现log file switch (archiving needed)的等待事件,就说明归档不够快,导致日志切换不过来.

-- 通过v$archived_log 来查看多长时间生成一个归档日志,以及生成一个归档日志要花费多长时间?
-- 每20分钟生成一个归档日志,还不算作是频繁.
select name,blocks,status,
to_char(first_time,'dd-mon-yyyy hh24:mi:ss') started,
to_char(completion_time,'dd-mon-yyyy hh24:mi:ss') complete
from v$archived_log
--where trunc(first_time) = ''
-- 非归档模式是没有内容的

-- 通过 v$archived_processes 查看归档进程是否空闲?
select * from v$archived_processes;

-- 如何增加归档进程?
alter system set log_archive_max_processes = 5 ;
-- 这个参数值DEFAULT=2 MAX=10

-- =================== CKPT 检查点进程 ==================== --
-- 何时需要调整检查点?
-- 出现log file switch (checkpoint incomplete)
-- 当发生日志切换时,首先触发检查点,检查点通知DBWn 去写数据文件. 在这完成之前,LGWR必须等待,直到检查点完成.
-- 如果出现这个事件,就需要考虑加快DBWn

-- 另外一个需要查看的统计信息是后台检查点启动与完成的数量
select name,value from v$sysstat
where name like 'background checkpoint%'

NAME VALUE
---------------------------------------------------------------- ----------
background checkpoints started 0
background checkpoints completed 0

-- 如果started > completed 说明没有在日志文件切换之间完成检查点,
-- 反过来,说明日志文件不够大 , 需要增加重做日志文件的大小 (注: 这一句话没有理解,难道completed会大于started? )

-- 另外一点,通过查询v$SYSSTAT,还可以确定每一个检查点发生,平均写入的数据块数。
select name , value from v$sysstat where name like 'DBWR checkpoint%' ;

SQL> select name , value from v$sysstat where name like 'DBWR checkpoint%' ;

NAME VALUE
---------------------------------------------------------------- ----------
DBWR checkpoint buffers written 111
DBWR checkpoints 0

SQL> alter system checkpoint;

System altered.

SQL> select name , value from v$sysstat where name like 'DBWR checkpoint%' ;

NAME VALUE
---------------------------------------------------------------- ----------
DBWR checkpoint buffers written 114
DBWR checkpoints 1

-- 看上面的结果,一个检查点写了一块数据到数据文件中。
-- 有助于调整检查点的另外两个参数是: FAST_START_IO_TARGET FAST_START_MTTR_TARGET
-- FAST_START_MTTR_TARGET 是个综合性的参数,这个参数设置后,需要经常查看 V$INSTANCE_RECOVERY 视图, 其中的ESTIMATED_MTTR是否符合MTTR的设置目标?
select estimated_mttr from v$instance_recovery;

ESTIMATED_MTTR
--------------
8
8远远小于设置的300秒,可以


-- =================== DBWn 数据写入进程 ==================== --

-- DBWn慢 可能导致的情景:
-- 一个CKPT发生,DBWn 去写,还没有写完,又一个CKPT发生......
-- 因此, DBWn 必须要跟上 CKPT 进程

-- ==== 是否有DBWn的争用? ==== --
-- 1 通过v$SYSTEM_EVENT free buffer waits 这个等待说明数据库为了取得空闲的BUFFER, 必须等待DBWn去完成写操作.
select event,total_waits,time_waited
from v$system_event
where event like 'free%';
-- (思考: 这个时候增大DB BUFFER行吗? 不行, 更多的DB_BUFFER,只会增加DBWn的负担,所以只能快点写,)

-- 2 通过v$SYSSTAT 查看是否每次请求都能得到FREE BUFFER?
-- 如果得不到,则说明BUF不够用.

SQL> select * from v$sysstat where name like 'DBW%';

STATISTIC# NAME CLASS VALUE
---------- ---------------------------------------------------------------- ---------- ----------
49 DBWR checkpoint buffers written 8 119
50 DBWR transaction table writes 8 38
51 DBWR undo block writes 8 40
52 DBWR revisited being-written buffer 8 0
53 DBWR make free requests 8 0
54 DBWR free buffers found 8 0
55 DBWR lru scans 8 0
56 DBWR summed scan depth 8 0
57 DBWR buffers scanned 8 0
58 DBWR checkpoints 8 1
59 DBWR cross instance writes 40 0
60 DBWR fusion writes 40 0


select round(a.value/b.value) avg_free_per_request
from v$sysstat a,v$sysstat b
where a.name = 'DBWR free buffers found'
and b.name = 'DBWR make free requests'
and b.value <> 0
/

-- 如何加快DBWn ?
-- 如果单CPU,OS 又不支持 异步I/O (ASYN IO),啥也别做了。
-- 如果单CPU,OS 支持异步I/O , 设置DBWR_IO_SLAVES disk_asynch_io 参数
-- 如果多CPU,set init parameter DB_WRITER_PROCESSES

--=========================--

wmlm 发表于:2008.07.16 18:41 ::分类: ( oracle ) ::阅读:(52次) :: 评论 (0) :: 引用 (0)

发表评论
标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)

authimage