10g RAC Tips for Better Use


This section discusses several best-practice tips and techniques for managing your 10g RAC environment. This section is not intended to serve as a "RAC how-to," but rather to document several operational essentials we have experienced for ourselves at various customer sites.

Cluster Interconnect

The cluster interconnect is the backbone of RAC performance. Having a poorly performing interconnect would cause many problems in any 9i or 10g RAC environment. Two main RAC components use the cluster interconnect for traffic between the nodes: Global Enqueue Service (GES) and Global Cache Service (GCS). Although the GES is used to synchronize access for various database resources, the GCS serves as the primary component of Cache Fusion. Cache Fusion, as you probably know from Oracle 9i, is used to eliminate the need for disk I/O (known as a disk ping in 8i) by allowing nodes to share contents of their buffer cache through the interconnect. Knowing this, DBAs must ensure that all GES and GCS traffic and block transfers are using the correct dedicated private interconnect and not being inadvertently routed over a public network. To check the current IP address assigned to your interconnect, you can run the following SQL*PLUS commands to generate a trace file in your udump directory, located via the USER_DUMP_DEST initialization parameter:

 SQL> oradebug setmypid SQL> oradebug ipc SQL> oradebug tracefile_name 

Generally, the use of gigabit ethernet with UDP (unreliable datagram protocol) has proven to be very solid in most RAC environments, but depending on the cluster file system used, we have learned that the use of low-latency or user-mode IPC protocol (such as Veritas LLT) rather than UDP is preferred wherever possible. Your interconnect interface should use at the very least a 1GB transmission rate.

SGA Components

In most RAC environments, you want to increase your default buffer cache and share pool sizes more than you did as a single-node database. A good rule of thumb is to increase both pools by 15% due to the extra overhead associated with Oracle RAC. Because Cache Fusion is the fundamental component of RAC, you need to make more room for past image buffers (PI). A past image version of a block is generated before the current block is shipped via Cache Fusion. Accessing data that is already in cache is always more efficient.

Also, you must avoid unnecessary parsing where necessary. Library cache and row cache operations are globally coordinated, so excessive parsing means additional interconnect traffic.

Tablespaces

If you aren't already doing so, you need to use local managed tablespaces. Introduced with Oracle 8i and now enforced with Oracle 10g, using LMTs will save you the data dictionary hits on the UET$ and FET$ tables. You should also be using the 9i feature, automatic segment-space management (ASSM), in conjunction with LMTs. ASSM removes the overhead of dealing with freelists and freelist groups and uses bitmaps, similar to LMTs. Also, read-only tablespaces should be used to hold all read-only tables for your environment. Moving these tables to read-only tablespaces reduces interconnect traffic because reading from disk does not result in global cache gets.

Tables and Indexes

Nonselective index blocks can be subject to inter-instance contention, which leads to increased cache transfers and degrading DML performance. When necessary, use the 9i Alter Index Monitoring Usage feature to monitor the usage of any target indexes and remove any that are not being used.

If you are using sequences to populate table values, it is recommended that you cache your sequences using the CACHE keyword and increase the default cache value (which is currently 20).

Function-Dependent Routing

Eliminate disk hot spots and contention by manually routing specific users or functions to specific nodes within the clusters. Known as application partitioning, this procedure may save you from performance hits during peak times and overall interconnect traffic contention. This method does not require any application and/or code changes.

Object Partitioning

You can reduce contention on heavily used blocks on tables and indexes by using range, list, or hash partitioning. Range or list partitioning would be effective in conjunction with function-dependent routing. Hash partitioning may help to reduce buffer-busy contention by spreading out the buffer access distribution patters.

Running 10g RAC with 9i RAC in Same Environment

Oracle support does not recommend (but will support) running 9i RAC and 10g RAC in the same production environment due to high availability issues. Basically, this recommendation is due to how the 10g CRS algorithm (managed by the OCSSD daemon) handles split brain conditions. When a split brain occurs, the cluster is reconfigured into multiple partitions with each partition forming its own subcluster without the knowledge of each other existing. This would lead to corruption of the shared OCR, as each subcluster would race to assume ownership of the OCR. 10g CRS is designed to prevent split brain conditions by rebooting one or more nodes automatically to prevent OCR corruption, thereby affecting any critical applications that are running under Oracle 9i RAC on the same node.

CRS and ASM

Because CRS creates only one copy of the OCR and voting file, we recommend using third-party mirroring software to protect these files with 10g Release 1. 10g Release 2, as discussed in the next section, eliminates the need of third-party mirroring support by supporting multiple copies of these files.

Now that Oracle 10g ships with its own version of volume manager and file system, ASM is now considered the new best practice for cluster storage management.



    Oracle Database 10g Insider Solutions
    SUSE LINUX Enterprise Server 9 Administrators Handbook
    ISBN: 672327910
    EAN: 2147483647
    Year: 2006
    Pages: 214

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net