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

  • El RAC se queda en estado [ROLLING PATCH]

    Hoy vamos a ver una entrada sobre ago que puede dar mucho miedo pero que tiene una solucion muy sencila
    Pongamos que tras aplicar una serie de parches comprobamos la version de nuesrto softare en el RAC y nos encontramos lo siguiente

    [oracle@rac1~]$ sudo  $ORACLE_HOME/bin/crsctl query  crs  activeversion -f
    Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [ROLLING PATCH]. The cluster active patch level is [724960844].
    
    Oracle Clusterware patch level on node rac1is [2701864972].
    [oracle@rac1~]$ sudo  $ORACLE_HOME/bin/crsctl query  crs  softwarepatch rac2
    Oracle Clusterware patch level on node rac2 is [387459443].
    

    De alguna manera que no alcanzamos a entender ( o igual si), tenemos que tras finalizar un parcheado los parches de los dos nodos son iguales.

    Que hacemos ??

    Veamos a ver cuales son los parches que tenemos instalados.
    Lo primero que se nos viene a la cabeza es tirar del comando optch
    Y ecejutamos un
    $ORACLE_HOME/OPatch/opatch -lsinventory
    o bien
    $ORACLE_HOME/OPatch/opatch -lspatches
    Pero, para nuestra desesperacion resulta que Opatch nos dice que hay los mismos parches instalados.
    ¿que hacemos ahora?

    La solucon esta en patchgen

    Vamos a ver realmente que es lo que tenemos instalado en los nodos.
    Para ello usaremos en ambos nodos el comando
    $ORACLE_HOME/bin/kfod op=patches

    [oracle@rac1~]$  $ORACLE_HOME/bin/kfod op=patches
    ---------------
    List of Patches
    ===============
    30489227
    30489632
    30557433
    30655595
    
    [oracle@rac2~]$ $ORACLE_HOME/bin/kfod op=patches
    ---------------
    List of Patches
    ===============
    29517242
    29517247
    29585399
    30489227
    30489632
    30557433
    30655595
    

    Como podemos ver, en el rac2 nos aparecen 3 parches que no tenemos en rac1.
    El siguiente paso deberia de ser el buscar cuales son esos parches y decidir si los queremos aplicar donde no estan , o quitrlos de donde estan.
    Dado que quitar un parche suele ser mas complicado que ponerlo , vamos ha hacer esta segunda opcion y a eliminar esos 3 parches de rac2.

    Para ello,lo primero que tendremos que hacer es como usuario root

    . oaenv
     $ORACLE_HOME/crs/install/rootcrs.sh -prepatch
    

    Y tras esto, eliminaremos los parches con

    $ORACLE_HOME/bin/patchgen commit -rb 29517242 
    $ORACLE_HOME/bin/patchgen commit -rb 29517247
    $ORACLE_HOME/bin/patchgen commit -rb 29585399
    

    Una vez eliminados, comprobamos d enuevo con kfod que tenemos solamente los parches deseados, y sera en ese momento cuando cerremos la operacion con (de nuevo como root)

     $ORACLE_HOME/crs/install/rootcrs.sh -postpatch
    

    Tras esto solamente tenemos que comprobar que el estado del cluster es normal y que las versiones y parches son los correctos

    [oracle@rac1~]$) crsctl query crs softwarepatch -all
    Oracle Clusterware patch level on node rac1 is [2701864972].
    [oracle@rac1~]$ crsctl query crs activeversion  -f
    Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [NORMAL]. The cluster active patch level is [2701864972].
    [oracle@rac1~]$ crsctl query crs releasepatch
    Oracle Clusterware release patch level is [2701864972] and the complete list of patches [30489227 30489632 30557433 30655595 ] have been applied on the local node. The release patch string is [19.6.0.0.0].
    [oracle@rac2~]$ crsctl query crs releasepatch
    Oracle Clusterware release patch level is [2701864972] and the complete list of patches [30489227 30489632 30557433 30655595 ] have been applied on the local node. The release patch string is [19.6.0.0.0].
    

    Mas informacion como siempre en la documentacion de oracle

    • Troubleshooting OPatchAuto
    • KFOD, KFED, AMDU (Doc ID 1485597.1)
    • Note 1180491.1 – KFED Tool For Windows OS
    • Note 1346190.1 – KFED.PL for diagnosing – ORA-15036 ORA-15042 ORA-15020 ORA-15033
    • Note 1505005.1 – Where to find kfed utility before Oracle Grid Infrastructure is installed

    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

    Configurar el CRS de la 12.2 sin tener ASM

    Hoy vamos a ver una entrada sencilla que puede habernos traido dolores de cabeza.

    Con los nuevos cambios en la instalacion en la version 12.2 al instalar el crs ( que no deja de ser un «unzip») nos encontramos que el binario crsctl no esta lincado.

    Cuando intentamos usar el configuratdor del CRS ($GI_HOME/gridSetup.sh ), nos encontramos que nos exige el ASM para poder continuar, asi que
    ¿Como podemos configurar nuestro CRS sin ASM ?
    La solucion es muy sencilla, y pasa por ejecutar el comando roothas.pl
    Como usuario root ejecutaremos

    export GI_HOME=/u01/app/oracle/product/12.2.0.1/grid
    $GI_HOME/perl/bin/perl -I $GI_HOME/perl/lib -I $GI_HOME/crs/install
    $GI_HOME/crs/install/roothas.pl

    Con esto conseguiremos el ultimo proceso de lincado , que es el que crea los binarios crscrl y la configuracion de nuestro grid a nivel de sistema operativo.

    Hemos de tener en cuenta que , este proceso no crea el listener, asi que, como usuario oracle y con las variables de entorno del grid cargado deberemos de ejecutar despues

    srvctl add listener -oraclehome $ORACLE_HOME -listener LISTENER