Every few years, Oracle comes out with a new release of their flagship database product. This year they have done it again, with the release of version 10g. The letter "g" in the name refers to the database supporting "grid computing" within the enterprise. At least, that's what the Oracle marketing staff is hoping that CIOs and other data managers throughout the world, will believe.
For those unfamiliar with enterprise grid computing, it is critical to understand the concept, so as not to be intimidated by the inevitable "market-speak" which one will no doubt encounter during the next few years, from various vendors, including Oracle. Grid computing is the use of a large network of many computers to perform the processing of jobs that would overwhelm any one particular computer on the network. In a sense, it is the idea of "distributed processing" popular in the late 1980s, but in which the work being performed is more discrete, and there is much greater coordination among the various elements on the network in order to bring their individual efforts together into cohesive results. The tasks for which grid computing would be ideal, are those which require large numbers of processor cycles and vast amounts of data. Obviously, large-scale database applications would fall into that realm.
It should be noted that grid computing allows the utilization of processor cycles that would otherwise go unused. A direct result of this is that, theoretically, an enterprise would be able to more fully utilize all of the computers within the organization's network, with little or no impact upon the non-grid applications being run by individuals on their separate machines. For those readers familiar with the project SETI@home (Search for Extraterrestrial Intelligence), this concept is familiar, because that project is likely one of the pioneers of true distributed computing. For many years now, SETI@home volunteers all over the world have been able to donate the unused cycles of their personal computers for the purposes of analyzing data recorded by the SETI radiotelescopes.
New "New Features" Book
Longtime Oracle author Robert Freeman has carved a niche for himself in the area of slender volumes explaining the changes introduced by each major release of the Oracle database product. As he has done so in the past for versions 8i and 9i, Freeman has written a new book, entitled Oracle Database 10g New Features (published on 24 March 2004 under the ISBN 978-0072229479), and put out by McGraw-Hill Osborne Media, publisher of the authorized Oracle Press editions. Even though the latest release of Oracle purportedly packs more changes than each of the previous two releases, this particular book is no larger than the corresponding New Features titles for the earlier releases — clocking in at a manageable 240 pages.
This volume is divided into nine chapters, which will be discussed briefly below. But at this point it should be pointed out that the reader definitely will not want to rely upon this book for an understanding of grid computing in general, or even grid computing within Oracle, because it simply does not provide an overview of Oracle enterprise grid computing. The closest the reader will find to that, is a tiny section, which begins chapter 1. In that section, Freeman states that the concept of the "Grid" is "rather murky". Moreover, the quote provided from Larry Ellison does little to clarify the matter: "...capacity on demand made up of low-cost parts." It is not clear why Freeman capitalizes the term "grid", because that form is not used in any of the literature, websites, or online discussions related to the topic, at least those seen by this writer. Perhaps it has been chosen because of a perceived resemblance to the film "The Matrix". But any such belief could only be held by someone who has not taken the time to learn what grid computing is truly all about — but that may not be Freeman's reason for capitalizing the term.
In the Introduction, Freeman discusses the tremendous change that is ongoing within the worlds of technology in general, and Oracle in particular. He wisely and succinctly informs the reader that they should not be overwhelmed by the amount of material in the book, and that not all of the new features in Oracle Database 10g were fully operational in the beta and production versions that he used in writing the book.
The meat of the book begins with a chapter describing upgrade paths in general, and the four specific upgrade paths available to the DBA looking to upgrade an existing Oracle database. Freeman points out that one of the most noticeable changes with 10g, is the introduction of a new SYSAUX tablespace, which must be created by the DBA for an upgrade (and is automatically created by Oracle for a new database). The second part of the chapter discusses a new service for managing disk drives, Automatic Storage Management (ASM), including how to set it up and use its data dictionary views. The chapter concludes with a brief discussion of changes to Real Application Clusters (RAC).
Chapter 2 discusses various aspects of managing an Oracle database server, and the changes wrought by 10g. Those areas encompass: collecting database statistics, flushing the buffer cache without restarting the database, the Database Resource Manager and the job Scheduler, configurable default tablespaces and temporary tablespaces, renaming tablespaces with a new "alter tablespace" parameter, dropping databases easily (too easily?!), large binary objects, retention of Undo, shrinking and compacting segments online, and some new ways to redefine database elements online. This chapter, like several that follow, would have benefited from more examples.
The third chapter deals with performance tuning, and the improvements thereto with the release of Oracle Database 10g. This is a critical topic for most DBAs, and thus it should come as no surprise that this is one of the larger chapters (along with Chapters 5 and 6). Freeman describes enhancements to the views related to wait events, the Common Management Infrastructure (CMI), server-based advisers for tuning, server-generated alerts, automatic SGA tuning, self-tuning checkpoints, and assorted hash clusters. One thing that is confusing about this chapter, is that the topics listed at the very beginning of the chapter do not match the subheadings within the chapter. This of course makes it more difficult to locate the specific pages for each topic listed at the beginning of the chapter. In future editions, it would be nice if these were made consistent, and, even better, if page numbers were provided. This would speed locating information, especially when the boss is breathing down one's neck.
Chapter 4 deals with what is perhaps the most critical aspect of any database, regardless of whether it is exposed to the Internet through any Web-based application — namely, database security. Yet despite the great importance of this topic, only five pages are devoted to it. This would suggest that Oracle security was already completely sufficient in release 9i, or 10g has made few improvements to that security, or, least likely of all, Freeman failed to discuss enhancements that were actually made in 10g. Irrespective of what might be the case, Freeman does provide more examples per page in this chapter than any of the previous ones — for which he should be commended.
The fifth chapter of the book covers the availability and recoverability of databases. In particular, the author discusses general enhancements to database recovery, and then specific enhancements to Oracle's RMAN (Recovery Manager) — including how to use backup copies and fast recovery, as well as the flash recovery area (which, by the way, is completely unrelated to partygoers recovering from unexpected photographs of their shenanigans!). The Oracle9i release introduced the concept of a flashback query. This has been extended in the 10g release into a full Flashback Database, which allows the user to return an entire database back to its state at any previous point in time. Think of it as a massive database undo feature — with correspondingly massive memory requirements. Unlike some topics covered in earlier chapters, Freeman digs more into the details of this particular topic, to good effect. The chapter is wrapped up with a discussion of new features added to Data Guard, including the application of redo in real-time, the "valid_for" attribute changes to standby database parameters and startups, and several other topics.
For businesses and organizations that make extensive use of Oracle database applications, the areas of data warehousing, data marts, and operational data stores — are critical to their enterprises. This is perhaps one reason why Freeman devotes what is perhaps the largest chapter in the book, to discussing business intelligence and how the Oracle Database 10g has enhanced such database applications. For instance, the old import and export programs have been replaced by the Data Pump, which apparently offers better performance than the aforesaid programs. Freeman provides a useful diagram, showing the many elements that can be involved in the Data Pump infrastructure, on the client and server sides. This is followed by numerous tables describing the many parameters of the Data Pump — which fills a fair number of pages, but will be of excellent value to any DBA doing data import and export within 10g. The author then discusses bigfile tablespaces (BFTs), transportable tablespaces, external table unloading, improved merger operations, as well as modifications to materialized views (Mviews), query rewrites, and summary management DDL enhancements. The chapter concludes with a quick discussion of some of the new partitioning features offered by Oracle Database 10g.
Chapter 7 addresses an equally important area, database application development, and yet devotes far fewer pages to an even greater number of topics. This may bely a bias towards database administrations, at the expense of the database application developers who live and die by these features of Oracle. Fortunately, most of the topics covered have some sample code to illustrate their usage. One of my favorite programmatic features, regular expressions, has finally been introduced to Oracle in this latest release — and not a year too soon! Anyone who has attempted to perform substantial text matching, substitution, and other processing, using the traditional PL/SQL tools, will surely agree with that assessment.
The eighth chapter of the volume serves much as a catchall chapter, in that it discusses, as entitled, Other Database New Features. These include remote store procedure calls, improvements to the Workspace Manager, enhancements to Oracle Streams and the SQL*Plus technology. In addition, Freeman briefly discusses improvements to Oracle SQL, the use of aggregates in a "returning" clause, grouped table outer joins, and a couple of other topics.
The last chapter of the book examines the many changes to the Oracle Enterprise Manager, which has a new architecture, installation options, home page, provisioning and job scheduling, administration, performance tuning, and OEM Grid Control. That last topic may be one of the few new features in this "Grid" Oracle database release that clearly has anything to do with grid computing. The chapter ends — seemingly before it really got started — with a cursory discussion of the mobile version of OEM, named "EM2Go".
The only appendix in the book comprises one page, which briefly describes the eight new processes within the Oracle Database 10g system. This is followed by the book's index.
One's assessment of the book will of course depend upon one's needs. If the reader is looking for a substantial volume that goes into the details of the new features in the 10g release, along with plenty of illustrative code and commands, then that reader will likely be disappointed by this particular publication. On the other hand, if the reader wishes to get a clear overview of 10g's new features, without a lot of detail, then that reader should be pleased with this book. One outstanding aspect of this title is the inclusion throughout of comments provided by Jonathan Lewis, an Oracle expert whose advice and warnings in every chapter provide a much-needed depth on the technical side.
The Table of Contents for the book, and a sample chapter (Chapter 1), both in PDF format, may be found at the Oracle Press Web page for this title.