How To Size the Database Smart Flash Cache (Doc ID 1317950.1)
APPLIES TO:
Oracle Server - Personal Edition - Version 10.2.0.1 to 11.2.0.3 [Release 10.2 to 11.2]Oracle Server - Standard Edition - Version 10.2.0.1 to 11.2.0.3 [Release 10.2 to 11.2]
Oracle Server - Enterprise Edition - Version 10.2.0.1 to 11.2.0.3 [Release 10.2 to 11.2]
Information in this document applies to any platform.
GOAL
To answer the question "How can I minimize waits for 'log file sync' ?"
FIX
Log file sync waits occur when sessions wait for redo data to be written to disk. Typically this is caused by slow writes or committing too frequently in the application. Checking the "user commits" section in the AWR report can reveal if the issue is related to frequent committing.
For more information on troubleshooting 'log file sync' waits see:
Document 1376916.1 Troubleshooting: "Log File Sync" Waits
Information to help diagnose log file sync can be obtained using the script. found in Document 1064487.1
Document 1376916.1 Troubleshooting: "Log File Sync" Waits
Information to help diagnose log file sync can be obtained using the script. found in Document 1064487.1
The tips below will help you to reduce log file sync when writes are slow:
- Tune LGWR to get good throughput to disk . eg: Do not put redo logs on RAID 5.
- Do not put redo logs on Solid State Disk (SSD)
Although generally, Solid State Disks write performance is good on average, they may endure write peaks which will highly increase waits on 'log file sync' - If there are lots of short duration transactions, see if it is possible to BATCH transactions together so there are fewer distinct COMMIT operations. Each commit must confirmed that the relevant REDO is on disk before it can complete. Although commits can be "piggybacked" by Oracle, reducing the overall number of commits by batching transactions can have a very beneficial effect.
- On 10g , See if any of the processing can use the COMMIT NOWAIT option . Note: From 11g The COMMIT_WRITE parameter is deprecated. It is retained for backward compatibility only. It is replaced by the COMMIT_LOGGING and COMMIT_WAIT parameters.
See:
Oracle® Database Reference
11g Release 2 (11.2)
Part Number E17110-08
COMMIT_LOGGING
COMMIT_WAIT
COMMIT_WRITE
for more details
In Oracle 10g Release 2 the COMMIT command has been enhanced with the WRITE clause to give a degree of control over the way redo information is written to the redo logs during the commit operation. This can improve performance, but it should only be used for processes that meet the following criteria:- They result in large numbers of transactions that require redo log writes.
- Data loss can be tolerated in the event of an instance crash during the process.
- Waiting for redo log writes is a significant part of the waits associated with the process. The available options for the COMMIT command and the WRITE clause are displayed below.
COMMIT;
COMMIT WRITE WAIT; --> The commit command is synchronous. It doesn't return until the relevant redo information is written to the online redo log.
COMMIT WRITE NOWAIT; --> The commit command is asynchronous. It can return before the relevant redo information is written to the online redo log.
COMMIT WRITE BATCH; --> The commit command is synchronous. It doesn't return until the relevant redo information is written to the online redo log.
COMMIT WRITE IMMEDIATE; --> The commit "prods" the LGWR process by sending a message, so that the redo is written immediately to the redo logs.
To avoid make modifications to your code, you can you can use the COMMIT_WRITE parameter. You can set it on session level or on system level.SQL> ALTER [SYSTEM | SESSION] SET COMMIT_WRITE='IMMEDIATE,NOWAIT';
You can use trigger to set the parameter for the user that run the application:SQL> CREATE OR REPLACE TRIGGER sys.global_commit_session_settings AFTER LOGON ON.SCHEMA
BEGIN
execute immediate 'alter session set COMMIT_WRITE =''IMMEDIATE,NOWAIT''';
END;
/
Please keep in mind that using this option, and in case of database crash, the data that is not written to the redolog file will be lost even though they are committed. This is part of the requirements for commit nowait is that "Data loss can be tolerated in the event of an instance crash during the process" - See if any activity can safely be done with NOLOGGING / UNRECOVERABLE options.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-767175/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- How to Duplicate a Database in NOARCHIVELOG mode (Doc ID 275480.1)DatabaseHive
- Size of the Database Buffer Cache (82)Database
- How To List All The Named Events Set For A Database (Doc ID 436036.1)Database
- How to Collect Diagnostics for Database Hanging Issues (Doc ID 452358.1)Database
- prepare statement cache size influence databaseDatabase
- How To Identify a Hot Block Within The Database Buffer Cache. [ID 163424.1]IDEBloCDatabase
- 【健康檢查】How to Perform a Health Check on the Database (Doc ID 122669.1)ORMDatabase
- Oracle11gR2 Smart Flash Cache測試說明Oracle
- How to Prepare Storage for ASM (Doc ID 452924.1)ASM
- Size DatabaseDatabase
- database size increaseDatabase
- * Master Note: Database Performance Overview (Doc ID 402983.1)ASTDatabaseORMView
- Troubleshooting Database Hang Issues (Doc ID 1378583.1)Database
- How to free space from an ASM diskgroup? (Doc ID 1553744.1)ASM
- How to Quiesce a DatabaseUIDatabase
- Oracle10G RMAN Database Duplication (Doc ID 259694.1)OracleDatabase
- DB_BLOCK_SIZE and DB_CACHE_SIZE in OracleBloCOracle
- How to Start 11gR2 Grid Infrastrucure in Exclusive Mode (Doc ID 1364971.1)AST
- How to Resolve Invalid Objects in a Database [ID 158185.1]ObjectDatabase
- 【SQLSERVER】How to check current pool sizeSQLServer
- How to Choose Size of Datafile on Raw Devicedev
- How to Monitor and tune Open and Cached Cursors (Doc ID 1430255.1)
- Performing duplicate database with ASM/OMF/RMAN (Doc ID 340848.1)ORMDatabaseASM
- Information On Installed Database Components and Schemas (Doc ID 472937.1)ORMDatabase
- Can Tapes Be Used For RMAN Convert Database (Doc ID 563816.1)Database
- Recover database after disk loss (Doc ID 230829.1)Database
- RMAN10g: backup copy of database (Doc ID 266980.1)Database
- How to Perform a Healthcheck on the DatabaseORMDatabase
- How to enable the flashback database:Database
- How a Database Is Mounted (293)Database
- [doc]How To Efficiently Drop A Table With Many Extents
- How To List All The Named Events Set For A Database [ID 436036.1]Database
- 【CURSOR】How to Monitor and tune Open and Cached Cursors (Doc ID 1430255.1)
- 【tomcat8】consider increasing the maximum size of the cacheTomcatIDE
- 提問的智慧How To Ask Questions The Smart Way
- Master Note of Linux OS Requirements for Database Server (Doc ID 851598.1)ASTLinuxUIREMDatabaseServer
- JavaVM Component Database PSU and RU Patches(Doc ID 1929745.1)JavaDatabase
- [轉帖]Release Schedule of Current Database Releases (Doc ID 742060.1)Database