High redo log buffer wait

Hi,
I can see "high redo log buffer wait" event. The instance spent 23% of its resources waiting for this event. Any suggestion to tune redo log buffer?
DB version : 10.2.0.4.0
Os : AIX
SQL> SELECT name, value FROM v$sysstat WHERE name = 'redo log space requests';
NAME VALUE
redo log space requests 3542
SQL> sho parameter buffer
NAME TYPE VALUE
buffer_pool_keep string
buffer_pool_recycle string
db_block_buffers integer 0
log_buffer integer 14238720
use_indirect_data_buffers boolean FALSE
SQL> select GROUP#,BYTES from v$log;
GROUP# BYTES
1 1073741824
4 1073741824
3 1073741824
2 1073741824
SQL> show parameter sga
NAME TYPE VALUE
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 5G
sga_target big integer 5G
Thanks

Gowin_dba wrote:
I can see "high redo log buffer wait" event. The instance spent 23% of its resources waiting for this event. Any suggestion to tune redo log buffer?
SQL> SELECT name, value FROM v$sysstat WHERE name = 'redo log space requests';
NAME VALUE
redo log space requests 3542 How are you getting from 3,542 "redo log space requests" to 23% of the instance resources waiting for "high redo log buffer wait" (which is not a wait event that can be found in v$event_name in any version of Oracle) ?
"redo log space requests" is about log FILE space, by the way, not about log BUFFER space.
Regards
Jonathan Lewis

