Every once in a while, it's worth noting an exceptional product or publication, and the purpose of this article is to do just that by highlighting Sam Alapati's Expert Oracle Database 10g Administration (Apress). The amount of material covered in the book is extensive and its database version emphasis is entirely on Oracle 10g. In addition to standard database administration topics, supplemental chapters cover generic or independent of database version topics such as PL/SQL, modeling, and UNIX. As a disclaimer, I have no affiliation with the author or publisher.
As to whom the book's audience is intended to be, the author states up front in the introduction that the book is "primarily intended for beginning- and intermediate-level Oracle Database 10g DBAs." Expert-level does not appear in this description, so a fair question to ask is why the title of the book includes the word expert. It's no secret publishers publish books to make money, and along with that effort comes some marketing or advertising spin. Much as many of the "complete reference" books are in fact not complete, they can still be quite valuable as reference books. In that light, not everything in the book is written for experts, but experts can still benefit from the material it presents.
Structure of the Book
The book is divided into eight parts:
1. Background, Data Modeling, and UNIX/Linux
2. Oracle Database 10g Architecture, Schema, and Transaction Management
3. Installing Oracle Database 10g, and Creating and Updating Databases
4. Connectivity and User Management
5. Data Loading, Backup, and Recovery
6. Managing the Operational Oracle Database
7. Performance Tuning
8. The Data Dictionary, Dynamic Views, and the Oracle-Supplied Packages
Highlights of some specific parts and chapters
Part One provides a good introduction to beginning DBAs of what Oracle is about. Types of databases and types of DBAs are covered as well as some sage advice (end of Chapter One). Primum Non Nocere ("first, do no harm") is applicable in recovery situations. The extremely important guideline of never putting yourself into a situation worse than you already are is what this admonition is about. This is a valuable point to be learned early on as a DBA and if "first, do no harm" drives that home for you, you will be well ahead in the game. Chapters 2 and 3 provide quick primers in data modeling and UNIX. Database modeling skills apply to all databases, not just to Oracle, and the same holds true with being fairly adept in UNIX and system administration. For the novice or beginning DBA, these are areas you will want (and need) to read about elsewhere in more detail.
Chapter 16, Database Recovery, contains step-by-step examples of recovery situations using both user and server managed recovery commands or options (i.e., command line syntax and RMAN commands). The chapter also includes sections on LogMiner and flashback techniques and recovery. One of the strengths of the book is the straightforward manner in which the author explains how a feature works, and an example of that is his explanation of how flashback drop works (including an example). Even better are explanations of various scenarios revolving around dropped tables.
Chapter 17, Automatic Management and Online Capabilities, starts with background on the Automatic Database Diagnostic Monitor (ADDM). One of Oracle 10g's characteristics is its inclusion of several monitors and advisors, features that were virtually nonexistent in older versions. How do you set or enable ADDM and how do you run it? Both questions are answered in this chapter. The chapter also includes a section on how to read an ADDM report. The sample report is more comprehensive than what is found in Chapter 6, "Automatic Performance Diagnostics" of the Oracle Performance Tuning Guide.
What if you want to manually run an ADDM report? Instructions on how to use the DBMS_ADVISOR package are included, and you can see the results for your own system by copying the example on page 769-770 (connected as SYS).
SQL> exec dbms_workload_repository.create_snapshot(); PL/SQL procedure successfully completed. SQL> set long 1000000 SQL> select dbms_advisor.get_task_report( 2 task_name, 'TEXT', 'ALL') 3 from dba_advisor_tasks 4 where task_id = ( 5 select max(t.task_id) 6 from dba_advisor_tasks t, dba_advisor_log l 7 where t.task_id = l.task_id 8 and t.advisor_name = 'ADDM' 9 and l.status = 'COMPLETED'); DBMS_ADVISOR.GET_TASK_REPORT(TASK_NAME,'TEXT','ALL') -------------------------------------------------------------------------------- DETAILED ADDM REPORT FOR TASK 'ADDM:1105699625_1_896' WITH ID 5056 ------------------------------------------------------------------ Analysis Period: 23-SEP-2006 from 17:07:37 to 17:16:03 Database ID/Instance: 1105699625/1 Database/Instance Names: ORCL/orcl Host Name: T42 Database Version: 10.2.0.1.0 Snapshot Range: from 895 to 896 Database Time: 44 seconds Average Database Load: .1 active sessions
Chapter 17 leads into the topics of Chapter 18, "Managing and Monitoring the Operational Database," and this is what the heart of Oracle 10g is about: automated management and monitoring. As examples, the Oracle Diagnostic Pack and the Oracle Tuning Pack (at the time of writing) cost an additional $3,000 (Online Store at www.oracle.com).
The two chapters in Part 7, Performance Tuning, provide a decent introduction into this area without going into too much detail. An "expert" in performance tuning can skip the chapters in this part of the book, but overall, Alapati's coverage of performance tuning is very competitive (in terms of scope and readability) with full-length books dedicated to this topic.
Material towards the end of the book - covering the data dictionary, built-in packages, and the SQL primer appendix - can be viewed in one of two ways: nice to have in a single reference or really not necessary since the information is readily available elsewhere for free. Including the material isn't much different than what Oracle Press does in many of its books, that is, publishes a reference book which basically states the same thing in Oracle's own documentation. As a standalone reference covering many topics, I would prefer to have the material included and seeing a topic explained in a different way by someone else can be useful when learning the complexities of Oracle.
Coming back to the use of the word expert in the title, and considering only the general user community, what experts in Oracle 10g existed before Oracle 10g was released? With AWR, ADDM, ASM, and a myriad of other acronyms which came out with Oracle 10g, there were no experts, and within this context, where would a so-called expert, short of writing his or her own book, go to find information outside of the official documentation?
With Oracle8i, there was a relative explosion of DBA how-to/Bible/complete reference books, and not so much when 9i was released. Oracle 10g has enough new features that the publishing explosion seems to have taken place again. Expert Oracle Database 10g Administration, in my opinion, is one of those books that stands out from the crowd because of its overall excellence and comprehensive coverage, and is worth having as a desktop reference for experts and non-experts alike.