5 Using Server Pools with Oracle RAC

Understand the server pool concepts in Oracle Real Application Clusters (Oracle RAC) environments.

5.1 Policy-Managed Clusters and Capacity Management

Starting with Oracle Clusterware 11g release 2, resources that Oracle Clusterware manages are contained in logical groups of servers called server pools.

Resources are hosted on a shared infrastructure and are contained within server pools. Resources are no longer defined as belonging to a specific instance or node. Instead, the priority of resource requirements is defined. You can use a cluster configuration policy set to provide dynamic management of cluster policies across the cluster.

5.1.1 Server Pools and Server Categorization

You can manage servers dynamically using server pools by identifying servers distinguished by particular attributes, a process called server categorization.

In this way, you can manage clusters made up of heterogeneous nodes.

5.1.2 Server Pools and Policy-Based Management

With policy-based management, database administrators specify the server pool (excluding Generic or Free) in which the database resource runs.

Policy-based management:

  • Enables dynamic capacity assignment when needed to provide server capacity in accordance with the priorities you set with policies

  • Enables allocation of resources by importance, so that applications obtain the required minimum resources, whenever possible, and so that lower priority applications do not take resources from more important applications

  • Ensures isolation where necessary, so that you can provide dedicated servers in a cluster for applications and databases

  • Enables policies to be configured to change pools in accordance with business needs or application demand, so that pools provide the right service at the right time

Applications and databases running in server pools do not share resources. Because server pools do not share resources, they isolate resources where necessary, but enable dynamic capacity assignments as required. Together with role-separated management, this capability addresses the needs of organizations that have standardized cluster environments, but allow multiple administrator groups to share the common cluster infrastructure.

Oracle Clusterware efficiently allocates different resources in the cluster. You need only to provide the minimum and maximum number of nodes on which a resource can run, combined with a level of importance for each resource that is running on these nodes.

See Also:

5.1.3 How Server Pools Work

Server pools divide the cluster into groups of servers hosting singleton and uniform database services and applications.

Server pools distribute a uniform workload (a set of Oracle Clusterware resources) over several servers in the cluster. For example, you can restrict Oracle databases to run only in certain server pools. When you enable role-separated management, you can grant permission to operating system users to use server pools.

You manage server pools that contain Oracle RAC databases with the Server Control (SRVCTL) utility. Use the Oracle Clusterware Control (CRSCTL) utility to manage all other server pools. Only cluster administrators have permission to create top-level server pools.

Top-level server pools:

  • Logically divide the cluster

  • Are always exclusive, meaning that one server can only reside in one particular server pool at a certain point in time

5.1.4 Default Server Pools

When Oracle Clusterware is installed, two server pools are created automatically: Generic and Free.

All servers in a new installation are assigned to the Free server pool, initially. Servers move from Free to newly defined server pools automatically. The Free Server Pool

The Free server pool contains servers that are not assigned to any other server pools.

The attributes of the Free server pool are restricted, as follows:

  • SERVER_NAMES, MIN_SIZE, and MAX_SIZE cannot be edited by the user

  • IMPORTANCE and ACL can be edited by the user The Generic Server Pool

The Generic server pool stores any Oracle Database that is not policy-managed.

Additionally, the Generic server pool contains servers with names you specified in the SERVER_NAMES attribute of the server pools that list the Generic server pool as a parent server pool.

The Generic server pool's attributes are restricted, as follows:

  • No one can modify configuration attributes of the Generic server pool (all attributes are read-only)

  • When Oracle Database Configuration Assistant (DBCA) or SRVCTL specifies a server name in the HOSTING_MEMBERS resource attribute, Oracle Clusterware only allows it if the server is one of the following:

    • Online and exists in the Generic server pool

    • Online and exists in the Free server pool, in which case Oracle Clusterware moves the server into the Generic server pool

    • Online and exists in any other server pool and the user is either a cluster administrator or is allowed to use the server pool's servers, in which case, the server is moved into the Generic server pool

    • Offline and the user is a cluster administrator

5.2 Oracle RAC Database and Server Pools

Oracle RAC databases support two different management styles and deployment models.


Deployment is based on server pools, where database services run within a server pool as singleton or uniform across all of the servers in the server pool. Databases are deployed in one or more server pools and the size of the server pools determine the number of database instances in the deployment. Policy management allows clusters and databases to expand or shrink as requirements change.

A policy-managed database is defined by cardinality, which is the number of database instances you want running during normal operations. A policy-managed database runs in one or more database server pools that the cluster administrator creates in the cluster, and it can run on different servers at different times. A database instance starts on all servers that are in the server pools defined for the database.

Clients can connect to a policy-managed database using the same SCAN-based connect string no matter which servers they happen to be running on at the time.


Deployment is based on the Oracle RAC deployment types that existed before Oracle Database 11g release 2 (11.2) and requires that you statically configure each database instance to run on a specific node in the cluster, and that you configure database services to run on specific instances belonging to a certain database using the preferred and available designation.

When you review the database resource for an administrator-managed database, you see a server pool defined with the same name as the Oracle database. This server pool is part of a special Oracle-defined server pool called Generic. Oracle RAC manages the Generic server pool to support administrator-managed databases. When you add or remove an administrator-managed database using either SRVCTL or Oracle Database Configuration Assistant (DBCA), Oracle RAC creates or removes the server pools that are members of the Generic server pool.

See Also:

5.3 About Creating Server Pools for Oracle RAC Databases

You can create a server pool with Oracle Database Configuration Assistant while creating an Oracle RAC database, but Oracle recommends that you create server pools before you deploy database software and databases.

Oracle also recommends that you perform the following steps:

  • Enable role separation before you create the first server pool in the cluster.

  • Create and manage server pools using configuration policies and a respective policy set.

You can implement role-separated management in one of two ways: Vertical or Horizontal.

Vertical Implementation (Between Layers)

Vertical implementation describes a role separation approach based on different operating system users and groups used for various layers in the technology stack. Permissions on server pools and resources are granted to different users (and groups) for each layer in the stack using access control lists. Oracle Automatic Storage Management (Oracle ASM) offers setting up role separation as part of the Oracle Grid Infrastructure installation based on a granular assignment of operating system groups for specific roles.

Horizontal Implementation (Within One Layer)

Horizontal implementation describes a role separation approach that restricts resource access within one layer using access permissions for resources that are granted using access control lists assigned to server pools and policy-managed databases or applications.

For example, consider an operating system user called grid, that installs Oracle Grid Infrastructure and creates two database server pools. The operating system users ouser1 and ouser2 must be able to operate within a server pool, but must not be able to modify those server pools and withdraw hardware resources from other server pools either accidentally or intentionally.

See Also:

5.4 Oracle RAC One Node and Server Pools

Oracle RAC One Node supports the use of server pools, with some limitations.

Note the following about Oracle RAC One Node and server pools:

  • Oracle RAC One Node runs only in one server pool. This server pool is treated the same as any other server pool.

  • Online relocation of an Oracle RAC One Node database instance permits planned migrations of an Oracle RAC One Node database from one node to another node. Relocations must always be within a server pool.