Similar Messages

  • High redo log space wait time

    Hello,
    Our DB is having very high redo log space wait time :
    redo log space requests 867527
    redo log space wait time 67752674
    LOG_BUFFER is 14 MB and having 6 redo logs groups and the size of redo log file is 500MB for each log file.
    Also, the amount of redo generated per hour :
    START_DATE START NUM_LOGS MBYTES DBNAME
    2008-07-03 10:00 2 1000 TKL
    2008-07-03 11:00 4 2000 TKL
    2008-07-03 12:00 3 1500 TKL
    Does increasing the size of LOG_BUFFER will help to reduce the redo log space wait ?
    Thanks in advance ,
    Regards,
    Aman

    Looking quickly over the AWR report provided the following information could be helpful:
    1. You are currently targeting approx. 6GB of memory with this single instance and the report tells that physical memory is 8GB. According to the advisories it looks like you could decrease your memory allocation without tampering your performance.
    In particular the large_pool_size setting seems to be quite high although you're using shared servers.
    Since you're using 10.2.0.4 it might be worth to think about using the single SGA_TARGET parameter instead of the specifying all the single parameters. This allows Oracle to size the shared pool components within the given target dynamically.
    2. You are currently using a couple of underscore parameters. In particular the "_optimizer_max_permutations" parameter is set to 200 which might reduce significantly the number of execution plans permutations Oracle is investigating while optimizing the statement and could lead to suboptimal plans. It could be worth to check why this has been set.
    In addition you are using a non-default setting of "_shared_pool_reserved_pct" which might no longer be necessary if you are using the SGA_TARGET parameter as mentioned above.
    3. You are using non-default settings for the "optimizer_index_caching" and "optimizer_index_cost_adj" parameters which favor index-access paths / nested loops. Since the "db file sequntial read" is the top wait event it might be worth to check if the database is doing too excessive index access. Also most of the rows have been fetched by rowid (table fetch by rowid) which could also be an indicator for excessive index access/nested loop usage.
    4. You database has been working quite a lot during the 30min. snapshot interval: It processed 123.000.000 logical blocks, which means almost 0.5GB per second. Check the top SQLs, there are a few that are responsible for most of the blocks processed. E.g. there is a anonymous PL/SQL block that has been executed almost 17.000 times during the interval representing 75% of the blocks processed. The statements executed as part of these procedures might be worth to check if they could be tuned to require less logical I/Os. This could be related to the non-default optimizer parameters mentioned above.
    5. You are still using the compatible = 9.2.0 setting which means this database could still be opened by a 9i instance. If this is no longer required, you might lift this to the default value of 10g. This will also convert the REDO format to 10g I think which could lead to less amount of redo generated. But be aware of the fact that this is a one-way operation, you can only go back to 9i then via a restore once the compatible has been set to 10.x.
    6. Your undo retention is set quite high (> 6000 secs), although your longest query in the AWR period was 151 seconds. It might be worth to check if this setting is reasonable, as you might have quite a large undo tablespace at present. Oracle 10g ignores the setting if it isn't able to honor the setting given the current Undo tablespace size.
    7. "parallel_max_servers" has been set to 0, so no parallel operations can take place. This might be intentional but it's something to keep in mind.
    Regards,
    Randolf
    Oracle related stuff:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle:
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/

  • Redo Log Buffer 32.8M, Seems to Big?

    I just took over a database (Mainly used for OLTP on 11gR1) and I am looking at the log_buffer parameter it is set to 34412032 (32.8M). Not sure why it is so high.
    select
        NAME,
        VALUE
    from
        SYS.V_$SYSSTAT
    where
        NAME in ('redo buffer allocation retries', 'redo log space wait time');
    redo buffer allocation retries     185
    redo log space wait time          5180(database has been up for 7.5 days)
    Any opinions on this? I Normally keep try to stay below 3M and have not really seen it above 10M.

    Sky13 wrote:
    I just took over a database (Mainly used for OLTP on 11gR1) and I am looking at the log_buffer parameter it is set to 34412032 (32.8M). Not sure why it is so high.
    In 11g you shouldn't set the log_buffer parameter - let Oracle set the default.
    The value is derived from the setting for the CPU count and the transactions parameter, which may be derived from sessions, which may be derived from processes. Moreover, Oracle is going to allocate at least a granule (which may be 4MB, 8MB, 16MB, 64MB or 256MB depending on the size of the SGA, so you are unlikely to save memory by reducing the log buffer size.
    Here's a link to a discussion which shows you how to find out what's really behind that figure.
    Re: Archived redo log size more less than online redo logs
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    Author: <b><em>Oracle Core</em></b>

  • Redo Log Buffer sizing problem

    My pc has 512mb RAM and i was trying to increase the redo log buffer size. Initially the log_buffer size was 2899456 bytes. So i tried to increase it to 3099456 by issuing the command:
    ALTER SYSTEM SET LOG_BUFFER=3099456 SCOPE=SPFILE;
    And i issued SHUTDOWN IMMEDIATE. Upon restarting my database, when i queried SHOW PARAMETERS LOG_BUFFER . The value has been changed to 7029248 bytes not 3099456 which i wanted. How did this happen?

    1.) We are all volunteers.
    2.) It was only 5 hours between posts and you're complaining that there are no answers?
    3.) You didn't bother to mention platform or Oracle version, even after being specifically asked for it? Which part of "What is your Oracle version?" do you not understand? And yes, the platform may be useful too....
    From memory, there could a couple of things going on. First off, starting in 9i, Oracle allocates memory in granules, so, allocating chunks smaller than granule size can result in being rounded up to granule size. Second, on some platforms, Oracle protects the redo buffer with "guard pages", i.e., extra memory that serves simply to try to prevent accidental memory overflows from corrupting the redo buffer.
    If you want a specific answer, or at least a shot at one, post:
    1.) Oracle version (specific version: 8.1.7.4, 9.2.0.8, 10.2.0.3, etc).
    2.) Platform
    3.) O/S and version
    4.) Current SGA size
    Reposting the same question, or threatening to do so, will get you nowhere.
    -Mark

  • To where does the LGWR write information in redo log buffer ?

    Suppose my online redo logfiles are based on filesystems .I want to know to where the LGWR writes information in redo log buffer ? Just write to filesystem buffer or directly write to disk ? And the same case is associated with the DBWR and the datafiles are based on filesystems too ?

    It depends on the filesytem. Normally there is also a filesystem buffer too, which is where LGWR would write.Yes but a redo log write must always be a physical write.
    From http://asktom.oracle.com/pls/ask/f?p=4950:8:15501909858937747903::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:618260965466
    Tom, I was thinking of a scenario that sometimes scares me...
    **From a database perspective** -- theoretically -- when data is commited it
    inevitably goes to the redo log files on disk.
    However, there are other layers between the database and the hardware. I mean,
    the commited data doesn't go "directly" to disk, because you have "intermediate"
    structures like i/o buffers, filesystem buffers, etc.
    1) What if you have commited and the redo data has not yet "made it" to the redo
    log. In the middle of the way -- while this data is still in the OS cache -- the
    OS crashes. So, I think, Oracle is believing the commited data got to the redo
    logs -- but is hasn't in fact **from an OS perspective**. It just "disapeared"
    while in the OS cache. So redo would be unsusable. Is it a possible scenario ?
    the data does go to disk. We (on all os's) use forced IO to ensure this. We
    open files for example with O_SYNC -- the os does not return "completed io"
    until the data is on disk.
    It may not bypass the intermediate caches and such -- but -- it will get written
    to disk when we ask it to.
    1) that'll not happen. from an os perspective, it did get to disk
    Message was edited by:
    Pierre Forstmann

  • What exactly is Redo log buffer?

    I know that Redo log buffer is a part of SGA and it sotores each and every change in it. But i want to know whether it stores all the updates and other changes as it is stored in DB Buffer Cache.? Or if not what exactly is sotored in it and when...?
    null

    Hi,
    Redo Log Buffers are part of SGA and they store each and every entry that is made in the DB.
    This is also stored in the Redo Log FIles. This information is used during recovery of a Crashed DB.
    A Redo Log does not Store the Data but oinly the Stmt. that was executed in the DB.
    A DB Buffer Stores data and not the command.
    If u need more information Pls Refer to The Oracle 8 Concepts on the Oracle Documentation.
    Hope this helps.
    Regards,
    Ganesh R
    null

  • Buffer, library,dictionary, shared pool, redo log buffer chache hit ratios

    Can please one provide information and sql queries to calculate Buffer, library,dictionary, shared pool, redo log buffer chache hit ratios and if any other ratio for investigation of performance issues in oracle 10g database (10g.1 and 10g.2 both). thanks in advance.

    In and by themselves most of the standard ratio calculations are useless to misleading. All the ratios should always be considered in relation to other data such as total requests for a resource, existence of any outlying values in the associated events, etc ....
    The proper warning being given then you can find most of the standard ratios mentioned with SQL for their calculation in the Performance and Tuning manual for your version of Oracle.
    HTH -- Mark D Powell --

  • Redo log buffer question

    hi masters,
    this seems to be very basic, but i would like to know internal of this process.
    we all know that LGWR writes redo entries to online redo log files on disk. on commit SCN is generated and tagged to transaction. and LGWR writes this to online redo log files.
    but my question is, how these redo entries comes to redo log buffer??? look all required data is fetched into buffer cache by server process. it is modified there, and committed. DBWR writes this to datafiles, but at what point, which process writes this committed transaction (i think redo entry) into log buffer cache????
    does LGWR do this?? what internally happens exactly???
    if you can plz focus some light on internals, i will be thankfull....
    thanks and regards
    VD

    Hi Vikrant,
    DBWR writes this to datafiles, but at what point, which process writes this committed transaction (i think redo entry) into log buffer cache????Remember that, Before DBWR Acts on flushing the dirty Blocks to Data files, Before this server process, makes sure that LGWR finishes the writing Redo Log Buffer to Online Redo Log files. Since as per ORACLE Architecture poting of Recovering data till point of time @ Crash is important and this is achieved by Online Redo Logs files.
    Rest how the data is Updated in to the Redo Log Buffer Aman had stated the clear steps.
    - Pavan Kumar N

  • REDO LOG BUFFER

    Whenever a DML like Insert statement is issued it gets written to the Database buffer cache first by the server process(dedicated server).
    Which process writes this DML activity to the redo log buffer ?
    I guess DML is first written to the redolog files and only after that the same DML is committed to the data files.Is this correct ?
    Can get any references to read on how any activity/DML is processed with a Oracle architecture perspective.
    Thanks

    Yes.  Only the server process for that session knows what changes were made to the buffer cache.  So it is the only one that can write the change vectors to the redo log buffer.
    Hemant K Chitale

  • Where can I find redo log buffer advice

    Hi,
    Our customer needs the information about redo log buffer. But In administrator--database configuration--memory parameters item of grid control 10g, I can only get the information about buffer cache & shared pool, as well as the corresponding advice. I cannot find information about redo log buffer in this page. I wonder why the information about redo log buffer is not included in this page.Where can I find it?

    The Log Buffer is part of your Intialization Parameters.
    So, from EM, you can find the information you need when you select the Database > Adminstration > All Initialization Parameters (under Database Configuration)

  • What does redo log buffer holds, changed value or data block?

    Hello Everyone,
    i am new to database side and have one query as i know redo log buffer contain change information , my doubt is does it store the value only or the changed data block? because if we can see data buffer cache size is more as it holds data block and redo log buffer size is less .

    The Redo Log buffer contains OpCodes that represent the SQL commands, the "address" (file,block,row) where the change is to be made and the nature of the change.
    It does NOT contain the data block.
    (the one exception is when you run a User Managed Backup with ALTER DATABASE BEGIN BACKUP or ALTER TABLESPACE BEGIN BACKUP : The first time a block is modified when in BEGIN BACKUP mode, the whole block is written to the redo stream).
    The log buffer can be and is deliberately smaller than the blocks buffer cache. Entries in the redo log buffer are quickly written to disk (at commits, when it is 1/3rd or 1MB full, every 3seconds, before DBWR writes a modified data block).
    Hemant K Chitale

  • Redo log buffer is in cretical position

    hi Experts,
    please try to solve my query,   here in my system redo log buffer shows(alert monitoring) 99<4000 and message is '4000 redo entries per redo log space requests'
    so i think i need to increase log_buffer parameter value upto required level ,then i entered in database
    splplus / as sysdba
    and i try to check my file is in which type (spfile or in pfile) by executing command 
    " SHOW PARAMETER pfile"
    it shows
    name--- spfile
    type---string
    value---/oracle/qty/102_64/dbs/spfileqty.ora
    when i Excute 'SHOW PARAMETER spfile'  also the same result
    now in here i have doubt please clarify me
    1)  my file is spfile or pfile ?
    2) how can i increase my parameter value (alter system set log_buffer = xxx scope=pfile (or) spfile )
    3) is that my process correct for that error
    please clarify me
    thanks & regards

    Hi,
    As per my knowledge, Oracle 10g by default starts with SPFILE and if you are setting the parameter with alter command then yes the scope should be SPFILE. After that when you schedule any DB related activity(backup, update statistics etc.,) it will create pfile from spfile.
    Before doing any changes take the backup of the existing files both (pfile and spfile) at os level.
    Regards,
    Sharath

  • High redo, log.xml and alert log generation with streams

    Hi,
    We have a setup where streams and messaging gateway is implemented on Oracle 11.1.0.7 to replicated the changes.
    Until recently there was no issue with the setup but for last few days there is an excessive amount of redo and log.xml and alert log generation, which takes up about 50gb for archive log and 20 gb for the rest of the files.
    For now we have disabled the streams.
    Please suggest the possible reasons for this issue.
    Regards,
    Ankit

    Obviously, as no one here has access to the two files with error messages, log.xml and alert log, the resolution starts with looking into those files
    and you should have posted this question only after doing this.
    Now no help is possible.
    Sybrand Bakker
    Senior Oracle DBA

  • Redo log space requests VALUE high

    SELECT name||' = '||value
    FROM v$sysstat
    WHERE name = 'redo log space requests';
    I am noticing 40+ space requests for some of my Oracle 9.2.0.5 databases.
    On another 7.3.4 DB I see this over 140 but this DB shutdown only on weekends so this cumulative value increases I presume.
    I have 20MB of 5 groups already. Do I still add another 2 more groups or increase their sizes ?
    I did read somewhere that I'd have to increase the log_buffer parameter. So how do we deal with this issue ? Any repercussions if I let this as it is for now ?
    The cause of this would be redo logs are not big enough or otherwise ?
    Thanks.

    user4874781 wrote:
    Thanks for your response Charles.
    So if I understand this correctly ... Redolog Space requests corresponds to a either an incorrectly sized redo log file / DBWR / CKPT needs to be tuned.
    Maybe I was interpreting this the wrong way. (Possibly)
    " The statistic 'redo log space requests' reflects the number of times a user process waits for space in the redo log buffer. " If that is the case, if there was longer waits for this event, I was under the assumption that log_buffer needs to be increased.
    http://www.idevelopment.info/data/Oracle/DBA_tips/Tuning/TUNING_6.shtml
    * Yes, the waits have increased to 70 as of now (since 40 yesterday .. DB was started Saturday night and will run till weekend) Less activity as of now, since the day has just started ; so it would definitely rise by end of the day. I took a look at the above article, and I think I understand why the article is slightly confusing. With due respect to the author, the article was last modified 16-Apr-2001, which I believe is before the Oracle documentation was better clarified regarding these statistics. From:
    http://download.oracle.com/docs/cd/B14117_01/server.101/b10755/stats002.htm
    "redo log space requests: Number of times the active log file is full and Oracle must wait for disk space to be allocated for the redo log entries. Such space is created by performing a log switch. Log files that are small in relation to the size of the SGA or the commit rate of the work load can cause problems. When the log switch occurs, Oracle must ensure that all committed dirty buffers are written to disk before switching to a new log file. If you have a large SGA full of dirty buffers and small redo log files, a log switch must wait for DBWR to write dirty buffers to disk before continuing."
    "redo log space wait time: Total elapsed waiting time for "redo log space requests" in 10s of milliseconds"
    It is quite possible that the "redo log space requests" will increase with every redo log file switch, which should not be too much of a concern. You may want to focus a little more on the "redo log space wait time" statistic, which indicates how much wait time was involved waiting. You might also want to focus on the system-wide wait event interface, examining how the accumulated wait time increases from one sampling of each of the statistics to the next.
    * I have 1 log switch every 11 minutes ; BTW ; I have 5 log groups of 20 MB each as of now. So I am assuming 40 MB of 4 or 5 log groups should be fine as per your suggestion ?If you have the disk space, considering that it is an ancient AIX box, you may want to set the redo log files to an even larger size, possibly 100MB (or larger). You may then want to force periodic switches of the redo log, for instance once an hour, or once every 30 minutes.
    * This is an ancient AIX box with 512 MB Ram. Is the redo log located on a fast device ? I'd have to find that out ( any hints on that ? )
    * Decreasing the log_buffer is possible on weekends since I'd have to bounce it for it to take effect.
    I will increase the log files accordingly and hopefully the space waits will reduce. Thanks again.Someone else, possibly Sybrand, on the forums might be familiar with AIX and be able to provide you with an answer. If you are seeing system-wide increasing wait time for redo related waits, then that might be an indication that the redo logs are not located on a fast device.
    Charles Hooper
    IT Manager/Oracle DBA
    K&M Machine-Fabricating, Inc.

  • Redo log space requests and Enqueue Waits

    Hi all,
    I am seeing an increase on the Enqueue Waits and Redo Log Space Request from 58, 274 to 192, 1245 in two weeks time respectively.
    The DB is a production database and runs on an HP cluster with 4X1G ram and 550mghz cpu.
    There are four Redo Log files with 200M (2 members each)which I have increased to 400M over this past weekend.
    I have included below the memory structure details:
    Redo Log Summary
    Total System Global Area 1646094824 bytes
    Fixed Size 104936 bytes
    Variable Size 408989696 bytes
    Database Buffers 1228800000 bytes
    Redo Buffers 8200192 bytes
    My question is that, who do I stop it from growing further and passing the 1:5000 ratio ?
    At the moment the ratio is in the range of 1:186194.
    Your input is much appreciated.
    Cheers,
    Seyoum.

    Here is some information from Oracle's Peformance Tuning Guide.
    The V$SYSSTAT statistic redo log space requests indicates how many times a server process had to wait for space in the online redo log, not for space in the redo log buffer. A significant value for this statistic and the wait events should be used as an indication that checkpoints, DBWR, or archiver activity should be tuned, not LGWR. Increasing the size of log buffer does not help.

Maybe you are looking for