You are previewing Pro Oracle Database 11g RAC on Linux.
O'Reilly logo
Pro Oracle Database 11g RAC on Linux

Book Description

Pro Oracle Database 11g RAC on Linux provides full-life-cycle guidance on implementing Oracle Real Application Clusters in a Linux environment. Real Application Clusters, commonly abbreviated as RAC, is Oracle's industry-leading architecture for scalable and fault-tolerant databases. RAC allows you to scale up and down by simply adding and subtracting inexpensive Linux servers. Redundancy provided by those multiple, inexpensive servers is the basis for the failover and other fault-tolerance features that RAC provides.

Written by authors well-known for their talent with RAC, Pro Oracle Database 11g RAC on Linux gives you a rock-solid and technically flawless foundation on which to build your RAC-management skills. Authors Julian Dyke and Steve Shaw share their hard-won experience in building RAC clusters, showing you how to build for success using the very latest Oracle technologies, such as Automatic Storage Management (ASM) and Oracle Clusterware. You'll learn to troubleshoot performance and other problems. You'll even learn how to correctly deploy RAC in a virtual-machine environment based upon Oracle VM, which is the only virtualization solution supported by Oracle Corporation.

RAC is a complex and powerful technology. It demands expertise in its deployment. You can't just "wing it" in creating a RAC solution. Julian and Steve have earned the right to term themselves expert—in Pro Oracle Database 11g RAC on Linux, they offer a rigorous and technically-correct treatment of RAC that helps you build a solid foundation of expertise and achieve success.

  • Rigorous and technically accurate content

  • Complete coverage of RAC, from planning to implementation to rollout to ongoing maintenance and troubleshooting

  • Up-to-date with the very latest RAC features

