日志的状态

Posted by dbtan on 十二月 16th, 2009

日志的状态:

可以通过v$log视图来查看日志文件的状态:

sys@NEI> select group#,status,first_change# from v$log;
    GROUP# STATUS           FIRST_CHANGE#
---------- ---------------- -------------
         1 CURRENT               59719840
         2 INACTIVE       &n
... ...
<阅读全文>

commit做了什么?

Posted by dbtan on 十二月 16th, 2009

commit做了什么?

当完成事务操作,发出commit命令之后,随后会收到一个反馈Commit complete

dbtan@NEI> insert into emp select * from emp;
128 rows created.
dbtan@NEI> commit;
Commit complete.

提交完成,这个提示意味着Oracle已经将此时间点之前的Redo写入重做日志文件件,这个日志写完成之后,Oracle可以释放用户去执行其他任务。如果此后发生数据库崩溃,那么Oracle可以从重做日志文件中恢复这些提交过的数据,从而保证提交成功的数据不会丢失。

解释:
为什么COMMIT的响应时间相
... ...
<阅读全文>

Redo Log Buffer的大小设置

Posted by dbtan on 十二月 16th, 2009

Redo Log Buffer的大小设置:

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

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

sys@NEI> select event#,name from v$event_na
... ...
<阅读全文>

Redo写的触发条件

Posted by dbtan on 十二月 16th, 2009

Redo写的触发条件:

为了保证用户可以快速提交,LGWR的写出必须非常活跃,实际上也确实如此,我们非常熟悉的LGWR写触发条件就有4条

1. 每3秒超时(Timeout)
当LGWR处于空闲状态时,它依赖于rdbms ipc message等待,处于休眠状态,直到3秒超时时间到。如果LGWR发现有redo需要写出,那么LGWR将执行写出操作,log file parallel write等待事件将会出现。

2. 阀值达到
我们在各种文档上经常会看到的2个触发日志写的条件是:

·Redo Log Buffer 1/3满;
·Redo Log Bufrer 具有1MB
... ...
<阅读全文>

产生多少Redo

Posted by dbtan on 十二月 14th, 2009

产生多少Redo:

对于数据库的修改操作都会记录Redo,那么不同的操作会产生多少Redo呢?可以通过以下一些方式来查询。
⑴ SQL*Plus中使用AUTOTRACE的功能的。
当在SQL*Plus中启用Autotrace跟踪后,在执行了特定的DML语句时,Oracle会显示该语句的统计信息,其中,Redo Size一栏表示的就是该操作产生的Redo的数量,其单位为Bytes:

dbtan@NEI> set autotrace traceonly statistics
dbtan@NEI> insert into emp select * from emp;
32 rows created.
Statistics
----------------------------------------------------------
  &nb
... ...
<阅读全文>


Copyright © 2010 http://www.dbtan.com. All rights reserved.