Error PRKO-2207 : Warning:–spfile option has been deprecated and will be ignored

Hoy me he encontrado con un eroor curioso.
Cuando he intentado modificar la ubicacionn del spfile con el comando

srvctl modify asm -spfile +DATA/ASM/ASMPARAMETERFILE/initasm.ora

El sistema me ha devuelto el error
PRKO-2207 : Warning:-spfile option has been deprecated and will be ignored

Cual ha sido mi sorpresa al ver que la modificacion del spfile o el listener en el asm con el comando srvctl esta deprecated.
Segun lanota de soporte «PRKO-2207 : Warning:-spfile option has been deprecated and will be ignored» for ASM instance (Doc ID 2227045.1) la manera de llevarlo a cabo ahora es mediante os comandos de oracle, estoson:

Comandos basicos del RAC II añadir bases de datos

Hoy vamos a seguir con la serie de entradas de comandos basicos de administracion de RAC.
Hoy vamos a centrarnos en añadir bases de datos y mover los recursos del cluster

Añadir una base de datos

Para anadir una base de datos esta tendra que tener en el init.ora los parametros

  • CLUSTER_DATABASE=TRUE
  • CLUSTER_DATABASE_INSTANCES=2
  • TEST1.INSTANCE_NUMBER=1
  • TEST2.INSTANCE_NUMBER=2
  • TEST1.THREAD=1
  • TEST2.THREAD=2
  • TEST1.UNDO_TABLESPACE=’UNDOTBS1′
  • TEST2.UNDO_TABLESPACE=’UNDOTBS2′

    or supuesto,deberemos de contar con tantos grupos de UNDO y threads de REDO como nodos vayamos a tener.
    Una vez tenemos esto, la registraremos en el crs con los comandos

    srvctl add database  -db TEST-instance IBTEST1 -spfile +DATA/TEST/spfileTEST.ora -diskgroup "DATA,FRA,REDO1,REDO2"-oraclehome $ORACLE_HOME
    srvctl add instance -d TEST-i TEST1 -n rac1.pamplona.name
    srvctl start database -db TEST
    srvctl add instance -d TEST-i TEST2 -n rac2.pamplona.name
    srvctl start  instance -db IBTES -i IBTEST2 
    

    Mas entradas para dummies sobre RAC:
    Comandos basicos en Orace RAC
    Comandos basicos del RAC II
    Eliminar un nodo del rac

  • Comandos basicos en Orace RAC

    Hoy vamoa a volver a las entradas para dummies, esta vez con los comandos basicos del RAC

    Como paramos un RAC?

    La manera mas sencilla escon permisos de root mediante el comando

    export ORACLE_SID=+ASM1
    export ORAENV_ASK=NO
    . oraenv
    sudo $ORACLE_HOME/bin/crsctl stop crs
    sudo $ORACLE_HOME/bin/crsctl disable crs 
    

    A la hora de arrancarlo ejecutaremos

    export ORACLE_SID=+ASM1
    export ORAENV_ASK=NO
    . oraenv
    sudo  $ORACLE_HOME/bin/crsctl enable crs
    sudo $ORACLE_HOME/bin/crsctl start crs  
    

    Como arrancamos/paramos una base de datos

    srvctl stop database -d $DB_NAME
    
    srvctl start database -d $DB_NAME
    

    Como arrancamos/paramos una instancia en un nodo

    Podemos hacerlo de varias maneras

    srvctl start instance -d $DB_NAME-n $NODE_NAME 
    srvctl start instance -d $DB_NAME -i $INSTANCE_NAME
    

    Para pararla seria similar cambiando el start por stop

    srvctl stop instance -d $DB_NAME-n $NODE_NAME 
    srvctl stop instance -d $DB_NAME -i $INSTANCE_NAME
    

    Parar elementos dedicados del RAC

    Hay algunos componentes dedicados del RAC que no funcionan con la sintaxsis estandard, estos son:

    • Management database
    • ASM prxy

    Administracion de la Management database

    Los comados que podemos llevar a cabo sobre la management database son stop y relocate

    srvctl start mgmtdb -n  $NODENAME 
    
    srvctl stop mgmtdb -n $NODENAME 
    
    srvctl relocate mgmtdb -n $OTRO_NODO
    

    Administracion del ASM proxy

    srvctl start res ora.proxy_advm -n  $NODENAME 
    
    srvctl stop res ora.proxy_advm -n  $NODENAME
    

    comandos sobre el CRS

    Podemos ver la entrada Comprobar versiones del cluster

    Comandos sobre el OCR

    Podemos verlos en la entrada Oracle cluster registry OCR (componentes del grid)

    Comandos sobre los voting disk

    Podemos verlos en la entradas
    Redundancia de los votingdisk en ASM
    Voting disk (componentes del grid)

    Comandos sobre ADVM

    Introducción al ADVM

    Mas entradas para dummies sobre RAC:
    Comandos basicos en Orace RAC
    Comandos basicos del RAC II
    Eliminar un nodo del rac

    Apagando instancias

    Hoy vamos aver un pequeño script que nos facilitara el apagar todas las bases de datos de un servidor aunque no esten incluidas en el rac

    Si nos fijamos un poco en el script, podemos ver como las funciones de apagado estan comentadas, esto es una mera medida de seguridad para evitar posibles errrores de «copy & paste »

    [cc lang=»shell»]
    #!/bin/bash
    #
    #
    # Name: stop_oratab_alone.sh
    # Desc: Stops all oratab databases (not RAC)

    function estado
    {
    echo » The status of $ORACLE_SID is:»
    sqlplus -s «/as sysdba» << EOF 2>>/dev/null
    set linesize 400;
    column host_name format a30;
    column instance_name format a20;
    column Started format a25;
    column uptime format a60;
    select
    host_name,
    instance_name,
    to_char(startup_time,’DD-MON-YYYY HH24:MI:SS’) Started,
    ‘Uptime : ‘ || floor(sysdate – startup_time) || ‘ days(s) ‘ ||
    trunc( 24*((sysdate-startup_time) –
    trunc(sysdate-startup_time))) || ‘ hour(s) ‘ ||
    mod(trunc(1440*((sysdate-startup_time) –
    trunc(sysdate-startup_time))), 60) ||’ minute(s) ‘ ||
    mod(trunc(86400*((sysdate-startup_time) –
    trunc(sysdate-startup_time))), 60) ||’ seconds’ uptime
    from
    sys.v_\$instance;
    EOF

    }

    function apagar
    {
    #srvctl stop database -d ${ORACLE_DB} ${ORACLE_SID} -stopoption IMMEDIATE

    }

    function test_status
    {
    srvctl status database -d ${ORACLE_DB} ${ORACLE_SID} RED=’\033[0;31m’
    GREEN=’\033[0;32m’
    NC=’\033[0m’
    COUNT=` ps -ef |grep smon |grep -v grep | grep $ORACLE_SID|wc -l `
    if [ ${COUNT} -ne 0 ]; then
    printf «${RED}FAIL${NC} There are ${COUNT} smon_${ORACLE_SID} processes\n»
    else
    printf «${GREEN} OK ${NC} There is not any smon_${ORACLE_SID} process\n»
    fi
    }

    export ORAENV_ASK=NO
    export NODO=`hostname -a`
    for i in `cat /etc/oratab |tr ‘:’ ‘ ‘ |awk ‘{ print ($1)’}|grep -v «#»|grep -v «+»|grep -v «-» |grep -v [1-9]`
    do
    clear
    ORACLE_DB=$i
    ORACLE_SID=$i
    . oraenv 2>/dev/null
    export ORACLE_SID=`ps -ef|grep pmon|grep $i |tr ‘_’ ‘ ‘|awk ‘{ print ($10)’}`
    echo «New oracle SID=$ORACLE_SID»
    estado;
    #apagar
    test_status;

    read
    echo «[press any key]»
    done

    [/cc]

    Este script tiene una particularidad, y es que no esta pensado para usarse en RAC, para usarse en un RAC solamente habra que modificar la sintaxsis de apagado incluyendo el instance name y el nodo