dba:oracle:howtos:convert_database_into_resource
Table of Contents
[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 ACTIONSCRIPT es un script más abajo documentado y los “HOSTINGMEMBERS” 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 <<EOF connect / as sysdba shutdown immediate EOF EXITCODE=$? } # DB Startup start() { echo "Starting Instance ${ORA_SID}..." sqlplus /nolog <<EOF connect / as sysdba startup EOF EXITCODE=$? } # DB Check check() { local PMONPROCCESS="ora_pmon_${ORA_SID}" if [[ "$(/bin/ps waux | /bin/egrep "${PMONPROCCESS}$" | /bin/grep -v grep)" ]] then EXITCODE=0 else EXITCODE=1 fi } # Clean = SHUTDOWN ABORT clean() { echo "Aborting Instance ${ORA_SID}..." sqlplus /nolog <<EOF connect / as sysdba shutdown abort EOF EXITCODE=$? } case "$1" in start) start ;; stop) stop ;; check) check ;; clean) clean ;; *) echo "USAGE: $0 {start|stop|check|clean}" EXITCODE=1 ;; esac exit $EXITCODE
Variables a tener en cuenta:
Variable | Descripción | |
---|---|---|
ORASID=“DIVAPRE” | Usuario de oracle | |
export CRSHOME=“/u01/app/11.2.0/grid” | Path a los scripts | |
export BASEPATH=“/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:” | ${ORACLEHOME} | Fichero con la configuración básica de la instacia |
dba/oracle/howtos/convert_database_into_resource.txt · Last modified: 2023/01/31 08:24 by dodger