Table of Contents

  1. Copyright
  2. About the Author
  3. About the Technical Reviewer
  4. Acknowledgments
  5. 1. Introduction
    1. 1.1. Introducing Oracle Real Application Clusters
    2. 1.2. Examining the RAC Architecture
    3. 1.3. Deploying RAC
      1. 1.3.1. Maintaining High Availability
        1. 1.3.1.1. Providing Fault Tolerance by Redundancy
        2. 1.3.1.2. Making Failover Seamless
        3. 1.3.1.3. Putting the Technology Stack in Perspective
      2. 1.3.2. Defining Scalability
        1. 1.3.2.1. Scoping Various Levels of Scalability
      3. 1.3.3. Scaling Vertically vs. Horizontally
      4. 1.3.4. Increasing Manageability
        1. 1.3.4.1. Achieving Manageability Through Consolidation
        2. 1.3.4.2. Enabling Database Consolidation
        3. 1.3.4.3. Consolidating Servers
      5. 1.3.5. Assessing the Cost of Ownership
        1. 1.3.5.1. Choosing RAC vs. SMP
        2. 1.3.5.2. Evaluating Service-Level Agreements
        3. 1.3.5.3. Improving Database Management
        4. 1.3.5.4. Factoring in the Additional Hardware Cost
        5. 1.3.5.5. Assessing the Staff and Training Cost
    4. 1.4. Clustering with Oracle on Linux
    5. 1.5. Running Linux on Oracle
      1. 1.5.1. Understanding the Role of Unix
      2. 1.5.2. Liberating Software
      3. 1.5.3. Developing Linux
      4. 1.5.4. Expanding the Concept of Free with Open Source
    6. 1.6. Combining Oracle, Open Source, and Linux
      1. 1.6.1. Drilling Down on Unbreakable Linux
      2. 1.6.2. Creating and Growing Red Hat Enterprise Linux
      3. 1.6.3. Extending Red Hat with Oracle Enterprise Linux
      4. 1.6.4. Drilling Down on SuSE Linux Enterprise Server
      5. 1.6.5. Taking Linux to Asia
    7. 1.7. Summary
  6. 2. RAC Concepts
    1. 2.1. Clustering Concepts
      1. 2.1.1. Configuring Active/active Clusters
      2. 2.1.2. Implementing Active/passive Clusters
      3. 2.1.3. Configuring a Shared-All Architecture
      4. 2.1.4. Configuring a Shared-Nothing Architecture
    2. 2.2. Exploring the Main RAC Concepts
      1. 2.2.1. Working with Cluster Nodes
      2. 2.2.2. Leveraging the Interconnect
        1. 2.2.2.1. Using an Ethernet-based Interconnect
        2. 2.2.2.2. Implementing an Infiniband-based Interconnect
      3. 2.2.3. Clusterware/Grid Infrastructure
        1. 2.2.3.1. Planning a RAC Installation
        2. 2.2.3.2. Choosing a Process Structure
        3. 2.2.3.3. Configuring Network Components
        4. 2.2.3.4. Setting up Shared Grid Infrastructure Components
        5. 2.2.3.5. Implementing the Oracle Cluster Registry and Oracle Local Registry
        6. 2.2.3.6. Configuring Voting Disks
      4. 2.2.4. Leveraging Automatic Storage Management
        1. 2.2.4.1. Working with ASM Disks
        2. 2.2.4.2. Exploiting ASM Disk Groups
        3. 2.2.4.3. Configuring Failure Groups
        4. 2.2.4.4. Weighing Your ASM Installation and Administration Options
      5. 2.2.5. Installing Real Application Clusters
        1. 2.2.5.1. Sorting Through Your Installation Options
        2. 2.2.5.2. Choosing Between a Single Instance and a RAC Database
        3. 2.2.5.3. Working with Database Files
        4. 2.2.5.4. Storing Information in Control Files
        5. 2.2.5.5. Leveraging Online Redo Logs and Archiving
        6. 2.2.5.6. Managing Undo Tablespaces
        7. 2.2.5.7. Weighing Storage Options for RAC Databases
        8. 2.2.5.8. Drilling Down on a RAC Database Instance
      6. 2.2.6. Using the Global Resource Directory (GRD)
        1. 2.2.6.1. Maintaining Cache Coherence with Global Cache Services (GCS)
        2. 2.2.6.2. Managing Global Enqueues with Global Enqueue Services (GES)
      7. 2.2.7. Transferring Data Between Instances with Cache Fusion
      8. 2.2.8. Achieving Read Consistency
      9. 2.2.9. Synchronizing System Change Numbers
    3. 2.3. Exploring the New Features of 11g Release 2
      1. 2.3.1. Leveraging Grid Plug and Play
      2. 2.3.2. Modeling Resources with Server Pools
      3. 2.3.3. Ensuring POSIX Compliance with ACFS
      4. 2.3.4. Using Oracle Restart Instead of RAC
      5. 2.3.5. Simplifying Clusterd Database Access with SCAN Listener
    4. 2.4. Summary
  7. 3. RAC Architecture
    1. 3.1. Availability Considerations
      1. 3.1.1. Deciding the Number of Nodes
        1. 3.1.1.1. Two-Node RAC Clusters
        2. 3.1.1.2. Oracle RAC One Node
        3. 3.1.1.3. Multi-Node RAC Systems
      2. 3.1.2. Online Maintenance and Patching
        1. 3.1.2.1. Patching Real Application Clusters Using opatch
        2. 3.1.2.2. Opatch Operation Modes
        3. 3.1.2.3. All Node Patch Mode
        4. 3.1.2.4. Rolling Patch Mode
        5. 3.1.2.5. Minimum Downtime Patch Mode
        6. 3.1.2.6. Local Patch Mode
      3. 3.1.3. Instance Recovery in RAC
        1. 3.1.3.1. Enqueue Remastering
        2. 3.1.3.2. Database Recovery
    2. 3.2. Failover Considerations
      1. 3.2.1. Transparent Application Failover
        1. 3.2.1.1. Failover Modes
        2. 3.2.1.2. Failover Methods
      2. 3.2.2. Fast Connection Failover and Fast Application Notification
    3. 3.3. Scalability Considerations
      1. 3.3.1. Scalability Enhancers
      2. 3.3.2. Scalability Inhibitors
    4. 3.4. Standby Databases
      1. 3.4.1. Introduction to Oracle Standby Databases
      2. 3.4.2. Types of Standby Database
        1. 3.4.2.1. Physical Standby Database
        2. 3.4.2.2. Snapshot Standby Database
        3. 3.4.2.3. Logical Standby Database
        4. 3.4.2.4. Transient Logical Standby Database
      3. 3.4.3. Active Data Guard
        1. 3.4.3.1. Role Transitions
        2. 3.4.3.2. Data Protection Modes
        3. 3.4.3.3. The Data Guard Broker
      4. 3.4.4. Extended Distance Clusters
    5. 3.5. Oracle Streams
      1. 3.5.1. Streams Processing
      2. 3.5.2. Oracle Streams Prerequisites
    6. 3.6. Cluster Topologies
    7. 3.7. Summary
  8. 4. Hardware
    1. 4.1. Oracle Availability
    2. 4.2. Server Processor Architecture
      1. 4.2.1. x86 Processor Fundamentals
        1. 4.2.1.1. x86-64
      2. 4.2.2. Multicore Processors and Hyper-Threading
      3. 4.2.3. CPU Cache
      4. 4.2.4. CPU Power Management
      5. 4.2.5. Virtualization
    3. 4.3. Memory
      1. 4.3.1. Virtual Memory
      2. 4.3.2. Physical Memory
      3. 4.3.3. NUMA
      4. 4.3.4. Memory Reliability
    4. 4.4. Additional Platform Features
      1. 4.4.1. Onboard RAID Storage
      2. 4.4.2. Machine Check Architectures
      3. 4.4.3. Remote Server Management and IPMI
    5. 4.5. Network Interconnect Technologies
      1. 4.5.1. Server I/O
        1. 4.5.1.1. PCI
        2. 4.5.1.2. PCI-X
        3. 4.5.1.3. PCI-Express
      2. 4.5.2. Private Interconnect
        1. 4.5.2.1. Standard Ethernet Interconnects
        2. 4.5.2.2. Fully Redundant Ethernet Interconnects
        3. 4.5.2.3. Infiniband
        4. 4.5.2.4. Private Interconnect Selection Summary
    6. 4.6. Storage Technologies
      1. 4.6.1. RAC I/O Characteristics
        1. 4.6.1.1. Read Activity
        2. 4.6.1.2. Write Activity
        3. 4.6.1.3. Asynchronous I/O and Direct I/O
      2. 4.6.2. Hard Disk and Solid State Disk Drive Performance
      3. 4.6.3. RAID
        1. 4.6.3.1. RAID 0 Striping
        2. 4.6.3.2. RAID 1 Mirroring
        3. 4.6.3.3. RAID 10 Striped Mirrors
        4. 4.6.3.4. RAID 0+1 Mirrored Stripes
        5. 4.6.3.5. RAID 5
        6. 4.6.3.6. Storage Cache
        7. 4.6.3.7. RAID Summary
      4. 4.6.4. Storage Protocols for Linux
        1. 4.6.4.1. SCSI
        2. 4.6.4.2. Fibre Channel and FCoE
        3. 4.6.4.3. iSCSI
        4. 4.6.4.4. SATA
        5. 4.6.4.5. Using Block-Based Storage
        6. 4.6.4.6. Linux I/O Scheduling
        7. 4.6.4.7. NFS and NAS
        8. 4.6.4.8. Evaluating Storage Performance
    7. 4.7. Summary
  9. 5. Virtualization
    1. 5.1. Virtualization Definition and Benefits
    2. 5.2. Oracle VM
      1. 5.2.1. Oracle VM Server Architecture
        1. 5.2.1.1. Paravirtualization
        2. 5.2.1.2. Full Virtualization
      2. 5.2.2. Oracle VM Design
    3. 5.3. Oracle VM Server Installation
    4. 5.4. Oracle VM Manager Installation
    5. 5.5. Oracle VM CLI Installation and Configuration
    6. 5.6. Configuring Oracle VM
      1. 5.6.1. Network Configuration
      2. 5.6.2. Server Pool Configuration
        1. 5.6.2.1. Enabling High Availability
        2. 5.6.2.2. Configuring Shared Storage
        3. 5.6.2.3. Cluster Configuration
    7. 5.7. Installing and Configuring Guests
      1. 5.7.1. Importing a Template
      2. 5.7.2. Creating a Guest from a Template
      3. 5.7.3. Accessing a Guest
      4. 5.7.4. Configuring a Guest for RAC
    8. 5.8. Managing Domains
      1. 5.8.1. Oracle VM Agent
      2. 5.8.2. Oracle VM Manager
      3. 5.8.3. Oracle VM Manager CLI
      4. 5.8.4. The xm Command-Line Interface
        1. 5.8.4.1. Displaying Information
        2. 5.8.4.2. Managing Domains
        3. 5.8.4.3. Managing Resources
    9. 5.9. Summary
  10. 6. Linux Installation and Configuration
    1. 6.1. Selecting the Right Linux Software
    2. 6.2. Reviewing the Hardware Requirements
    3. 6.3. Drilling Down on Networking Requirements
      1. 6.3.1. Configuring a GNS or a Manual IP
      2. 6.3.2. Configuring DNS and DHCP
    4. 6.4. Downloading the Linux Software
    5. 6.5. Preparing for a Network Install
    6. 6.6. Installing Oracle Enterprise Linux 5
      1. 6.6.1. Starting the Installation
      2. 6.6.2. Installation Media Check
      3. 6.6.3. Anaconda Installation
      4. 6.6.4. Install or Upgrade
      5. 6.6.5. Disk Partitioning
        1. 6.6.5.1. Creating a Default Partitioning Scheme
        2. 6.6.5.2. Creating a Partition Manually
        3. 6.6.5.3. Creating an MBR Partition
        4. 6.6.5.4. Creating an EFI Partition
        5. 6.6.5.5. Customized Partitioning
        6. 6.6.5.6. Configuring Swap Space
        7. 6.6.5.7. Configuring RAID
      6. 6.6.6. Configuring the Boot Loader and Network
      7. 6.6.7. Selecting a Time Zone
      8. 6.6.8. Configuring the Root Password
      9. 6.6.9. Reviewing the Package Installation Defaults
      10. 6.6.10. Selecting a Package Group
      11. 6.6.11. Installing Packages
      12. 6.6.12. Setting the Final Configuration
      13. 6.6.13. Accepting the License Agreement
      14. 6.6.14. Configuring the Firewall
      15. 6.6.15. Configuring SELinux
      16. 6.6.16. Enabling kdump
      17. 6.6.17. Setting the Date and Time
      18. 6.6.18. Creating a User
      19. 6.6.19. Installing Additional CDs
    7. 6.7. Configuring Oracle Enterprise Linux 5
      1. 6.7.1. Configuring a Server with the Oracle Validated RPM
        1. 6.7.1.1. Configuring YUM
        2. 6.7.1.2. Running the Oracle Validated RPM
        3. 6.7.1.3. Using the up2date Command
      2. 6.7.2. Verifying the Oracle Validated RPM Actions
        1. 6.7.2.1. Creating the Oracle User and Groups
        2. 6.7.2.2. Configuring Kernel Parameters
        3. 6.7.2.3. Working with Shared Memory
          1. 6.7.2.3.1. Setting the kernel.shmmax Parameter
          2. 6.7.2.3.2. Setting the kernel.shmmni Parameter
          3. 6.7.2.3.3. Setting the kernel.shmall Parameter
        4. 6.7.2.4. Using Semaphores
        5. 6.7.2.5. Setting Network Parameters
          1. 6.7.2.5.1. Setting the net.ipv4.ip_local_port_range Parameter
          2. 6.7.2.5.2. Setting the net.core.* Set of Parameters
        6. 6.7.2.6. Message Queues
        7. 6.7.2.7. Setting the Number of Open Files
        8. 6.7.2.8. Configuring Asynchronous I/O
        9. 6.7.2.9. Using Magic SysRq Keys
        10. 6.7.2.10. Setting PAM Limits
        11. 6.7.2.11. Setting Kernel Boot Parameters
        12. 6.7.2.12. Setting Kernel Module Parameters
      3. 6.7.3. Post Oracle Validated RPM Configuration
        1. 6.7.3.1. Setting the Huge Pages Kernel Parameter
        2. 6.7.3.2. I/O Fencing and the Hangcheck-Timer Kernel Module
        3. 6.7.3.3. Configuring the oracle user
        4. 6.7.3.4. Creating the Oracle Software Directories
        5. 6.7.3.5. Setting Environment Variables
          1. 6.7.3.5.1. Setting the ORACLE_BASE Variable
          2. 6.7.3.5.2. Setting the ORACLE_HOME Variable
          3. 6.7.3.5.3. Configuring the ORACLE_SID Variable
          4. 6.7.3.5.4. Setting the ORA_CRS_HOME Variable
          5. 6.7.3.5.5. Setting NLS_LANG and ORA_NLS10
          6. 6.7.3.5.6. Configuring the TNS_ADMIN Variable
          7. 6.7.3.5.7. Setting the PATH Variable
          8. 6.7.3.5.8. Setting the LD_LIBRARY_PATH Variable
          9. 6.7.3.5.9. Setting the JRE_HOME and CLASSPATH Variables
          10. 6.7.3.5.10. Configuring the ORACLE_PATH and SQLPATH Variables
          11. 6.7.3.5.11. Setting the DISPLAY Variable
          12. 6.7.3.5.12. Setting the TEMP and TMPDIR Paths
        6. 6.7.3.6. Putting Environment Variables to Work
      4. 6.7.4. Completing the Linux Configuration for RAC
        1. 6.7.4.1. Configuring Hostnames and Name Resolution
        2. 6.7.4.2. Using NTP
        3. 6.7.4.3. Configuring Secure Shell
      5. 6.7.5. Configuring Shared Storage
      6. 6.7.6. Discovering and Configuring SAN Disk
        1. 6.7.6.1. Partitioning Disks
        2. 6.7.6.2. I/O Multipathing with Device-Mapper
        3. 6.7.6.3. Preparing the Partitions for ASM with ASMLIB
        4. 6.7.6.4. Preparing the Partitions for ASM with udev
          1. 6.7.6.4.1. Configuring Udev Permissions
          2. 6.7.6.4.2. Enabling Udev Persistence
      7. 6.7.7. Network Channel Bonding
      8. 6.7.8. I/O Fencing with IPMI
    8. 6.8. Summary
  11. 7. Grid Infrastructure Installation
    1. 7.1. Getting Ready for Installation
      1. 7.1.1. Obtain Software Distribution
      2. 7.1.2. Configure X Environment
        1. 7.1.2.1. Checking Prerequisites
        2. 7.1.2.2. Starting an X environment in a console window
        3. 7.1.2.3. Starting an X environment using VNC
      3. 7.1.3. Determining Configuration Type
    2. 7.2. Advanced Installation - Manual Configuration
      1. 7.2.1. Network Configuration
      2. 7.2.2. DNS Configuration
      3. 7.2.3. Choosing an Installation Option
      4. 7.2.4. Selecting an Advanced or Typical Installation Type
      5. 7.2.5. Selecting a Language
      6. 7.2.6. Configuring the Grid Plug and Play
      7. 7.2.7. Configuring the Cluster Node Information Page
      8. 7.2.8. Configuring the Network Interface Usage Page
      9. 7.2.9. Configuring the Storage Option Information Page
      10. 7.2.10. Creating an ASM Disk Group
      11. 7.2.11. Specifying an ASM Password
      12. 7.2.12. Specifying a Username and Password for IPMI
      13. 7.2.13. Configuring Privileged Operating System Groups
      14. 7.2.14. Setting the Installation Location
      15. 7.2.15. Specify the Central Inventory's Location
      16. 7.2.16. Performing Prerequisite Checks
        1. 7.2.16.1. Identifying Typical Errors
        2. 7.2.16.2. Getting More Detail
        3. 7.2.16.3. Fixup Scripts
        4. 7.2.16.4. Anatomy of Fixup Scripts
        5. 7.2.16.5. Addressing Failed Checks
      17. 7.2.17. Reviewing the Summary Page
      18. 7.2.18. Setup Page
      19. 7.2.19. Reviewing Execute Configuration Scripts
        1. 7.2.19.1. Execution Order
        2. 7.2.19.2. Running the orainstRoot.sh Script
        3. 7.2.19.3. Executing the root.sh script
      20. 7.2.20. Monitoring Configuration Assistants
    3. 7.3. Implementing an Advanced Installation for Automatic Configuration
      1. 7.3.1. Configuring a Network Configuration
      2. 7.3.2. Configuring DNS
      3. 7.3.3. Configuring DHCP
      4. 7.3.4. Setting up the Grid Plug and Play Information Page
      5. 7.3.5. Configuring the Cluster Node Information Page
      6. 7.3.6. The Summary Page
    4. 7.4. Typical Installation
      1. 7.4.1. Choosing the Installation Type
      2. 7.4.2. Specifying the Cluster Configuration Page
      3. 7.4.3. Install Locations Page
      4. 7.4.4. Reviewing the Summary Page for a Typical Installation
    5. 7.5. Installing a Standalone Server
      1. 7.5.1. Selecting an Installation Option
      2. 7.5.2. Creating an ASM Disk Group Page
      3. 7.5.3. Reviewing the Summary Page for a Standalone Installation
      4. 7.5.4. Configuring the Execute Configuration Scripts
    6. 7.6. Deinstalling the Grid Infrastructure Software
    7. 7.7. Summary
  12. 8. Clusterware
    1. 8.1. Introducing Clusterware
    2. 8.2. Examining the Hardware and Software Requirements
    3. 8.3. Using Shared Storage with Oracle Clusterware
      1. 8.3.1. Storing Cluster Information with the Oracle Cluster Registry
      2. 8.3.2. Storing Information in the Oracle Local Registry
      3. 8.3.3. Fencing with the Voting Disk
      4. 8.3.4. Recording Information with the Grid Plug and Play Profile
    4. 8.4. Using Background Processes
      1. 8.4.1. Grid Infrastructure Software Stacks
      2. 8.4.2. Drilling Down on the High Availability Stack
      3. 8.4.3. Drilling Down on the Cluster Ready Services Stack
      4. 8.4.4. Using Grid Infrastructure Agents
      5. 8.4.5. Initiating the Startup Sequence
    5. 8.5. Managing Oracle Clusterware
      1. 8.5.1. Using the Enterprise Manager
      2. 8.5.2. Using the Clusterware Control Utility
      3. 8.5.3. Managing Resources with srvctl
      4. 8.5.4. Verifying the Cluster with the CVU
      5. 8.5.5. Configuring Network Interfaces with oifcfg
      6. 8.5.6. Administering the OCR and OLR with ocrconfig
      7. 8.5.7. Checking the State of the OCR and its Mirrors with ocrcheck
      8. 8.5.8. Dumping Contents of the OCR with ocrdump
    6. 8.6. Defining Server-Side Callouts
    7. 8.7. Protecting Applications with Clusterware
      1. 8.7.1. Managing Resource Profiles
      2. 8.7.2. Configuring Active/Passive Clustering for Oracle Database
      3. 8.7.3. Configuring Active/Passive Clustering for Apache Tomcat
    8. 8.8. Using Oracle Restart
    9. 8.9. Troubleshooting
      1. 8.9.1. Resolving Startup Issues
        1. 8.9.1.1. Failing to Start OHAS
        2. 8.9.1.2. Failing to Start Agents Created by OHAS
        3. 8.9.1.3. Failing to Start the Cluster Synchronization Services Daemon
        4. 8.9.1.4. Failing to Start the Cluster Ready Services Daemon
        5. 8.9.1.5. Failing to Start the GPnP Daemon
        6. 8.9.1.6. Agents spawned by CRSD
      2. 8.9.2. Resolving Problems with Java Utilities
    10. 8.10. Patching Grid Infrastructure
    11. 8.11. Adding and Deleting Nodes
      1. 8.11.1. Adding Nodes
        1. 8.11.1.1. Checking the Prerequisites
        2. 8.11.1.2. Executing the addNode.sh Script
        3. 8.11.1.3. Finishing the Node Addition
        4. 8.11.1.4. Adding the RDBMS Software
      2. 8.11.2. Deleting Nodes
        1. 8.11.2.1. Removing the Clustered RDBMS Home
        2. 8.11.2.2. Removing the Node from the Cluster
        3. 8.11.2.3. Finishing the Node Removal
    12. 8.12. Exploring More Advanced Topics
      1. 8.12.1. Selecting non-Default Listener Ports
      2. 8.12.2. Selecting a non-Default SCAN Listener Endpoint
      3. 8.12.3. Changing the SCAN After Installation
      4. 8.12.4. Maintaining Voting Disks
        1. 8.12.4.1. Restoring Voting Disks
        2. 8.12.4.2. Moving Voting Disks into ASM
      5. 8.12.5. Maintaining Local and Cluster Registry
        1. 8.12.5.1. Dealing With a Corrupt or Inaccessible OLR
        2. 8.12.5.2. Dealing with a Corrupt or Inaccessible OCR
        3. 8.12.5.3. Moving the OCR into ASM
    13. 8.13. Summary
  13. 9. Automatic Storage Management
    1. 9.1. Introducing ASM
      1. 9.1.1. ASM Terminology
      2. 9.1.2. Supported File Types
      3. 9.1.3. ASM Management
      4. 9.1.4. ASM and RDBMS Support
    2. 9.2. ASM Installation
    3. 9.3. ASM Components and Concepts
      1. 9.3.1. ASM Instances
        1. 9.3.1.1. Instance Names
        2. 9.3.1.2. SGA
        3. 9.3.1.3. Background Processes
        4. 9.3.1.4. Parameters
      2. 9.3.2. Failure Groups
      3. 9.3.3. ASM Files
        1. 9.3.3.1. Naming Files
        2. 9.3.3.2. Aliasing Files
        3. 9.3.3.3. Managing Control Files
        4. 9.3.3.4. Understanding Extents, Allocation Units, Types, and Templates
      4. 9.3.4. Redundancy
      5. 9.3.5. Striping
      6. 9.3.6. Mirroring
      7. 9.3.7. Intelligent Data Placement
      8. 9.3.8. Access Control
        1. 9.3.8.1. Understanding Access Privileges
        2. 9.3.8.2. Preparing the ASM Disk Group
        3. 9.3.8.3. Changing File Ownership and Permissions
    4. 9.4. Maintaining ASM
      1. 9.4.1. Creating an ASM Disk Group
      2. 9.4.2. Extending an ASM Disk Group
      3. 9.4.3. Dropping Disks from an ASM Disk Group
      4. 9.4.4. Enabling Disk Discovery
      5. 9.4.5. Understanding the ASM Header
      6. 9.4.6. Installing the Grid Infrastructure
      7. 9.4.7. Re-creating the ASM Disks
    5. 9.5. ASM Cluster File System
      1. 9.5.1. Creating and Mounting an ACFS Using ASMCA
      2. 9.5.2. Creating and Mounting an ACFS Using the Command Line
      3. 9.5.3. Maintaining the ACFS
      4. 9.5.4. Using ACFS with Oracle Restart
    6. 9.6. Administering ASM
      1. 9.6.1. Using SQL*Plus to Administer ASM
        1. 9.6.1.1. Setting the Environment
        2. 9.6.1.2. Determining the User and Privilege
        3. 9.6.1.3. Knowing Your Options
        4. 9.6.1.4. Dealing with Connected Clients
        5. 9.6.1.5. Checking for Corruption
        6. 9.6.1.6. Manually Mounting a Disk Group
        7. 9.6.1.7. Dropping a Disk Group
        8. 9.6.1.8. Creating ADVM Volumes
      2. 9.6.2. ASM Administration Using SRVCTL
      3. 9.6.3. Accessing Files in ASM
      4. 9.6.4. Using Files Instead of Devices
      5. 9.6.5. Virtualization and Shared Disks
    7. 9.7. Summary
  14. 10. RDBMS Installation and Configuration
    1. 10.1. Installing the RAC Software
      1. 10.1.1. Start the Installer
      2. 10.1.2. Configuring the Security Updates Page
      3. 10.1.3. Configuring the Installation Options Page
      4. 10.1.4. Configuring the Node Selection Page
      5. 10.1.5. Configuring the Product Language Selection Page
      6. 10.1.6. Configuring the Database Editions Page
      7. 10.1.7. Configuring the Installation Locations Page
      8. 10.1.8. Configuring the Privileged Operating Systems Group Page
      9. 10.1.9. Configuring the Prerequisites Check Page
      10. 10.1.10. Reviewing the Summary Page
      11. 10.1.11. Executing Configuration Scripts
    2. 10.2. Using the Database Configuration Assistant (DBCA)
      1. 10.2.1. Starting the DBCA and Choosing an Operation
        1. 10.2.1.1. Configuring the Welcome Page
        2. 10.2.1.2. Configuring the Operations Page
      2. 10.2.2. Creating a Database
        1. 10.2.2.1. Configuring the Database Templates Page
        2. 10.2.2.2. Configuring the Database Identification Page (Admin-Managed)
        3. 10.2.2.3. Configuring the Database Identification Page (Policy-Managed)
        4. 10.2.2.4. Management Options Page
        5. 10.2.2.5. Database Credentials Page
        6. 10.2.2.6. Database File Locations Page
        7. 10.2.2.7. Setting up the Recovery Configuration Page
        8. 10.2.2.8. Configuring the Database Content Page
        9. 10.2.2.9. Configuring the Standard Database Components Page
        10. 10.2.2.10. Configuring the Initializations Parameters Page
          1. 10.2.2.10.1. Configuring the Memory Tab
          2. 10.2.2.10.2. Configuring the Sizing Tab
          3. 10.2.2.10.3. Configuring the Initialization Parameters Page
          4. 10.2.2.10.4. Configuring the Connection Mode Tab
        11. 10.2.2.11. Configuring the Database Storage Page
        12. 10.2.2.12. Configuring the Creation Options Page
      3. 10.2.3. Reviewing the Summary Page
      4. 10.2.4. Configuring the Database Options
      5. 10.2.5. Deleting a Database
      6. 10.2.6. Managing Templates
    3. 10.3. Building Database Creation Scripts
      1. 10.3.1. Setting up Admin-Managed Database Scripts
        1. 10.3.1.1. Executing the ADMIN1.sh Script
        2. 10.3.1.2. Creating the ADMIN1.sql Script
        3. 10.3.1.3. Generating the init.ora File
        4. 10.3.1.4. Executing the CreateDB.sql Script
        5. 10.3.1.5. Executing the CreateDBFiles.sql Script
        6. 10.3.1.6. Executing the CreateDBCatalog.sql Script
        7. 10.3.1.7. Executing the JServer.sql Script
        8. 10.3.1.8. Executing the xdb_protocol.sql Script
        9. 10.3.1.9. Executing the ordinst.sql Script
        10. 10.3.1.10. Executing the intermedia.sql Script
        11. 10.3.1.11. Executing the emRepository.sql Script
        12. 10.3.1.12. Executing the apex.sql Script
        13. 10.3.1.13. Executing the CreateClustDBViews.sql Script
        14. 10.3.1.14. Executing the lockAccount.sql Script
        15. 10.3.1.15. Executing the postDBCreation.sql Script
      2. 10.3.2. Building Policy-Managed Database Scripts
        1. 10.3.2.1. Executing the POLICY_1.sh Script
        2. 10.3.2.2. Executing the POLICY_1.sql Script
        3. 10.3.2.3. Executing the init.ora File for a Policy-Managed Database
    4. 10.4. Deinstalling the RDBMS Software
    5. 10.5. Summary
  15. 11. Workload Management
    1. 11.1. Introducing Services
      1. 11.1.1. Creating an Administrator Managed Database vs. Policy-Managed Database
      2. 11.1.2. Managing Services with the Database Scheduler
      3. 11.1.3. Using Services with Shared Server
    2. 11.2. Managing Services
      1. 11.2.1. Managing Services with SRVCTL
      2. 11.2.2. Managing Services with Enterprise Manager
      3. 11.2.3. Managing Services with DBMS_SERVICE
    3. 11.3. Balancing the Workload
      1. 11.3.1. Configuring Client-Side Load Balancing
      2. 11.3.2. Configuring Server-Side Load Balancing
      3. 11.3.3. Exploring the Load Advisory Framework
      4. 11.3.4. Using Transparent Application Failover
        1. 11.3.4.1. Configuring Transparent Application Failover
        2. 11.3.4.2. Using TAF with JDBC Applications
      5. 11.3.5. Implementing Fast Connection Failover
        1. 11.3.5.1. Implementing Fast Application Notification
        2. 11.3.5.2. Implementing a Fast Connection Failover Example
          1. 11.3.5.2.1. Configuring Tomcat
          2. 11.3.5.2.2. Preparing the Code
        3. 11.3.5.3. Establishing Connection Affinity
        4. 11.3.5.4. Reading FAN events using the FAN API
    4. 11.4. Using the Resource Manager
    5. 11.5. Caging an Instance
    6. 11.6. Database Resident Connection Pool
    7. 11.7. Summary
  16. 12. Oracle Performance Monitoring
    1. 12.1. Enterprise Manager Database Control
      1. 12.1.1. The Cluster Tab
      2. 12.1.2. The Database Tab
      3. 12.1.3. The Performance Tab
    2. 12.2. AWR Reports
    3. 12.3. Interpreting the RAC Statistics of an AWR Report
      1. 12.3.1. Top 5 Timed Foreground Events
      2. 12.3.2. Global Cache Load Profile
      3. 12.3.3. Global Cache Efficiency Percentages
      4. 12.3.4. Global Cache and Enqueue Services - Workload Characteristics
      5. 12.3.5. Global Cache and Enqueue Services - Messaging Statistics
      6. 12.3.6. Cluster Interconnect
      7. 12.3.7. Foreground Wait Class
      8. 12.3.8. Wait Event Histogram
      9. 12.3.9. "SQL Statement" Sections
      10. 12.3.10. RAC-Related Segment Statistics
      11. 12.3.11. Dictionary Cache Stats (RAC)
      12. 12.3.12. Library Cache Activity (RAC)
      13. 12.3.13. Global Messaging Statistics
      14. 12.3.14. Global CR Served Statistics
      15. 12.3.15. Global Current Served Statistics
      16. 12.3.16. Global Cache Transfer Statistics
      17. 12.3.17. Interconnect Statistics
      18. 12.3.18. Dynamic Remastering Statistics
    4. 12.4. Active Session History
    5. 12.5. Automatic Database Diagnostic Monitor
      1. 12.5.1. Executing an ADDM Report
      2. 12.5.2. Controlling ADDM
      3. 12.5.3. The Report Format
    6. 12.6. AWR SQL Report
    7. 12.7. Performance Monitoring Using SQL*Plus
      1. 12.7.1. GV$ Views
      2. 12.7.2. System Statistics
      3. 12.7.3. Segment Statistics
      4. 12.7.4. Global Caches Services: Consistent and Current Reads
      5. 12.7.5. Global Cache Services: Current Block Activity
      6. 12.7.6. Global Enqueue Service
      7. 12.7.7. Library Cache
      8. 12.7.8. Dictionary Cache
      9. 12.7.9. Lock Conversions
    8. 12.8. Automatic Diagnostic Repository
    9. 12.9. Summary
  17. 13. Linux Performance Monitoring
    1. 13.1. The uptime and last Commands
    2. 13.2. The ps Command
    3. 13.3. free, ipcs, pmap, and lsof
      1. 13.3.1. The free Command
      2. 13.3.2. The /proc File System
      3. 13.3.3. The /sys/devices/system/node File System
      4. 13.3.4. The ipcs Command
      5. 13.3.5. The pmap Command
      6. 13.3.6. The lsof Command
    4. 13.4. top
    5. 13.5. vmstat
    6. 13.6. strace
    7. 13.7. netstat, ss, and tcpdump
      1. 13.7.1. Looking at Interface Statistics
      2. 13.7.2. Summary Statistics
      3. 13.7.3. Listening Socket Statistics
      4. 13.7.4. Looking up Well-Known Ports
      5. 13.7.5. Reporting on Socket Statistics Using ss
      6. 13.7.6. Capturing and Displaying Network Packets
    8. 13.8. iostat
    9. 13.9. mpstat
    10. 13.10. sar and kSar
      1. 13.10.1. Configuring sar
      2. 13.10.2. Invoking sar Directly
      3. 13.10.3. Graphing the Results
    11. 13.11. Oracle Cluster Health Monitor
      1. 13.11.1. Installing the Oracle Cluster Health Monitor
      2. 13.11.2. Starting and Stopping the Oracle Cluster Health Monitor
      3. 13.11.3. Understanding the Architecture
      4. 13.11.4. Installing the Client-Side GUI
      5. 13.11.5. Viewing Current and Captured Activity
    12. 13.12. OSWatcher
      1. 13.12.1. Installing OSWatcher
      2. 13.12.2. Starting OSWatcher
      3. 13.12.3. Stopping OSWatcher
      4. 13.12.4. Viewing Results Graphically
    13. 13.13. nmon
    14. 13.14. Summary
  18. 14. Parallel Execution
    1. 14.1. Parallel Execution Concepts
      1. 14.1.1. Serial Execution
      2. 14.1.2. Parallel Execution
      3. 14.1.3. Producers and Consumers
      4. 14.1.4. Bloom Filters
      5. 14.1.5. Partitioning
    2. 14.2. Parallel Execution Configuration
      1. 14.2.1. cluster_interconnects
      2. 14.2.2. db_block_size, db_cache_size, and db_file_multiblock_read_count
      3. 14.2.3. instance_groups and parallel_instance_group
      4. 14.2.4. large_pool_size, parallel_execution_message_size, and shared_pool_size
      5. 14.2.5. parallel_adaptive_multi_user
      6. 14.2.6. parallel_automatic_tuning
      7. 14.2.7. parallel_degree_limit
      8. 14.2.8. parallel_degree_policy, parallel_min_time_threshold, and parallel_servers_target
        1. 14.2.8.1. Automatic Degree of Parallelism
        2. 14.2.8.2. Statement Queuing
        3. 14.2.8.3. In-memory Parallel Execution
      9. 14.2.9. parallel_force_local
      10. 14.2.10. parallel_io_cap_enabled
      11. 14.2.11. parallel_max_servers, parallel_min_servers, parallel_threads_per_cpu, and processes
      12. 14.2.12. parallel_min_percent
      13. 14.2.13. pga_aggregate_target
    3. 14.3. Parallel Execution Performance
      1. 14.3.1. AWR Reports
      2. 14.3.2. SQL*Plus
      3. 14.3.3. Trace Files
    4. 14.4. Summary
  19. 15. Upgrading to Oracle 11g Release 2
    1. 15.1. Upgrading Grid Infrastructure Components
      1. 15.1.1. Installing the Prerequisites
      2. 15.1.2. Running the Installer
      3. 15.1.3. Specifying Options
      4. 15.1.4. Running the Upgrade
    2. 15.2. Upgrading RAC Software
      1. 15.2.1. Running the Installer
      2. 15.2.2. Running Configuration Scripts
    3. 15.3. Preparing for the Database Upgrade
      1. 15.3.1. Identifying the Upgrade Path
      2. 15.3.2. Determine Upgrade Method
      3. 15.3.3. Testing the Upgrade Process
      4. 15.3.4. Running the pre-Upgrade Tool
      5. 15.3.5. Performing Other Checks
      6. 15.3.6. Saving Current Database Parameters
      7. 15.3.7. Backing up the Database
      8. 15.3.8. Configuring the Listener Process
    4. 15.4. Upgrading Automatically with DBUA
    5. 15.5. Upgrading a Database Manually
      1. 15.5.1. Preparing the Parameter Files
      2. 15.5.2. Preparing Password Files
      3. 15.5.3. Modifying the Initialization Parameters
      4. 15.5.4. Restarting the Database in UPGRADE Mode
      5. 15.5.5. Running the Catalog Upgrade Script
      6. 15.5.6. Configuring SPFILE
      7. 15.5.7. Running the post-Upgrade Status Tool
      8. 15.5.8. Running post-Upgrade Scripts
      9. 15.5.9. Recompiling Invalid Packages
      10. 15.5.10. Updating /etc/oratab
      11. 15.5.11. Updating Environment Variables
      12. 15.5.12. Updating the Oracle Cluster Registry
      13. 15.5.13. Setting the Initialization Parameters for the New Release
    6. 15.6. Performing the Necessary post-Upgrade Steps
      1. 15.6.1. Completing Mandatory post-Upgrade Tasks
      2. 15.6.2. Performing the Recommended Tasks
    7. 15.7. Resolving Problems in Mixed-Database Environments
    8. 15.8. Using a Swing Kit
    9. 15.9. Summary