 |
Scaling Oracle8i: Building Highly Scalable Oltp System Architectures View Larger Image | James Morle Addison-Wesley, Paperback, Bk&CD edition, Published December 1999, 513 pages, ISBN 0201325748 | List Price: $49.99 Our Price: $38.95 You Save: $11.04 (22% Off)
| | | Availability: Out-Of-Stock |
Customer Reviews: 1 Average Customer Rating:      Write a Review and tell the world about this title! Books on similar topics, in best-seller order: Books from the same publisher, in best-seller order:
As open systems continue to replace traditional mainframe systems, system scalability is becoming an increasingly important topic. Although far more flexible than mainframe systems, open systems applications tend to be less reliable and more difficult to scale. There is no cookbook approach to solving this challenge: A thorough understanding of the technologies involved is essential for designing scalable solutions that meet long-term business needs.
Scaling Oracle8i™ offers valuable insights and techniques for designing reliable and scalable online transaction processing (OLTP) applications using Oracle. This book focuses on providing the in-depth information about Oracle and the underlying hardware required to build systems that scale effectively.
You will find coverage of relevant hardware and I/O operation; benchmark and database monitoring systems; Oracle internals, operation, and implementation; and UNIX operating system issues that impact Oracle performance and scalability. Essential topics covered include:
- Critical scalability concepts, including latches and locks, lists, hashing, and caching
- A briefing on various hardware architectures, including symmetric multiprocessor, clustered SMP, ccNUMA, and massive parallel processors
- I/O technology, including the physical attributes of I/O systems and RAID technology
- Producing application benchmarks using Oracle trace files
- An introduction to the Tcl-based Oracle scripting tool dbaman, for easy, general purpose database programming (the dbaman source code is included on accompanying CD-ROM)
- Interrogating the Oracle fixed tables to derive operational data
- Oracle Parallel Server
- The inner workings of the UNIX kernel and virtual memory system
- Oracle's Virtual Operating System abstraction interface, including hardware vendor co-engineering
- Writing scalable SQL
- Using TP monitors
- Performance tuning
- Scaling large Oracle applications
In addition, a real-life case study of a large-scale Oracle system illustrates concepts, approaches, and experienced-based pointers for implementation. Scaling Oracle8i™ concludes with a look at Oracle's future, including its role in the emerging field of Internet OLTP development.
Contents
Figure List xv
Preface xix
Introduction xxiii
PART I Concepts and Architecture 1
Chapter 1 Scaling Concepts 3
- 1.1 What Is Scaling? 3
- 1.1.1 Speedup 5
- 1.1.2 Concurrency (Scaleup) 8
- 1.2 Latches and Locks 9
- 1.2.1 Why Lock? 10
- 1.2.2 Things That Need Locking/Latching 14
- 1.2.3 Waiting on Latches and Locks 15
- 1.2.4 Design Considerations to Reduce Lock Contention 17
- 1.3 Linked Lists 20
- 1.3.1 What Is a Linked List? 20
- 1.3.2 What Are Linked Lists Used For? 22
- 1.3.3 Optimizing Chain Lengths 24
- 1.4 Hashing 25
- 1.4.1 What Is Hashing? 25
- 1.5 Caching 28
- 1.5.1 Cache Fundamentals 28
- 1.5.2 Memory Hierarchies 29
- 1.5.3 Cache Reference Patterns 30
- 1.5.4 I/O Caching 31
- 1.5.5 CPU Cache Concepts 33
- 1.6 Chapter Summary 40
- 1.7 Further Reading 40
Chapter 2 Hardware Architectures and I/O Subsystems 41
- 2.1 Introduction to Hardware Architectures 41
- 2.1.1 System Interconnects 42
- 2.1.2 Bus Architecture 43
- 2.1.3 Direct Memory Access (DMA) 46
- 2.1.4 Cache Coherency 47
- 2.2 Single Processor Architectures (Uniprocessors) 51
- 2.2.1 Advantages 51
- 2.2.2 Oracle on Uniprocessors 54
- 2.2.3 Other Disadvantages 54
- 2.2.4 Summary 55
- 2.3 Symmetric Multiprocessors (SMPs) 56
- 2.3.1 SMP Advantages 56
- 2.3.2 Kernel Challenges 58
- 2.3.3 Oracle on SMP Architectures 59
- 2.3.4 Shared-Bus Limitations 60
- 2.3.5 Summary 60
- 2.4 Point-to-Point SMP 61
- 2.4.1 Cache Coherency 63
- 2.4.2 Summary 64
- 2.5 Clustered SMP 64
- 2.5.1 Clustering Types 65
- 2.5.2 Summary 67
- 2.6 Massively Parallel Processors (MPPs) 68
- 2.6.1 Definition 68
- 2.6.2 Oracle on MPP Systems 71
- 2.6.3 Summary 72
- 2.7 Cache Coherent Nonuniform Memory Access (ccNUMA) 73
- 2.7.1 Definition 73
- 2.7.2 Sequent NUMA-Q 2000 74
- 2.7.3 SGI Origin 2000 79
- 2.7.4 Oracle on NUMA Systems 80
- 2.7.5 Summary 84
- 2.8 Storage Systems 85
- 2.8.1 I/O Busses 86
- 2.8.2 Controllers 87
- 2.8.3 Disk Drives 92
- 2.8.4 Disk Drive Sizing 95
- 2.8.5 Redundancy 97
- 2.8.6 RAID Levels 97
- 2.8.7 RAID-5 107
- 2.8.8 Cached Disk Arrays: EMC Symmetrix 110
- 2.9 Chapter Summary 114
- 2.10 Further Reading 115
PART II Building Support Software 117
Chapter 3 Benchmark Concepts and Design 119
- 3.1 Why Develop a Benchmark? 119
- 3.1.1 Capacity Planning 120
- 3.1.2 Upgrades 123
- 3.1.3 Platform Changes 124
- 3.2 What Are We Simulating? 125
- 3.2.1 Defining Application Areas 125
- 3.2.2 Defining the Application Split 125
- 3.2.3 Careful with Those Assumptions, Eugene 126
- 3.3 Selecting a Development Approach 128
- 3.3.1 Using Remote Terminal Emulation Software 128
- 3.3.2 Custom Simulation Development 129
- 3.4 Building a Simulator Using RTE Software 130
- 3.5 Building a Custom Benchmark Suite 131
- 3.5.1 Programming Environment 131
- 3.5.2 When the Application Has Not Been Written 132
- 3.5.3 If the Application Exists: Trap and Emulate All SQL Calls 133
- 3.5.4 Using Tracefiles to Generate a Simulation: An Introduction to dbaman 145
- 3.5.5 Validate Server-Side System Utilization 152
- 3.5.6 Building a Multiuser Framework 156
- 3.6 Scale the Simulator 157
- 3.6.1 Data Problems 157
- 3.6.2 User Control Problems 158
- 3.6.3 Simpler Methods for Use with dbaman 160
- 3.7 Make It Easy to Run 163
- 3.7.1 Portability 163
- 3.7.2 Packaging 164
- 3.7.3 Start-Up Scripts 164
- 3.7.4 Automating Information Retrieval at Closedown 164
- 3.8 Define Limitations in Advance 165
- 3.8.1 A Benchmark Is Never Perfect 165
- 3.8.2 Measure the Impact of the Inaccuracies 165
- 3.9 Chapter Summary 166
- 3.10 Further Reading 166
Chapter 4 System/Database Monitoring 167
- 4.1 Why Monitor? 167
- 4.1.1 Proactive Fault Detection 167
- 4.1.2 Rapid Fault Diagnosis 168
- 4.1.3 Historical Performance Records 169
- 4.2 Low-Intrusion Techniques 170
- 4.2.1 Go Easy on the System 170
- 4.2.2 Avoiding Single-Threaded Resources 171
- 4.3 Introduction to V$ Views 173
- 4.3.1 What Are the V$ Views ? 173
- 4.3.2 Accessing the V$ Views 174
- 4.3.3 Structure of the V$ Views 174
- 4.3.4 Overhead of Using V$ Views 175
- 4.4 Minimizing Overhead 177
- 4.5 Using dbaman to Optimize Data Collection 177
- 4.5.1 Defining the Cursors 177
- 4.5.2 Parsing and Executing the SQL 179
- 4.5.3 Process the Result Sets 180
- 4.5.4 Pulling it Together with a Main Loop 181
- 4.6 Processing Statistics 182
- 4.6.1 Data Transports 182
- 4.6.2 Alarm Propagation 185
- 4.7 Defining the "Flight Envelope" 186
- 4.7.1 What Is a "Flight Envelope"? 186
- 4.7.2 How Do I Define a Flight Envelope for the System? 187
- 4.8 Using Excel Spreadsheets for Data Visualization 188
- 4.9 Chapter Summary 193
PART III How Oracle Works 195
Chapter 5 Physical Oracle 197
- 5.1 Introduction 197
- 5.2 Overview 197
- 5.3 Control Files 198
- 5.3.1 Datafile Information 199
- 5.3.2 Operating Information 200
- 5.3.3 Redo Log Information 200
- 5.3.4 Log History 200
- 5.3.5 Backup Information 200
- 5.4 The INIT.ORA File 200
- 5.4.1 Rules for init.ora Creation 201
- 5.5 Data Storage 209
- 5.5.1 Overview: The Physical Picture 209
- 5.5.2 Blocks: An Introduction 209
- 5.5.3 Block Cleanout 223
- 5.6 Redo Logfiles 224
- 5.7 Key Database Objects 226
- 5.7.1 Rollback Segments 226
- 5.7.2 Read-Only Tablespaces 228
- 5.7.3 Temporary Tablespaces and Temporary Segments 229
- 5.7.4 Tables 230
- 5.7.5 Indexes 235
- 5.7.6 Other Database Objects 244
- 5.8 The Data Dictionary 249
- 5.9 Chapter Summary 250
- 5.10 Further Reading 250
Chapter 6 Oracle8 in Operation 253
- 6.1 Introduction 253
- 6.1.1 The Oracle Kernel 253
- 6.2 Process Architecture 254
- 6.2.1 Shadow Processes 255
- 6.3 Net8 258
- 6.4 The SGA Components 259
- 6.4.1 High-Level View 259
- 6.4.2 Fixed Region 260
- 6.4.3 Variable Region 262
- 6.4.4 Buffer Cache 263
- 6.5 Operation of the Buffer Cache 266
- 6.5.1 Introduction 266
- 6.5.2 Hash Chains 266
- 6.5.3 LRU Chains 268
- 6.5.4 Latch Coverage 270
- 6.5.5 CR Versions 272
- 6.5.6 DBWR Operation 273
- 6.5.7 Flowchart Summary of Buffer Cache Operation 274
- 6.6 Shared Pool Structure 275
- 6.7 Shared Pool: The Library Cache 276
- 6.7.1 Introduction 276
- 6.7.2 Cursors 276
- 6.7.3 The Parsing Mechanism 277
- 6.7.4 Latch Coverage 280
- 6.8 Other Memory Structures 282
- 6.8.1 Dictionary Cache 282
- 6.8.2 Log Buffer 283
- 6.9 Oracle Parallel Server Concepts 285
- 6.9.1 Introduction 285
- 6.9.2 Distributed Lock Manager (DLM) 286
- 6.9.3 Parallel Cache Management 287
- 6.9.4 Design Considerations for OPS 293
- 6.9.5 Summary 300
- 6.9.6 Further Reading for OPS 300
- 6.10 V$ Views Exposed 300
- 6.10.1 Session-Level Information 301
- 6.10.2 V$SESSION_EVENT 312
- 6.10.3 System-Level Information 314
- 6.11 Chapter Summary 318
- 6.12 Further Reading 318
PART IV How UNIX Works 319
Chapter 7 Introduction to UNIX 321
- 7.1 What Is a Kernel? 321
- 7.1.1 "That Picture" 321
- 7.1.2 Execution Modes 323
- 7.1.3 Explicit Kernel Processing (Process Context Kernel Mode) 324
- 7.1.4 Implicit Kernel Processing (System Context Kernel Mode) 326
- 7.2 Processes 329
- 7.2.1 The Process "Table" 329
- 7.2.2 Process Scheduling 331
- 7.2.3 Signals 335
- 7.2.4 Process Lifecycle 338
- 7.3 Memory Management: The Virtual Memory System 340
- 7.3.1 Introduction 340
- 7.3.2 Virtual Memory Introduction 340
- 7.4 Virtual Memory Hierarchy 348
- 7.4.1 The Memory/Disk Hierarchy 348
- 7.4.2 Implementing the Hierarchy 349
- 7.4.3 Implications of fork() and exec() 358
- 7.4.4 Summary 359
- 7.5 I/O System 360
- 7.5.1 Everything Is a File 360
- 7.5.2 Filesystems 361
- 7.5.3 Raw Disk 365
- 7.5.4 Filesystems Versus Raw Disk 369
- 7.5.5 Logical Volume Managers 370
- 7.6 Interprocess Communication (IPC) 373
- 7.6.1 Pipe Communication 373
- 7.6.2 System V IPC 374
- 7.7 More on System Calls 376
- 7.8 Chapter Summary 380
- 7.9 Further Reading 381
Chapter 8 Oracle User's Guide to UNIX 383
- 8.1 Coengineering the Oracle Kernel 383
- 8.1.1 VOS Responsibilities 384
- 8.1.2 Vendor Coengineering 387
- 8.2 UNIX Tools 392
- 8.2.1 top 392
- 8.2.2 Tcl and expect 393
- 8.2.3 Korn Shell 394
- 8.2.4 awk 396
- 8.3 Further Reading 397
PART V Implementing Oracle 399
Chapter 9 Scalable Transaction Processing 401
- 9.1 Scalable Applications 401
- 9.1.1 Application Design 401
- 9.1.2 Scalable SQL 404
- 9.1.3 Transaction Processing Monitors 419
- 9.1.4 Purge 427
- 9.2 Tuning Transaction Processing Systems 431
- 9.2.1 Goals for Tuning 431
- 9.2.2 Where to Tune 432
- 9.2.3 Tuning Modes 436
- 9.3 Chapter Summary 445
- 9.4 Further Reading 445
Chapter 10 Pulling It All Together: A Case Study 447
- 10.1 Introduction 447
- 10.2 Engagement Overview 448
- 10.2.1 The Business 448
- 10.2.2 Perot Systems Corporation: The IT Partner 449
- 10.2.3 The Application 449
- 10.2.4 The Technical Solution 453
- 10.3 Chapter Summary 467
PART VI Further Considerations 469
Chapter 11 Building a Successful Team 471
- 11.1 Introduction 471
- 11.2 Immediate Team Attributes 472
- 11.3 Virtual Team Attributes 475
- 11.4 Chapter Summary 476
Chapter 12 Pitfalls 477
- 12.1 Introduction 477
- 12.2 Avoiding Bugs 477
- 12.2.1 Initial Releases 477
- 12.2.2 Known Problems 478
- 12.3 Bug Diagnosis and Resolution 478
- 12.3.1 Finding and Fixing Bugs 479
- 12.3.2 Oracle Parallel Server Problems 483
- 12.4 Chapter Summary 484
Chapter 13 Internet Applications and the Future 485
- 13.1 E-Commerce Systems 485
- 13.1.1 The Implications 485
- 13.1.2 The Implication for Business Computing 488
- 13.2 Oracle8i Technology 488
- 13.2.1 Java Integration 488
- 13.2.2 New Data Services 490
- 13.3 Future Oracle Releases 493
- 13.4 Chapter Summary 494
Index 495
Customer Reviews
Customer Reviews: 1 Average Customer Rating:      Jun 26, 2000     Oleg Pshenitsyn (oradba@netscape.net) from Boston, MA Excellent help for experienced DBA... I have never had an Oracle book which was so easy to read, had no errors, and yet dealt with advanced topics such as scaling Oracle databases and servers to their highest performance and capacity. Even a novice DBA can use this book - it explains many aspects for speeding up your hardware and software in very clear and easy to understand language. Excellent addition to my Oracle library!
|
 |