kcrr.c Error 1031 received logging on to the standby | Oracle standby

PING[ARC1] heartbeat failed to connect to standby . error is 1031

Water supply in Buenos Aires was provided by a...
Water supply in Buenos Aires was provided by a private company from 1993 to 2006. (Photo credit: Wikipedia)

En la semana anduve Auditando un Dataguard en una Empresa de Servicios en Buenos Aires y el motivo de mi visita era ayudar al DBA local con un problema que habia surgido a partir de la reinstalacion de su SECONDARY SITE.

El error se basaba en que el proceso ARCHIVER de la base primaria estaba fallando .

Revisando el alert de la base me econtre con el siguiente error:

Errors in file /u01/app/oracle/admin/ORCL/bdump/orcl1_arc1_8881.trc:
ORA-01031: insufficient privileges
PING[ARC1]: Heartbeat failed to connect to standby 'ORCLDG'. Error is 1031.

Como tenia seguridad de que estaba ocurriendo, me diriji al trace que despliega el proceso ARC  y lo edite para mostrar al DBA que ocurria:

*** 2012-05-16 13:27:50.745 60680 kcrr.c
Error 1031 received logging on to the standby
Error 1031 connecting to destination LOG_ARCHIVE_DEST_2 standby host 'ORCLDG'
Error 1031 attaching to destination LOG_ARCHIVE_DEST_2 standby host 'ORCLDG'
ORA-01031: insufficient privileges
*** 2012-05-16 13:27:50.748 60680 kcrr.c
LGWR: Error 1031 creating archivelog file 'ORCLDG'
*** 2012-05-16 13:27:50.749 58942 kcrr.c
kcrrfail: dest:2 err:1031 force:0 blast:1
*** 2012-05-16 13:27:51.696 70891 kcrr.c
Sending online log thread 1 seq 143 [logfile 1] to standby
Opening logfile [logno 1]
LGWR: Archivelog for thread 1 sequence 143 will NOT be compressed
*** 2012-05-16 13:27:51.940 71016 kcrr.c
Shutting down [due to no more ASYNC destination]
LNS1: Doing a channel reset for next time around...

El problema se encontraba aqui: ORA-01031: insufficient privileges. Leer más “kcrr.c Error 1031 received logging on to the standby | Oracle standby”

Oracle Patch | Database Patch Apply 9352164 on RAC

10.2.0.4.4 Patch Set Update on RAC

Applying the 10.2.0.4.1 Patch Set Update (PSU)

Ante todo los saludos desde Argentina a todos mis compatriotas IberoAmericanos & Anglos.

Oracle Database Disk Structures
Oracle Database Disk Structures (Photo credit: Wikipedia)

Gracias a todos por lograr llegar a las 60.000 visitas este trimestre en curso.

Tambien a la Comunidad Oracle Hispana de la cual estoy orgulloso de ser miembro y donde he cosechado buenos amigos.

Estuve bastante ocupado con migraciones de versiones, instalaciones de cluster, aplicaciones de parches, etc y con ello anduve corto de tiempo.
Pero entre todos los articulos con material que tengo para escribir y publicar me decidi comenzar con este.
EL motivo del articulo es dar a conocer como implemente un PSU en un RAC con su Standby correspondiente tambien montada sobre un RAC.

En el proximo articulo estare explicando los motivos de la implementacion del mismo, ya que fue un caso muy particular.

Debio ser instalado como consecuencia de la aparicion de bugs, despues de haber aplicado el parche 7442260.

Espero que les sea de utilidad.

Problema:
========

Cuando instalamos el patch 7442260, nuestra rdbms comenzo arrojar varios errores ORA-07445 y provoco en varias oportunidades hangs en el cluster.

ORA-07445: exception encountered: core dump [ksuklms()+527] [SIGSEGV]" 
appears in all nodes in production after that we applied the patch 7442260

Luego de investigacion y trabajo en conjunto , desde Oracle Support nos recomendaron realizar la instalacion del 9352164: DATABASE PSU 10.2.0.4.4 (INCLUDES CPUAPR2010)

Y de ahi es donde surge este articulo que cumple como objetivo escencial instalar un PSU de oracle en un ambiente interesante.

Grid Infraestructure (clusterware 11.2.0.2) Oracle Database 10.2.0.4 Dataguard Activo. 

Vamos entonces a lo tecnico. Leer más “Oracle Patch | Database Patch Apply 9352164 on RAC”

Oracle Dataguard | How to open a standby database in read only mode

Pasos a seguir para poder ejecutar queries dentro de nuestra base de datos en standby 10G.

Esto nos puede ayudar a sacar un reporte que requiere consumo dentro de la base productiva que nos pueda llegar afectar de alguna manera la performance de la base y su operacion , relacionada con la carga proporcional de trabajo de cada nodo.
Es por ello que se realiza la extraccion del reporte en la standby que poseamos.

