Home > Store

Scaling Oracle8i: Building Highly Scalable OLTP System Architectures

Register your product to gain access to bonus material or receive a coupon.

Scaling Oracle8i: Building Highly Scalable OLTP System Architectures

Book

  • Sorry, this book is no longer in print.
Not for Sale

Description

  • Copyright 2000
  • Dimensions: 7-3/8" x 9-1/4"
  • Pages: 544
  • Edition: 1st
  • Book
  • ISBN-10: 0-201-32574-8
  • ISBN-13: 978-0-201-32574-4

This is the complete, expert guide to building enterprise-class UNIX-based Oracle OLTP systems that deliver maximum performance and scalability. In Scaling Oracle 8i, one of the world's leading Oracle consultants introduces today's best methods and technologies for building industrial-strength Oracle database systems on UNIX platforms. Understand exactly what scalability means in the enterprise; then discover how to deliver it, step-by-step, from the ground up, through design, testing, construction, maintenance, benchmarking, and ongoing management. Morle covers every component that impacts performance, including hashing, caching, hardware architecture and I/O subsystems, Oracle database objects, data storage, memory structures, and a detailed review of the Oracle Parallel Server. Readers will find comprehensive coverage of tuning the underlying UNIX platform to improve OLTP response times; including co-engineering the kernel; working with virtual memory, I/O, interprocess communication; and more. Scaling Oracle 8i contains a full chapter on the special issues associated with e-commerce, as well as a detailed case study drawn from one of the world's largest car rental reservations systems. For all enterprise system architects, database engineers, and application developers working with Oracle.

Downloads

CD Contents

Untitled Document This file contains the CD Contents for Scaling Oracle8i™: Building Highly Scalable OLTP System Architectures

Extras

Web Resources

Click below for Web Resources related to this title:
Author's Web Site

Sample Content

Table of Contents



Figure List.


Preface.


Introduction.

I. CONCEPTS AND ARCHITECTURE.

1. Scaling Concepts.

What Is Scaling?

Speedup.

Concurrency (Scaleup).

Latches and Locks.

Why Lock?

Things That Need Locking/Latching.

Waiting on Latches and Locks.

Design Considerations to Reduce Lock Contention.

Linked Lists.

What Is a Linked List?

What Are Linked Lists Used For?

Optimizing Chain Lengths.

Hashing.

What Is Hashing?

Caching.

Cache Fundamentals.

Memory Hierarchies.

Cache Reference Patterns.

I/O Caching.

CPU Cache Concepts.

Chapter Summary.

Further Reading.

2. Hardware Architectures and I/O Subsystems.

Introduction to Hardware Architectures.

System Interconnects.

Bus Architecture.

Direct Memory Access (DMA).

Cache Coherency.

Single Processor Architectures (Uniprocessors).

Advantages.

Oracle on Uniprocessors.

Other Disadvantages.

Summary.

Symmetric Multiprocessors (SMPs).

SMP Advantages.

Kernel Challenges.

Oracle on SMP Architectures.

Shared-Bus Limitations.

Summary.

Point-to-Point SMP.

Cache Coherency.

Summary.

Clustered SMP.

Clustering Types.

Summary.

Massively Parallel Processors (MPPs).

Definition.

Oracle on MPP Systems.

Summary.

Cache Coherent Nonuniform Memory Access (ccNUMA).

Definition.

Sequent NUMA-Q 20.

SGI Origin 20.

Oracle on NUMA Systems.

Summary.

Storage Systems.

I/O Busses.

Controllers.

Disk Drives.

Disk Drive Sizing.

Redundancy.

RAID Levels.

RAID-5.

Cached Disk Arrays: EMC Symmetrix.

Chapter Summary.

Further Reading.

II. BUILDING SUPPORT SOFTWARE.

3. Benchmark Concepts and Design.

Why Develop a Benchmark?

Capacity Planning.

Upgrades.

Platform Changes.

What Are We Simulating?

Defining Application Areas.

Defining the Application Split.

Careful with Those Assumptions, Eugene.

Selecting a Development Approach.

Using Remote Terminal Emulation Software.

Custom Simulation Development.

Building a Simulator Using RTE Software.

Building a Custom Benchmark Suite.

Programming Environment.

When the Application Has Not Been Written.

If the Application Exists: Trap and Emulate All SQL Calls.

Using Tracefiles to Generate a Simulation: An Introduction to dbaman.

Validate Server-Side System Utilization.

Building a Multiuser Framework.

Scale the Simulator.

Data Problems.

User Control Problems.

Simpler Methods for Use with dbaman.

Make It Easy to Run.

Portability.

Packaging.

Start-Up Scripts.

Automating Information Retrieval at Closedown.

Define Limitations in Advance.

A Benchmark Is Never Perfect.

Measure the Impact of the Inaccuracies.

Chapter Summary.

Further Reading.

4. System/Database Monitoring.

Why Monitor?

Proactive Fault Detection.

Rapid Fault Diagnosis.

Historical Performance Records.

Low-Intrusion Techniques.

Go Easy on the System.

Avoiding Single-Threaded Resources.

Introduction to V$ Views.

What Are the V$ Views ?

Accessing the V$ Views.

Structure of the V$ Views.

Overhead of Using V$ Views.

Minimizing Overhead.

Using dbaman to Optimize Data Collection.

Defining the Cursors.

Parsing and Executing the SQL.

Process the Result Sets.

Pulling it Together with a Main Loop.

Processing Statistics.

Data Transports.

Alarm Propagation.

Defining the "Flight Envelope."

What Is a "Flight Envelope"?

How Do I Define a Flight Envelope for the System?

Using Excel Spreadsheets for Data Visualization.

Chapter Summary.

III. HOW ORACLE WORKS.

5. Physical Oracle.

Introduction.

Overview.

Control Files.

Datafile Information.

Operating Information.

Redo Log Information.

Log History.

Backup Information.

The INIT.ORA File.

Rules for init.ora Creation.

Data Storage.

Overview: The Physical Picture.

Blocks: An Introduction.

Block Cleanout.

Redo Logfiles.

Key Database Objects.

Rollback Segments.

Read-Only Tablespaces.

Temporary Tablespaces and Temporary Segments.

Tables.

Indexes.

Other Database Objects.

The Data Dictionary.

Chapter Summary.

Further Reading.

6. Oracle8 in Operation.

Introduction.

The Oracle Kernel.

Process Architecture.

Shadow Processes.

Net8.

The SGA Components.

High-Level View.

Fixed Region.

Variable Region.

Buffer Cache.

Operation of the Buffer Cache.

Introduction.

Hash Chains.

LRU Chains.

Latch Coverage.

CR Versions.

DBWR Operation.

Flowchart Summary of Buffer Cache Operation.

Shared Pool Structure.

Shared Pool: The Library Cache.

Introduction.

Cursors.

The Parsing Mechanism.

Latch Coverage.

Other Memory Structures.

Dictionary Cache.

Log Buffer.

Oracle Parallel Server Concepts

Introduction.

Distributed Lock Manager (DLM).

Parallel Cache Management.

Design Considerations for OPS.

Summary.

Further Reading for OPS.

V$ Views Exposed.

Session-Level Information.

V$SESSION_EVENT.

.System-Level Information.

Chapter Summary.

Further Reading.

IV. HOW UNIX WORKS.

7. Introduction to UNIX.

What Is a Kernel?

"That Picture."

Execution Modes.

Explicit Kernel Processing (Process Context Kernel Mode).

Implicit Kernel Processing (System Context Kernel Mode).

Processes.

The Process "Table."

Process Scheduling.

Signals.

Process Lifecycle.

Memory Management: The Virtual Memory System.

Introduction.

Virtual Memory Introduction.

Virtual Memory Hierarchy.

The Memory/Disk Hierarchy.

Implementing the Hierarchy.

Implications of fork() and exec().

Summary.

I/O System.

Everything Is a File.

Filesystems.

Raw Disk.

Filesystems Versus Raw Disk.

Logical Volume Managers.

Interprocess Communication (IPC).

Pipe Communication.

System V IPC.

More on System Calls.

Chapter Summary.

Further Reading.

8. Oracle User's Guide to UNIX.

Coengineering the Oracle Kernel.

VOS Responsibilities.

Vendor Coengineering.

UNIX Tools.

top.

Tcl and expect.

Korn Shell.

awk.

Further Reading

V. IMPLEMENTING ORACLE.

9. Scalable Transaction Processing.

Scalable Applications.

Application Design.

Scalable SQL.

Transac. 0201325705T04062001

Preface

This is a book about getting the most out of Oracle8i on UNIX systems. While many people understand how to administrate Oracle and UNIX, far fewer understand the issues and workings of the software and hardware, thus limiting the scalability of the system. This book aims to open up this essential information, enabling the reader to build faster, larger, and more scalable systems than ever before.

The purpose of this book is to provide grounding in all the areas required for large systems implementation using UNIX and Oracle8i. Some of the information in this text is available elsewhere, scattered throughout a large number of specialized volumes, while other information, taken from experience in implementing such systems, is previously undocumented.

Unlike many Oracle books, this book avoids the "one size fits all," cookbook approach to improving the skillset of the reader. In my opinion, such books do little to improve foundation skills and serve only to confuse readers when their circumstances deviate from those of the author. Rather, the intent of this book is to communicate a distillation of many years of experience in building very large Oracle database systems. The information presented here allows the reader to make informed decisions, based on real facts, that directly apply to the actual case at hand.

Where appropriate, this book will make recommendations to the reader, mostly from an approach standpoint. These recommendations are intended to guide the reader past some of the common pitfalls often encountered during the building of large systems. In addition to technical information, the book also makes organizational and procedural recommendations intended to help the reader avoid dead ends and other sources of aggravation.

Although the focus of this book is on Oracle8i, the principles presented also apply to other database software. UNIX is the premier platform for very large Oracle systems and is therefore presented as the underlying operating system, although many of the hardware and theoretical discussions also apply to other operating systems, such as Windows NT. Large, custom-written applications are the main target of this book, but all of the concepts presented here also apply in varying degrees to smaller systems and packaged applications.

Who Should Read This Book
This book is primarily aimed at the following audiences.
  • System architects
  • Database engineers wanting to expand their knowledge
  • System administrators working on UNIX/Oracle systems
  • Senior application developers
In addition, this book will be of value to the following audiences.
  • Technology managers
  • Computer science students


0201325748P04062001

Introduction

Database systems are growing at an enormous rate. Both connection volume and data volume have grown exponentially since the large-scale adoption of open systems and of commodity database server software such as Oracle. These systems are now matching and exceeding the capabilities previously demonstrated only by mainframe systems.

Database systems can be separated into two broad categories:
  • Online transaction processing (OLTP) system
  • Decision support systems (DSS) such as data warehouses, data mining, reporting and so on
Both types of systems present unique challenges in implementing systems of large scale. The challenge of large transactional systems involves the management of many small operations occurring at once, while DSS systems need to process vast amounts of data. Consequently, transactional systems need low latencies, and DSS systems need high throughput.

This book is focused mainly on transactional systems, with references to DSS systems where appropriate.

In the mainframe world, scaling and robustness are often heavily ingrained in the cultures of all involved; system programmers, DBAs, application programmers, and the vendors themselves conform to rigorous standards and methodologies that are practically set in stone. The net result of this enforced conformance is a greater probability that scalable, robust business systems will be produced.

In the open systems world, no such constraints are set on any of the personnel who build the system; any method can be used as long as it achieves the required result. This flexibility is the catalyst behind the proliferation of open systems, allowing very rapid development and inclusion of more powerful functionality within the application. Unfortunately, this flexibility results in the following costs:
  1. Unscalable applications are the default product.
  2. Reliable systems are difficult to obtain.
Both of these costs bear down hard on a business. Although the business has been able to develop the application and implement the hardware for a fraction of the cost of a comparable mainframe system, this advantage is overshadowed by potentially long, unscheduled downtime and by difficulties in scaling the system in line with business growth.

In order to mitigate these disadvantages, it has become increasingly important for builders of open systems solutions to change the way these systems are built. This involves two fundamental changes in the default, anarchic method of open systems development:
  1. A return to some of the ground rules introduced by the mainframe, particularly multitier architectures
  2. A much greater level of technical knowledge within the teams
The first change involves taking the "good" aspects of the mainframe development sandbox and adopting them in the open systems arena. Multitier application architectures are prime among these aspects, moving away from the single points of failure, poor scalability, low reusability, and often proprietary, two-tier solutions.

The second change requires open systems teams to have a far greater understanding of how the systems work than they ever had before. Mainframe developers have historically had to deal with two contrasting levels of complexity during development. On one hand, the segmentation of function within mainframe systems meant that the developer did not need to be concerned about portions of system operation. On the other hand, the development of applications in low-level languages meant that application developers were forced to be concerned about performance and "doing the right thing." In open systems, applications are typically developed using high-level or object-based languages, which means that the separation between the application developer and the underlying systems is far greater than when procedural, third-generation languages are used. The effect of this is that application developers are often too far removed from the system, and the only individuals on the team who can see the whole picture are the database engineers. It is important, therefore, that the database engineer be able to understand all the issues, and that the application developer also be aware of the necessary considerations.

How To Read This Book

The book is divided into several parts, each of which can mostly be read independently of the others. It is recommended, however, that the book be read sequentially from front to back. The reason for this is that, although all the parts overlap somewhat, the book has been written from front to back. For this reason, some assumption of knowledge of prior chapters is made. The order of presentation (hardware before software) may initially appear to be exactly reversed, as the greatest impact can be made in the software. This is true, but it is my opinion that software cannot be understood or responsibly architected without prior knowledge of how it relates to the actual execution on the hardware. Therefore, we take the journey from the ground up.

Part I: Concepts and Architecture

Chapter 1: Scaling Concepts
What is scaling? Why do I need to be concerned with scalability? What are the common concepts used to provide scalability? This chapter presents the basic concepts of computer science that are required in order to understand some of the later chapters.

Chapter 2: Hardware Architectures and I/O Subsystems
This chapter describes the many different hardware architectures on the market today, all of which have significantly different operational profiles. Understanding the differences among the platforms and how those differences relate to the operation of Oracle are critical during platform selection and subsequent configuration and tuning.

The chapter goes on to discuss I/O, a core part of any database system. A thorough understanding of the mechanics of the physical disk, and of the various RAID options, should be considered a prerequisite to building a database.

Part II: Building Support Software

Chapter 3: Benchmark Concepts and Design
Large systems cannot be simply rolled into production. At least some element of initial testing must be performed in order to certify both the performance and the stability of the platform. This chapter shows how a simple benchmark can be produced using simple Oracle trace files. Also presented is the Oracle-based scripting tool, dbaman.

Chapter 4: System/Database Monitoring This chapter explores how a large Oracle database server can be monitored using low-intrusion techniques. Included in this chapter is an introduction on how to interrogate the Oracle fixed tables to derive operational data, and how to present that data using standard PC tools.

Part III: How Oracle Works

Chapter 5: Physical Oracle
This chapter concentrates on the physical attributes of Oracle, including the initialization file, the different types of objects, the internals of those objects, and how consistent read is implemented.

Chapter 6: Oracle8 in Operation
The other side of Oracle is the "living" side of it, the Oracle instance. This chapter describes the various caches used by Oracle and the measures that have been taken within the product to allow it to scale effectively. An introduction to Oracle Parallel Server is included, along with some more details on the V$ views.

Part IV: How UNIX Works

Chapter 7: Introduction to UNIX
A knowledge of the UNIX kernel often becomes important when one is trying to determine why a database server behaves the way it does. This chapter describes the UNIX kernel and the virtual memory system, and how they relate to an Oracle database server.

Chapter 8: Oracle User's Guide to UNIX
Oracle relies heavily on the underlying operating system. This chapter describes how Oracle interfaces with the operating system, using the virtual operating system abstraction. An introduction to a selection of the invaluable UNIX tools is provided.

Part V: Implementing Oracle

Chapter 9: Scalable Transaction Processing
This chapter provides guidelines on how to develop applications that scale, and how to tune the database to execute the requests most effectively. Included in this chapter are sections on writing scalable SQL, the purpose of a transaction processing (TP) monitor, and an approach to tuning for the desired result.

Chapter 10: Pulling It All Together: A Case Study
The proof of the pudding is in the eating. This chapter gives an overview of a real-life, large-scale Oracle system, along with pointers to the lessons learned during implementation.

Part VI: Further Considerations

Chapter 11: Building a Successful Team
This small but important chapter introduces some techniques for building a good team to do this kind of work.

Chapter 12: Pitfalls
This chapter concentrates on software problems--bugs. It is inevitable that large systems will be impacted in some way by bugs, and dealing with them effectively is important in maintaining a stable system.

Chapter 13: Internet Applications and the Future
The final chapter looks at the direction of application engineering and the future direction of Oracle.

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020