How to convert Administrator-Managed databases to Policy-Managed databases ?
The cluster database configuration can be Policy-Managed or Administrator-Managed. A Policy-Managed database has instances managed on a per-server pool basis for efficient use of resources. An Admin-Managed database has instances attached to specific servers.
The following figure shows the differences in behavior.
Some benefits of Policy-Managed configuration:
- Provides distribution on demand.
- Manages business requirements effectively.
- It scales just-in-time.
- Maximizes Data Center efficiency.
By default, there are two server pools: GENERIC and FREE. We can view the available pools as follows.
-bash-4.3$ srvctl config srvpool Server pool name: Free Importance: 0, Min: 0, Max: -1 Candidate server names: Server pool name: Generic Importance: 0, Min: 0, Max: -1 Candidate server names: oradb1,oradb2
Features of server pools:
min : (-l)
Minimum number of servers to be protected in the server pool.
max : (-u)
Maximum number of servers allowed in the server pool.
imp: (-i)
Server pool with high imp value is filled to Min values first. It determines the priority order.
You can convert a database created as Admin-Managed to a Policy-Managed database by following the steps below.
First, let’s look at our current configuration.
-bash-4.3$ srvctl config database -d TESTDB Database unique name: TESTDB Database name: TESTDB Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1 Oracle user: oracle Spfile: +DATA/TESTDB/spfileTESTDB.ora Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: TESTDB Database instances: TESTDB1,TESTDB2 Disk Groups: DATA, RECO Mount point paths: Services: Type: RAC Database is administrator managed
Let’s create a new pool. The min and max values for the new pool are set to 2.
-bash-4.3$ srvctl add serverpool -g testpool -l 2 -u 2
When we view existing pools, the newly created pool is also visible.
-bash-4.3$ srvctl config srvpool Server pool name: Free Importance: 0, Min: 0, Max: -1 Candidate server names: Server pool name: Generic Importance: 0, Min: 0, Max: -1 Candidate server names: oradb1,oradb2 Server pool name: testpool Importance: 0, Min: 2, Max: 2 Candidate server names:
We can start converting our database.
-bash-4.3$ srvctl modify database -d TESTDB -g testpool
In the database configuration, the policy will now appear as managed.
-bash-4.3$ srvctl config database -d TESTDB Database unique name: TESTDB Database name: TESTDB Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1 Oracle user: oracle Spfile: +DATA/TESTDB/spfileTESTDB.ora Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: testpool Database instances: Disk Groups: DATA, RECO Mount point paths: Services: Type: RAC Database is policy managed
Our database is policy managed. Our database will work when there is a suitable server for the testpool we defined above. We can check the status of the server pools as follows.
-bash-4.3$ srvctl status serverpool Server pool name: Free Active servers count: 0 Server pool name: Generic Active servers count: 0 Server pool name: testpool Active servers count: 2