Ejecutar los siguientes comandos en la base de datos en standby:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE OPEN READ ONLY;

Realizamos las consultas necesarias.

Retornamos al estado anterior.

SQL> STARTUP FORCE MOUNT;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Aunque la base de datos la tengamos en modo de solo lectura, los archived logs del servidor primario se continuarán enviando al de standby, y cuando este se regrese a su estado anterior (MODO RECOVERY), todos los archived logs que se hayan acumulado serán aplicados.

En la versión 11G, Oracle permite que se ejecuten queries de consulta con el modo de recuperación activo.

Eso lo veremos en el proxímo articulo.

Oracle Dataguard | How to Add Standby redo Logs

Wireless Information System for Emergency Resp...
Image via Wikipedia

Como Agregar STANDBY REDO LOGS

Cuando decidimos trabajar con STANDBY REDOLOGS FILE es seguro que estamos por habilitar nuestra base secundaria en el modo Maximum Availability y Maximum Protection .

Un dato importante para la configuracion de los STANDBY REDOLOGS es que posean el mismo tamañano que los ONLINE REDOLOGS del sitio primario por una cuestion de performance.

Si utilizamos la consola de DG_BROKER de GRID CONTROL se encarga hacer todo de manera automatica.

Pero si lo hacemos de la forma manual es importante no olvidarnos de crearlos.

Cuando lo hago por linea de comandos como utilizo ASM , voy a dejar que OMF se encargue de crearlos con los nombres correspondientes.

Les recuerdo que en el caso de no utilizar OMF deben colocarlos con un nombre apropiado y en el path correspondiente.

Agregando los nuevos grupos

Como primer paso obtenemos en nuestra standby cuales son los REDO LOGS que tenemos en la base. Leer más “Oracle Dataguard | How to Add Standby redo Logs”

Bug 7208364: ORA-4031 (“SHARED POOL” % )”,”ASM extent pointer array”) On Stanby DataBase

Hace un tiempo que estoy siguiendo algunos errores con el dataguard que tengo en cluster, con la version 10gR2 10.2.1.0.4, y ellos ocurren en horarios aleatorios en el site donde tengo la contingencia.

Los sintomas son los siguientes:

  • Caida de la instancia dataguard que esta aplicando en maxima disponibilidad, con el error “shared pool”,”unknown object”,”sga heap(1,1)”,”ASM extent pointer array”.
  • El Dataguard broker levanta las instancias , pero no aplica más.

Leer más “Bug 7208364: ORA-4031 (“SHARED POOL” % )”,”ASM extent pointer array”) On Stanby DataBase”

DG Broker – Selecting the Apply Instance

Cuando trabajamos en un ambiente de alta disponibilidad como es el RAC de Oracle, podemos tener varias instancias de una misma base standby.

Podemos poner de Ejemplo un sitio primario como TEST y otro secundario como TESTDG.

La instalacion cuenta con tres nodos para cada sitio.

Entonces podemos decir que contamos con el siguinete escenario:

  • Tenemos tres NODOS en el sitio primario con una base TEST en RAC.
  • Tenemos tres NODOS en el sitio de contingencia para la base TESTDG, tambien en RAC.
  • El sitio primario esta configuracon con DG_BROKER.
  • El sitio secundario esta configurado con con DG_BROKER.

Cuando trabajamos con el DG BROKER, y perdemos la instancia dataguard TESTDG2 que esta aplicando, automaticamente el broker switchea al primer nodo ( o al que se encuentre disponible en caso de tener mas nodos ) y comienza aplicar en la instancia TESTDG1. Leer más “DG Broker – Selecting the Apply Instance”

ORACLE DATAGUARD – create a standby database by manual steps

RECUPERAMOS UNA BASE STANDBY SIN DUPLICATE

Para poder hacer una standby de forma manual sin tener que recurrir al duplicate database for standby,
podemos usar la forma tradicional.
Para ello como paso previo vamos a setear los parametros que sean necesarios necesarios.
Una vez que tenemos las configuraciones en forma correcta tomamos un backup y luego generamos un controlfile en la base primaria para la base standby.

run {
allocate channel disk1 device type disk
format '/u03/rman_database_backup/STBYcontrolfile.ctl';
backup current controlfile for standby;
}

Una vez que tenemos el backup tanto con el controlfile standby, pasamos del sitio primario al secundario.

[oracle@sdat0101lx]$ ls
STBYcontrolfile.ctl
JVPAR_t679670423_s345_p1_dbf
JVPAR_t679671275_s347_p1_arc
JVPAR_t679671249_s346_p1_dbf
JVPAR_t679671344_s348_p1_ctl

[oracle@sdat0101lx]$ scp STBYcontrolfile.ctl oracle@nodo1jvarlx:/u03/rman_database_backup/
oracle@nodo1jvarlx's password:
STBYcontrolfile.ctl

Leer más “ORACLE DATAGUARD – create a standby database by manual steps”