Oracle database wait event ‘db file async I/O submit’ timing bug

This blogpost is a look into a bug in the wait interface that has been reported by me to Oracle a few times. I verified all versions from Oracle 11.2 version up to on Linux x86_64, in all these versions this bug is present. The bug is that the wait event ‘db file async I/O submit’ does not time anything when using ASM, only when using a filesystem, where (more...)

A re-introduction to the vagrant-builder suite for database installation

In a blogpost introducing the vagrant builder suite I explained what the suite could do, and the principal use, to automate the installation of the Oracle database software and the creation of a database on a virtual machine using vagrant together with ansible and virtual box.

This blogpost shows how to use that suite for automating the installation of the Oracle database software and the creation of a database on a linux server directly, with (more...)

Hybrid Columnar Compression in 12.2 – nice new feature

Oracle 12.2 introduced an interesting optimisation for Hybrid Columnar Compression (HCC). Until 12.2 you had to use direct path inserts into HCC compressed segments for data to be actually compressed. If you didn’t use a direct path insert you would still succeed in entering data into the segment, however your newly inserted data was not HCC compressed. There is no error message or other warning telling you about that, which can lead to (more...)

exachk 18.2.0_20180518 released

Oracle released the new Version of exachk. The version is shown as 18.2.0_2018052018 so far so good. The next sentence in the Note is: „What’s new in exachk may be found in the „What’s New in″ section of the User’s Guide available here..“

The new Release model from Oracle is really confusing. From my point of view it makes no sense that you download (more...)

A look into oracle redo, part 11: log writer worker processes

Starting from Oracle 12, in a default configured database, there are more log writer processes than the well known ‘LGWR’ process itself, which are the ‘LGnn’ processes:

$ ps -ef | grep test | grep lg
oracle   18048     1  0 12:50 ?        00:00:13 ora_lgwr_test
oracle   18052     1  0 12:50 ?        00:00:06 ora_lg00_test
oracle   18056     1  0 12:50 ?        00:00:00 ora_lg01_test

These are the log writer worker processes, for which the minimal amount is equal to the amount public (more...)

A look into oracle redo: index and overview

I gotten some requests to provide an overview of the redo series of blogposts I am currently running. Here it is:

A look into oracle redo, part 10: commit_wait and commit_logging

The redo series would not be complete without writing about changing the behaviour of commit. There are two ways to change commit behaviour:

1. Changing waiting for the logwriter to get notified that the generated redo is persisted. The default is ‘wait’. This can be set to ‘nowait’.
2. Changing the way the logwriter handles generated redo. The default is ‘immediate’. This can be set to ‘batch’.

There are actually three ways these changes can (more...)

UKOUG Technology Day


We have organized a UKOUG Technology Summit in Leeds on 16th May.

It’s really a small Conference!

This is available to UKOUG Members and will cost 1 SIG Pass – even Bronze memberships come with 1 SIG pass, so all members could attend at no cost.
Non-members can pay to attend, but you should take out a Bronze Membership instead as it’s about the same price!

Come along, network with your peers, and listen to (more...)

A look into oracle redo, part 9a: commit – concurrency considerations

During the investigations of my previous blogpost about what happens during a commit and when the data becomes available, I used breaks in gdb (GNU debugger) at various places of the execution of an insert and a commit to see what is visible for other sessions during the various stages of execution of the commit.

However, I did find something else, which is very logical, but is easily overlooked: at certain moments access to (more...)

A look into oracle redo, part 9: commit

The previous blogpost talked about a simple insert, this blogpost investigates what happens when the DML is committed. Of course this is done with regular commit settings, which means means they are not touched, which means commit_logging is set to immediate and commit_wait is set to wait as far as I know. The documentation says there is no default value, and the settings are empty in all parameter views. In my humble opinion, if you (more...)

A look into oracle redo, part 8: generate redo

This blogpost looks at the very start of oracle redo: the generation of it. In order to do that, I start off with a very simple table, and look at the redo generation part. I guess the regular readers of this blogpost series understand that redo generation is closely connected with making changes made to blocks. This post therefore is not only about redo generation, but also about how the technical implementation of block changes.


