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.
- Chapter 1 – Introduction
- Chapter 2 – Redo and Undo
- Chapter 3 – Transactions and Consistency
- Chapter 4 – Locks and Latches
- Chapter 5 – Caches and Copies
- Chapter 6 – Writing and Recovery
- Chapter 7 – Parsing and Optimising
- Chapter 8 – RAC and Ruin
- Appendix – Dumping and Debugging
- Glossary
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)
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 |
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 |
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 |
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 |
Hi Jonathan,
in the introduction part “Where Next” you wrote:
Thanks for the book!
Goran
Comment by goranbg — November 29, 2011 @ 9:03 am GMT Nov 29,2011 |
Yesterday I bought an electronic version of this book from Apress.com.Cool!
Comment by ochef — December 2, 2011 @ 1:45 am GMT Dec 2,2011 |
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 |
[…] 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 |
[…] https://jonathanlewis.wordpress.com/oracle-core/ […]
Pingback by Oracle Core: Essential Internals for DBAs and Developers book by Jonathan Lewis | Tanel Poder's blog: IT & Mobile for Geeks and Pros — December 22, 2011 @ 11:48 pm GMT Dec 22,2011 |
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!
Regards
Aman….
Comment by Aman.... — December 27, 2011 @ 4:36 am GMT Dec 27,2011 |
Jonathan, it appears that the Oracle Core book’s Kindle edition has disappeared from Amazon.com and amazon.co.uk. 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 |
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 |
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 |
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
[…] Oracle Core […]
Pingback by Viewing Figures « Oracle Scratchpad — February 3, 2012 @ 9:32 am GMT Feb 3,2012 |
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 |
Take a look at patents http://www.google.com/patents/US5974425 and http://www.google.com/patents/US7039773.
Comment by Timur Akhmadeev — March 10, 2012 @ 5:44 pm GMT Mar 10,2012 |
Tony,
Chapter 6 was the appropriate place, so I’ve copied the question to that page.
Comment by Jonathan Lewis — March 12, 2012 @ 8:40 am GMT Mar 12,2012 |
[…] 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 |
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.
Regards
Jean-michel, Nemours, FRANCE
Comment by JEAN-MICHEL — May 10, 2012 @ 2:10 pm BST May 10,2012 |
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 |
[…] 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 |
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 |
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 |
Are there any plans selling the book as a kindle fornat ?
Comment by sagizvi — September 18, 2012 @ 6:52 am BST Sep 18,2012 |
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 |
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.
Thanks!
Comment by kisuke1 — November 29, 2012 @ 9:19 pm GMT Nov 29,2012 |
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 |
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 |
[…] 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 |
[…] 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 |
[…] 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 |
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 |
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 |
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 |
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?
Thanks.
Comment by Andy — August 25, 2016 @ 3:04 pm BST Aug 25,2016 |
Andy,
I don’t think so – it’s more likey to be just a cover change.
Comment by Jonathan Lewis — August 28, 2016 @ 9:38 am BST Aug 28,2016 |
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 |