Oracle Scratchpad

Oracle Core

Addenda and Errata for Oracle Core (ISBN-13 978-1430239543)

Each chapter will have a page of its own, listing errors I find and any extra comments I might make.

Feel free to ask questions about any comments I have made in the chapter – but remember that it may be a little while before I can find time to answer.

Update 23rd December 2011

The sourcecode library is now available at the APress site (scroll down to the tabs just below “Related Titles”). The copy I uploaded to the blog is still available, though; I had to give it a “.doc” suffix, so if you want to download it from the blog, right-click on this link then rename it to a zip file.

General sources for the book:

Apress (eBook in several formats)
Amazon UK ***
Amazon US
Amazon France
Amazon Germany
Amazon Canada
Barnes and Noble (US)
FlipKart (India)



  1. Chapter 8 sounds ominous. Especially since we are migrating to RAC for some databases. Is Chapter 8 about what not to do in Rac ?

    Comment by Krish — September 14, 2011 @ 7:44 pm BST Sep 14,2011 | Reply

    • Krish,

      It is possible to ruin an application by running it on RAC – but it has to be a pretty bad application already. The choice of title is more for alliterative effect rather than dire warning.

      Comment by Jonathan Lewis — September 16, 2011 @ 10:43 am BST Sep 16,2011 | Reply

  2. Hi Jonathan,

    Regarding the Chapter Chapter 4 – Does the mutexs are covered under this chapter – a little part of it, we might dealt with wait events during day to day basis.

    chapter 2 – undo and redo – Does in-memory undo aspects are covered under this topic – any chance of concept including – some kind of demo/examples to exactly differentaite at what circumstances does oracle choose for in-memory undo.

    I’m inspired by the book tag, as at early stages of my college life and while learning oracle – I thought we should have some book which taught us the core part of Oracle and finally today, I’m seeing that..

    Great.. Jonathan…!!

    Comment by Pavan Kumar N — October 3, 2011 @ 5:55 pm BST Oct 3,2011 | Reply

    • Pavan Kumar,

      Chapter 4 has a few comments about mutexes, and chapter 7 has a few more comments. In many ways there’s nothing terribly exciting about them – although it’s nice to see where, why and how they’re used.

      Chapter 2 starts with the traditional 9i mechanisms (because that’s what happens anyway if you’re on RAC, or too many transactions run simultaneously, or when a transaction becomes “too big”), and then explains the changes that appear in 10g.

      Thanks for your enthusiasm. I hope the book lives up to expectations.

      Comment by Jonathan Lewis — October 4, 2011 @ 3:26 pm BST Oct 4,2011 | Reply

  3. Hi Jonathan,

    in the introduction part “Where Next” you wrote:

    But paper is nice (even if it’s electronic paper)—and I believe the imposition of the book format ntroduces a difference between the content of a collection of internet articles (even very good ones) and the content a book. Again it comes back to narrative; there is a continuity of thought that you can get from a book form that doesn’t work from collating short articles.

    Thanks for the book!


    Comment by goranbg — November 29, 2011 @ 9:03 am GMT Nov 29,2011 | Reply

  4. Yesterday I bought an electronic version of this book from!

    Comment by ochef — December 2, 2011 @ 1:45 am GMT Dec 2,2011 | Reply

  5. I see Timur Akhmadeev, like Martin Widlake, has done a little write-up, and review, of his work as one of my “author’s reviewers”. I have described their work in the preface to the book, but it’s nice to see what they had to say about the experience.

    Comment by Jonathan Lewis — December 8, 2011 @ 6:59 pm GMT Dec 8,2011 | Reply

  6. […] uploaded the source code library to my blog as a zip file. Instructions for download are on my index page for the book. Share this:TwitterLike this:LikeBe the first to like this post. Comments […]

    Pingback by Oracle Core « Oracle Scratchpad — December 9, 2011 @ 8:33 am GMT Dec 9,2011 | Reply

  7. I am traveling at the moment sir but I have got the news that my copy has arrived :-) . This is going to be one book which I would be finishing reading cover to cover, leaving all else aside. At the moment, just want to say thank you so very much for bringing this book out!


    Comment by Aman.... — December 27, 2011 @ 4:36 am GMT Dec 27,2011 | Reply

  8. Jonathan, it appears that the Oracle Core book’s Kindle edition has disappeared from and As I am at work I am unable to directly chat with the Amazon folks and find out what is going on.

    Comment by dallasdeeds — January 19, 2012 @ 10:09 pm GMT Jan 19,2012 | Reply

    • Dallas,

      Thanks for the note.

      I have no idea why it’s gone. Perhaps Amazon thought they weren’t selling enough paper copies, perhaps Apress thought that Amazon was selling the eBook too cheaply. I an not privy to the information about how the book is marketed and sold.

      Comment by Jonathan Lewis — January 26, 2012 @ 9:19 pm GMT Jan 26,2012 | Reply

      • I went ahead and chatted with Amazon today when I got home. They said that the publisher has pulled the Kindle edition (they didn’t say why). They said they will try to convince the publisher to make it available again. My guess is that the price was way lower than Apress’ eBooks – I think the Kindle edition was right at $20 US. I will have to ask Apress if the MOBI version they have is workable on Kindle…. PDF files are just miserable to read – the print is way to small on Kindle, even after hacking out the extra white space and margins. I’m not sure how I’m going to have you sign it on Kindle, though.

        Comment by dallasdeeds — January 27, 2012 @ 10:09 pm GMT Jan 27,2012 | Reply

        • Dallas,

          Thanks for that information. I shall have to drop an email to the people at APress and see what they say about the situation.
          It sounds like a repeat of the issue with one of the other publishers a few months ago (possibly McGraw-Hill).

          Comment by Jonathan Lewis — January 28, 2012 @ 10:56 am GMT Jan 28,2012

        • Hi Dallas,
          The MOBI version from Apress works fine on my Kindle. (URLs, diagrams, etc).

          Comment by Ari — January 28, 2012 @ 10:29 pm GMT Jan 28,2012

  9. […] Oracle Core […]

    Pingback by Viewing Figures « Oracle Scratchpad — February 3, 2012 @ 9:32 am GMT Feb 3,2012 | Reply

  10. Jonathan,

    I am not sure if this question belongs here or in chapter 6 but here goes.

    I am thoroughly confused by the concept of multiple public redo strands. Suppose three dependent transactions occur in the order T1 , T2, T3. Suppose the redo data for T1 and T3 are placed in one public redo strand and the redo data for transaction T2 gets placed in another. It seems that the redo log will eventaully contain the data in the order T1, T3, T2 or T2, T1, T3 depending on which strand’s buffer is written out by LGWR first. This would seem to suggest that any recovery process would need to have some mechanism for looking ahead and reordering redo before applying it but I have never heard of such a thing. I am similarly confused about how dependent transactions in RAC are recovered.

    Can you help me out?

    Comment by tonyhasler — March 8, 2012 @ 1:03 pm GMT Mar 8,2012 | Reply

  11. […] extraordinary presentations and discuss advanced Oracle topics. Inspired by Jonathan Lewis new book Oracle Core: Essential Internals for DBAs and Developers book I was happy to attend his Training […]

    Pingback by Hotsos Symposium 2012 « Latch, mutex and beyond — March 20, 2012 @ 6:30 pm GMT Mar 20,2012 | Reply

  12. Jonathan,
    Greetings from France.
    I am reading the Oracle Core book I purchased a few days ago ( with the 50% discount, thanks ! ).
    I have been working as a oracle dba for 7 years in production.
    I am trying to read carefully your book and I need to ask you something before going further.
    1) On page 42 ( point 3 ), you explain how Oracle reverses changes from any uncommitted transaction.
    I was wondering if this reversing is systematic or is it because there is a session which issued a “set transaction read only” command ?
    In case someone commits immediately after the reversing, is Oracle obligated to “re reverse” the changes ?
    2) What do you mean by the target SCN on the same page ( point 4 ) ? Where is it kept at that particular time ?
    Thank you very much
    I appreciate reading such an accurate book on the inner mechanisms of Oracle.
    It gives me another approach of the database and will surely help me understand better other parts of the software.

    Jean-michel, Nemours, FRANCE

    Comment by JEAN-MICHEL — May 10, 2012 @ 2:10 pm BST May 10,2012 | Reply

    • Jean-Michel,

      Thank you for buying the book, and for your comments. I have to say, though, that, like Tony Hasler in the previous comment, you have posted this question on the wrong page. Page 42 is in Chapter 3, and there is a page for chapter 3.

      I have copied this question to the appropriate page, and will be answering it shortly.

      Comment by Jonathan Lewis — May 24, 2012 @ 10:39 am BST May 24,2012 | Reply

  13. […] do many other things only very clever people understand (but you can be one of them by reading this excellent book) – all of which adds to response time. But the fundamental point remains, if flash allows for […]

    Pingback by Database Consolidation Part 4 – Flash Memory Makes The Difference « flashdba — July 20, 2012 @ 12:47 pm BST Jul 20,2012 | Reply

  14. Hi,

    I have a query, I did not know where to ask to posting here (hoping you will asnwere to my question). I have been asking this question to many people but no luck.

    “I would like to know why is it require to put a database in mount stage in order to configure
    archivelog mode?
    (Internal thoughts would be appriciated)”

    Comment by Chakra — July 27, 2012 @ 4:42 pm BST Jul 27,2012 | Reply

    • Chakra,

      I have no idea – I didn’t write the specification or the code – however I will offer a guess.

      Since a database can be addressed by many instances (viz: when running RAC) it may be possible to find a condition where you could lose some critical information from one instance if you had two instances running and one of them tried to switch the database archivelog mode. The easiest way to avoid any possible race condition would be to ensure that there are no instances active when you make the change.

      Comment by Jonathan Lewis — August 7, 2012 @ 6:15 pm BST Aug 7,2012 | Reply

  15. Are there any plans selling the book as a kindle fornat ?

    Comment by sagizvi — September 18, 2012 @ 6:52 am BST Sep 18,2012 | Reply

    • Sagizvi,

      On the Apress link above there’s a reference to the MOBI format and, according to a comment further up the page, this works okay on Kindle.
      If there’s no specific Kindle version yet then I don’t think there every will be (although I don’t have anything to do with Apress’ marketing decisions.)

      Comment by Jonathan Lewis — September 18, 2012 @ 11:49 am BST Sep 18,2012 | Reply

  16. Hi Jonathan,
    Wonderful book! But I have to ask, could you recommend a ‘primer’ book before reading yours? I want to get the most out of reading this and I feel I am not at this level yet.

    Comment by kisuke1 — November 29, 2012 @ 9:19 pm GMT Nov 29,2012 | Reply

  17. In my opinion this is the best book ever written on the subject of Oracle Internals, possibly the best Oracle book full stop. I have no idea how someone with no access to the Oracle source code could come to understand the inner workings so well, but I’m extremely grateful to you for imparting your knowledge to us. I particularly like the chapter on the buffer cache – I read this every so often to try and make my brain see the light. Some days I feel dangerously close to illumination… then Oracle does something unexpected and I realise it’s time for me to get it back off the shelf for another read. Thank you Jonathan…keep up the good work.

    Comment by flashdba — February 21, 2013 @ 12:35 pm GMT Feb 21,2013 | Reply

  18. Hi Jonathan,

    Amazing book on Oracle internals.

    It all started couple of months back when I tried interpreting AWR reports to resolve performance issues, that time I felt that one should be really good on Oracle internals to troubleshoot up to the root-cause.

    And then I found this book written by you, currently reading Ch-3 and I am quite confident that few end-to-end readings (very hard to comprehend in one go for me) will make me good enough in Oracle database to understand and troubleshoot most of the performance issues.

    Thanks again for this wonderful gift to Oracle database community.

    Comment by ankitrathi — April 16, 2013 @ 11:21 am BST Apr 16,2013 | Reply

  19. […] sacrificing the D (durability) of ACID compliance. This is best explained by Jonathan Lewis in Chapter 6 of his excellent book Oracle Core – if you haven’t read it, consider putting it at the […]

    Pingback by SLOB: PL/SQL Commit Optimization | flashdba — May 20, 2013 @ 5:10 pm BST May 20,2013 | Reply

  20. […] 1: Delphix have got 10 copies of Oracle Core to give away and they’ve decide to give one to every 10th registrant (until stocks run out) […]

    Pingback by Delphix | Oracle Scratchpad — June 7, 2013 @ 6:33 am BST Jun 7,2013 | Reply

  21. […] Are these included? [Discussions with Jonathan Lewis suggest they are – and let's face it, he wrote the book on the subject!] Yet another possibility would be the Recovery Writer (RVWR) process which is […]

    Pingback by Oracle AWR Reports: Understanding I/O Statistics | flashdba — February 26, 2014 @ 8:00 pm GMT Feb 26,2014 | Reply

  22. Hello Sir, i was reading chapter i have one question. does each working data set has its own LRU list?

    Comment by Hansie — March 2, 2014 @ 3:46 am GMT Mar 2,2014 | Reply

    • Hansie,

      That’s a question that belongs with chapter 5. The answer is yes.

      Comment by Jonathan Lewis — March 2, 2014 @ 9:30 am GMT Mar 2,2014 | Reply

      • Thank you sir, i meant to say “i was reading chapter 5”. Excellent book for understanding oracle core. Very systematic and nicely explained everything. Thank you.

        Comment by Hansie — March 2, 2014 @ 3:02 pm GMT Mar 2,2014 | Reply

  23. Hi Jonathan,
    I can see that the current e-book in Apress has a different cover page. Does this (newer) e-book contain all the corrections listed here?

    Comment by Andy — August 25, 2016 @ 3:04 pm BST Aug 25,2016 | Reply

  24. maybe this is the book that i might need to understand how oracle works internally. it was published in 2011 does this covers the 12c version also? or do you have a similar books that is covers that latest version of oracle? thanks.

    Comment by Warren — March 14, 2019 @ 3:14 pm GMT Mar 14,2019 | Reply

RSS feed for comments on this post. TrackBack URI

Comments and related questions are welcome.

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Website Powered by

%d bloggers like this: