Scaling Oracle8i
Introduction (to a Great Book)
Welcome!
Preface
Who Should Read This Book
Credits
Feedback
Introduction
How To Read This Book
Chapter 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
Chapter 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 2000
SGI Origin 2000
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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 9 Scalable Transaction Processing
Scalable Applications
Application Design
Scalable SQL
Transaction Processing Monitors
Purge
Tuning Transaction Processing Systems
Goals for Tuning
Where to Tune
Tuning Modes
Chapter Summary
Further Reading
Chapter 10 Pulling It All Together: A Case Study
Introduction
Engagement Overview
The Business
Perot Systems Corporation: The IT Partner
The Application
The Technical Solution
Chapter Summary
Chapter 11 Building a
Successful Team
Introduction
Immediate Team Attributes
Virtual Team Attributes
Chapter Summary
Chapter 12 Pitfalls
Introduction
Avoiding Bugs
Initial Releases
Known Problems
Bug Diagnosis and Resolution
Finding and Fixing Bugs
Oracle Parallel Server Problems
Chapter Summary
Chapter 13 Internet Applications and the Future
E-Commerce Systems
The Implications
The Implication for Business Computing
Oracle8i Technology
Java Integration
New Data Services
Future Oracle Releases
Chapter Summary