Stop password for user accounts expiring on Exadata

Depending on how the Oracle Exadata Machine was setup, the password for user accounts can expire thus requiring the password to be changed.

This has the knock on effect of the crontab not accessible and more importantly jobs do not run:

[oracle@v1ex1dbadm01 ~]$ crontab -l

Authentication token is no longer valid; new one required
You (oracle) are not allowed to access to (crontab) because of pam configuration.
[oracle@v1ex1dbadm01 ~]$

You can (more...)

Exadata troubleshooting easy with

If you have for example a performance problem or a crash on your Exadata Machine and you need an overview about the machine then use the very powerful tool „“ which based on the data of Exawatcher. give you a details about:

  • CPU utilization and details
  • IO Summary
  • and more will generate very good graphics and that is what I will show now.

How is the way to get these graphs?


A look into Oracle redo, part 5: the log writer writing

| Feb 27, 2018

This the the fifth blog in a series of blogposts about Oracle database redo. The previous blog looked into the ‘null write’ (kcrfw_do_null_write actually) function inside kcrfw_redo_write_driver, which does housekeeping like updating SCNs and posting processes if needed, this blog looks into what happens when the log writer is actually posted by a process or if public redo strand buffers have been written into. In part 3 of this blog series (the log writer working (more…)

Oracle Exadata Smart Flash Logging

What is Exadata Smart Flash Logging?

In an OLTP environment, it is crucial to have fast response times to redo log writes i.e. low latency.  When multiplexing redo logs for high availability i.e. to protect against hardware failure, redo log writes are only acknowledge when redo is written to all redo log members i.e when the slowest disk completes the write.  By this nature, whenever a disk slows down even (more...)

How to Enable Exadata Write-Back Flash Cache

Please check the following blog post “How to check if Exadata Write-Back Flash Cache is Enabled” for:

  • What is Exadata Write-Back Flash Cache?
  • What are the Performance Benefit of Exadata Write-Back Flash Cache?
  • How to check if Exadata Write-Back Flash Cache is Enabled?
  • Pre-requisites and minimum versions.

You can also get more info from My Oracle Support (MOS) note:
Exadata Write-Back Flash Cache – FAQ (Doc ID 1500257.1)
OTN Article: Oracle Exadata Database (more...)

How to check if Exadata Write-Back Flash Cache is Enabled

What is Exadata Write-Back Flash Cache?

Exadata Write-Back Flash Cache provide the ability to cache not only read I/Os but write I/O to the Exadata’s PCI flash on the storage cells.  Exadata storage software or higher and Grid Infrastructure and Database software or higher is required to use Exadata Write-Back Flash Cache, which is persistent across storage cell restarts.

The default since April 2017 for (more...)

How to run on Exadata

Very often when creating a Support Request (SR) for an issue on an Oracle Exadata Database Machine, you’ll need to run the script ““.  Which is the “Oracle Exadata Database Machine – Diagnostics Collection Tool“.

More information can be found on My Oracle Support (MOS) Note:
SRDC – EEST Sundiag (Doc ID 1683842.1)

To run ““, is very simple as shown below:

[root@v1ex1dbadm01 ~]#  (more...)

Secure Erase of an Exadata System

What has to be done when the Lifecycle of an Exadata System comes to the end.

You need to do an secure erase of DB and Storage nodes.

By the way you can also secure erase the Switches and PDU, etc. but this is not described in this article.


and  My Oracle Support Doc ID 2180963.1

Steps to do

I use the method via bootable USB Stick

Download Boot (more...)

Oracle Essential Support Tools im Exadata Umfeld

Mein DOAG Vortrag zum Thema

„Oracle Support wie gehe ich vor und welche Tools setze ich im Exadata Umfeld ein“



In der Zwischenzeit hat Oracle eine neue Version den Trace File Analyzer bereitgestellt die man dann auch einsetzen sollte. Einfach über die Doc-ID suchen.

TFA Collector – TFA with Database Support Tools Bundle (Doc ID 1513912.1)

Noch eine Anmerkung für alle die gerade PSU’s etc. eingespielt haben. Leider stellt Oracle Support (more...)