====== [HOWTO] Converting a Database into a clusterware resource ======
====== Descripción ======
Como convertir una bbdd en un recurso del clusterware de oracle para poder pivotarla de nodo en un entorno activo-pasivo.
====== Howto ======
* Tomo la variable ORACLESID como nombre de la base de datos.
* Exportamos y CONSERVAMOS la configuración actual de la bbdd:
crsctl status resource ora.${ORACLESID,,}.db -p > crsctl_${ORACLESID,,}.txt
cp -pfv crsctl_${ORACLESID,,}.txt crsctl_${ORACLESID,,}.txt.orig
* Paramos la BBDD
* Eliminamos la configuración actual:
srvctl remove database -d ${ORACLESID,,}
* Editar el fichero de recursos:
vim crsctl_${ORACLESID,,}.txt
* Y dejar los siguientes parámetros de configuración:
NAME
TYPE
ACL
ACTION_SCRIPT
ACTION_FAILURE_TEMPLATE
ACTIVE_PLACEMENT
AUTO_START
CARDINALITY
CHECK_INTERVAL
DEGREE
DESCRIPTION
ENABLED
HOSTING_MEMBERS
LOAD
NOT_RESTARTING_TEMPLATE
OFFLINE_CHECK_INTERVAL
PLACEMENT
PROFILE_CHANGE_TEMPLATE
RESTART_ATTEMPTS
SCRIPT_TIMEOUT
START_DEPENDENCIES
START_TIMEOUT
STATE_CHANGE_TEMPLATE
STOP_DEPENDENCIES
STOP_TIMEOUT
UPTIME_THRESHOLD
* Cambiar las variables:
ACTION_SCRIPT=/u01/app/11.2.0/grid/crs/public/action_${ORACLESID}
HOSTING_MEMBERS=node1 node2
* Donde ACTION_SCRIPT es un script más abajo documentado y los "HOSTING_MEMBERS" son los nodos donde puede ejecutarse la BBDD.
* Y añadimos el recurso:
crsctl add resource ${ORACLESID,,}.db -type cluster_resource -file crsctl_${ORACLESID,,}.txt
===== Script de Acción =====
vim /u01/app/11.2.0/grid/crs/public/action_${ORACLESID}
#!/bin/bash
# Environment variables
export ORA_SID="DIVAPRE"
export ORA_USER="oracle"
export CRS_HOME="/u01/app/11.2.0/grid"
export CRS_HOME_SCRIPT=${CRS_HOME}/crs/public
export EXITCODE=0
export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:"
export DB_HOME=/u01/app/oracle/product/11.2.0/db
. /home/oracle/vars_${ORA_SID}
# Database start, stop, check, clean
# DB STOP
stop() {
echo "Stopping Instance ${ORA_SID}..."
sqlplus /nolog <
Variables a tener en cuenta:
^ Variable ^ Descripción ^
| ''ORA_SID="DIVAPRE"'' | SID de la instancia |
| ''export ORA_USER="oracle"'' | Usuario de oracle |
| ''export CRS_HOME="/u01/app/11.2.0/grid"'' | Directorio de instalación del clusterware |
| ''export CRS_HOME_SCRIPT=${CRS_HOME}/crs/public'' | Path a los scripts |
| ''export BASE_PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:"'' | Definición básica del PATH |
| ''export DB_HOME=/u01/app/oracle/product/11.2.0/db'' | ''${ORACLE_HOME}'' |
| ''. /home/oracle/vars_${ORA_SID}'' | Fichero con la configuración básica de la instacia |