Configure Services using both Manual and Policy Managed Methods

1. Configure Services using Manual Method
Documentación en Tahiti -> Masters Book List -> Real Application Clusters Administration and Deployment Guide -> 5 Introduction to Automatic Workload Management -> Administering Services

2. Primero veamos si nuestra BD están en modo Administrator Managed o Policy Managed

# En nuestro caso debe aparecer "Database is administrator managed"
. profile_grid
srvctl config database -d RAC

3. Creamos un servicio manualmente llamado OLTP que corra sobre RAC1 y que pueda hacer failover sobre RAC2

srvctl add service -d RAC -s OLTP -r RAC1 -a RAC2

4. Levantamos el servicio OLTP

srvctl start service -d RAC -s OLTP

5. Comprobamos donde está levantado

# El recurso "ora.rac.oltp.svc" debe estar ONLINE en rac1
crsctl stat res -t

6. Vamos a «matar» la instancia RAC1 para comprobar que el servicio OLTP hace el failover a RAC2

# Sacamos el pid del proceso PMON de RAC1
ps -ef | grep ora_pmon_RAC1 | grep -v grep | awk '{ print $2 }'
# Matamos el proceso con el pid que nos ha salido (Ej. 21588)
kill -9 21588
# Volvemos a sacar el estado de los recursos del Grid. Veremos que ora.rac.oltp.svc se levanta en rac2
crsctl stat res -t
# La instancia RAC1 se reiniciará pero el servicio quedará levantado en RAC2 a no ser que lo movamos manualmente
srvctl relocate service -d RAC -s OLTP -i RAC2 -t RAC1
# Si volvemos a comprobar el estado del recurso ora.rac.oltp.svc veremos que ha "vuelto" al nodo RAC1

7. Borramos el servicio OLTP

srvctl stop service -d RAC -s OLTP
srvctl remove service -d RAC -s OLTP

8. Configure Services using Policy Managed Method
Documentación en Tahiti -> Masters Book List -> Real Application Clusters Administration and Deployment Guide -> 3 Administering Database Instances and Cluster Databases -> Converting an Administrator-Managed Database to a Policy-Managed Database

9. Convertirmos la BD de Administrator-Managed a Policy-Managed

# Verificamos que nuestra BD está en modo Administrator-Managed
srcvtl config database -d RAC
# Comprobamos los server pools configurados en el cluster (Free y Generic)
srvctl config srvpool
# Añadimos un Server Pool al cluster
srvctl add srvpool -g oltp -l 0 -u 2
# Añadimos la BD al pool que hemos creado
srvctl modify database -d RAC -g oltp
# Verificamos que nuestra BD está en modo Policy-Managed y se encuentra en el server pool oltp
srvctl config database -d RAC

10. Creamos un servicio manualmente llamado OLTP que corra sobre el server pool OLTP

srvctl add service -d RAC -s OLTP -g oltp -c UNIFORM

11. Levantamos el servicio

srvctl start service -d RAC -s OLTP

12. Paramos y borramos el servicio

srvctl stop service -d RAC -s OLTP
srvctl remove service -d RAC -s OLTP

13. Vamos a volver a convertir la BD a modo Administrator-Managed
Para ello hay que parar la BD, eliminarla del cluster y volverla a añadir

srvctl stop database -d RAC
srvctl remove database -d RAC
srvctl add database -d RAC -n RAC -o /u01/app/oracle/product/11.2.0/dbhome_1 -p +DATA/RAC/spfileRAC.ora -a DATA,RECO
srvctl add instance -d RAC -i RAC1 -n rac1
srvctl add instance -d RAC -i RAC2 -n rac2

14. Borramos el server pool oltp

srvctl remove srvpool -g oltp