Use of Server Pool & Policy Concept in RAC Environment

Explain use of Server pool & policy concept in RAC Environment

Resources managed by Oracle Clusterware are contained in logical groups of servers called server pools.
A database administrator uses SRVCTL to create a server pool for servers hosting a database or database service.
A clusterware administrator uses CRSCTL to create server pools for non-database use, such as creating a server pool for servers hosting an application.

Server pools divide the cluster into logical groups of servers hosting both singleton and uniform applications.
UNIFORM means application load is distributed on all nodes present in Server pool.
SINGLETON means application is running on single node running in Server Pool.

Free Server Pool
Free server pool contains servers that are not assigned to any other server pools. When we install Oracle Clusterware then all server by default assigned to Free Server Pool.

Generic Server Pool
Generic server pool stores any server that is not in a top-level server pool and is not policy managed. Servers that host non-policy-managed applications.

Note: SRVCTL or CRSCTL to create server pools for databases and other application.

Oracle Clusterware continues to assign servers to server pools

1. Until all server pools are filled in order of importance to their minimum (MIN_SIZE).
2. Until all server pools are filled in order of importance to their maximum (MAX_SIZE).
3. By default, any servers not placed in a server pool go into the Free server pool.

Note: If free server pool importance value is greater than servers move to free server pool if minimum value reached on low importance server pool.

Attributes used

MIN_SIZE: The minimum number of servers the server pool should contain.
MAX_SIZE: The maximum number of servers the server pool should contain.
IMPORTANCE: A number from 0 to 1000 (0 being least important).

Check Server pool information

crsctl status serverpool pool1 -p

Modify the server pool attribute
Created two server pool policy having different uses in day time and night time.
In day time app1 need two server and app2 need 1 server and at night app1 need 1 server and app2 need 2 server. So we created two policy DAYTIME or NIGHTTIME.

crsctl modify serverpool pool1 -attr "MIN_SIZE=2,MAX_SIZE=2" -policy DayTime
crsctl modify serverpool pool2 -attr "MIN_SIZE=1,MAX_SIZE=1" -policy DayTime

crsctl modify serverpool pool1 -attr "MIN_SIZE=1,MAX_SIZE=1" -policy NightTime
crsctl modify serverpool pool2 -attr "MIN_SIZE=2,MAX_SIZE=2" -policy NightTime

Activate the policy

-- Activate the policy daytime
crsctl modify policyset -attr "LAST_ACTIVATED_POLICY=DayTime"

-- Switch to activate the policy nightime
crsctl modify policyset -attr "LAST_ACTIVATED_POLICY=NightTime"

Check status of Server pool

crsctl stat serverpool

Add serverpool in database

srvctl add database -serverpool "serverpool1,serverpool3"

Create backup of policy before changes

crsctl status policyset -file file_name

Check the resource task

crsctl status resource -t

Add or modify a database instance you can configure load-aware resource

srvctl modify database -db db_unique_name -cpucount cpu_count -memorytarget memory_target

Note: cpu_count refers to the number of workload CPUs and memory_target refers to the target memory,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.