Thursday, May 29, 2008

Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions

This is a defining book on the Oracle database for any developer or DBA who works with Oracle-driven database applications. Tom has a simple philosophy: you can treat Oracle as a black box and just stick data into it or you can understand how it works and exploit it as a powerful computing environment.

If you choose the latter, then you will find that there are few information management problems that you cannot solve quickly and elegantly.

Expert Oracle Database Architecture is the first of a three-book series that completely explores and defines the Oracle database. It covers all of the most important Oracle architecture features, including:

Files, memory structures and processes
Locking and latching
Transactions, concurrency and multi-versioning
Tables and Indexes
Datatypes
Partitioning and parallelism

Each feature is taught in a proof-by-example manner, not only discussing what it is, but also how it works, how to implement software using it, and the common pitfalls associated with it.

In summary, this book provides a one-stop resource containing deep wisdom on the design, development and administration of Oracle applications, written by one of the world’s foremost Oracle experts, Thomas Kyte.

Oracle is designed to be a very portable database; it is available on every platform of relevance, from Windows to UNIX to mainframes. For this reason, the physical architecture of Oracle looks different on different operating systems. For example, on a UNIX operating system, you will see Oracle implemented as many different operating system processes, with virtually a process per major function.

On UNIX, this is the correct implementation, as it works on a multiprocess foundation. On Windows, however, this architecture would be inappropriate and would not work very well (it would be slow and nonscaleable).

On the Windows platform, Oracle is implemented as a single, threaded process.

On IBM mainframe systems, running OS/390 and z/OS, the Oracle operating system-specific architecture exploits multiple OS/390 address spaces, all operating as a single Oracle instance. Up to 255 address spaces can be configured for a single database instance.

Moreover, Oracle works together with OS/390 Workload Manager (WLM) to establish execution priority of specific Oracle workloads relative to each other and relative to all other work in the OS/390 system. Even though the physical mechanisms used to implement Oracle from platform to platform vary, the architecture is sufficiently generalized so that you can get a good understanding of how Oracle works on all platforms.

In this chapter, I present a broad picture of this architecture. We’ll examine the Oracle server and define some terms such as “database” and “instance” (terms that always seem to cause confusion). We’ll take a look at what happens when we “connect” to Oracle and, at a high level, how the server manages memory. In the subsequent three chapters, we’ll look in detail at the three major components of the Oracle architecture:

Chapter 3 covers files. In this chapter, we’ll look at the set of five general categories of files that make up the database: parameter, data, temp, control, and redo log files. We’ll also cover other types of files, including trace, alert, dump (DMP), data pump, and simple flat files. We’ll look at the Oracle 10g new file area called the Flashback Recovery Area, and we’ll also discuss the impact that Automatic Storage Management (ASM) has on our file storage.

Chapter 4 covers the Oracle memory structures referred to as the System Global Area (SGA), Process Global Area (PGA), and User Global Area (UGA). We’ll examine the relationships between these structures, and we’ll also discuss the shared pool, large pool, Java pool, and various other SGA components.

Chapter 5 covers Oracle’s physical processes or threads. We’ll look at the three different types of processes that will be running on the database: server processes, background processes, and slave processes.

It was hard to decide which of these components to cover first. The processes use the SGA, so discussing the SGA before the processes might not make sense. On the other hand, when discussing the processes and what they do, I’ll need to make references to the SGA. These two components are closely tied: the files are acted on by the processes and would not make sense without first understanding what the processes do.

What I will do, then, in this chapter is define some terms and give a general overview of what Oracle looks like (if you were to draw it on a whiteboard). You’ll then be ready to delve into some of the details.

Download Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions

No comments: