3 comments on “ORA-00201: control file version 10.2.0.4.0 incompatible with ORACLE version 10.2.0.3.0”

ORA-00201: control file version 10.2.0.4.0 incompatible with ORACLE version 10.2.0.3.0

DSCN0023
Image by Gianluca d'Arcangelo ☁ via Flickr

Problemas de compatibilidad entre versiones.

Cuando restoreamos un backup generado en una version superior ( en nuestro caso 10.2.0.4 ) y lo desplegamos en un ambiente que está en la misma versión , podemos incurrir en un problema si no tenemos en cuenta que los parametros esten bien configurados.

[oracle@linuxdat128 diario]$ rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Thu Nov 18 17:58:19 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: ABAP (not mounted)

RMAN> startup nomount

database is already started

RMAN> restore controlfile from '/ch01/tsm/prepro/20101118_ABAP_DIARIO_DBID2419644494_s15541_p1_ctl';

Starting restore at 18-NOV-10
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=168 devtype=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:27
output filename=+SAPA_DG1/sapa/controlfile/current.432.735415149
Finished restore at 18-NOV-10

RMAN> alter database mount;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 11/18/2010 17:59:55
ORA-00201: control file version 10.2.0.4.0 incompatible with ORACLE version 10.2.0.3.0
ORA-00202: control file: '+SAPA_DG1/sapa/controlfile/current.432.735415149'

RMAN> quit
2 comments on “ORA-02291: integrity constraint (RMAN.RLH_F1) violated”

ORA-02291: integrity constraint (RMAN.RLH_F1) violated

PROBLEMAS CON RMAN : REGISTER DATABASE – UNREGISTER DATABASE

Me disponia a realizar la tarea de agregar una base de desarrollo a los backups automaticos con RMAN por una solictud de gente de ese departamento ya que hace un tiempo la tenian abandonada y estaban teniendo una fuerte actividad developer. Mi sorpresa fue mayuscula cuando me intento loguear para registrarla en el catalogo de RMAN y probrar un backup de controlfile arrojandome el error ORA-02291

[oracle@dat1010lx bin]$ rman target / catalog=rman@catrman

Recovery Manager: Release 10.2.0.4.0 - Production on Thu Nov 4 16:29:34 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: POTDESA (DBID=3043094951)
recovery catalog database Password:
connected to recovery catalog database

RMAN> register database;

starting full resync of recovery catalog
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of register command at 11/04/2010 16:29:46
RMAN-03014: implicit resync of recovery catalog failed
RMAN-03009: failure of full resync command on default channel at 11/04/2010 16:29:46
ORA-02291: integrity constraint (RMAN.ORL_F1) violated - parent key not found

RMAN> quit

El error estaba ocurriendo por que los chicos del team habian registrado la base para automatizar la tarea, y mientras se resincornizaba

Spfile errors – ORA-07446: sdnfy: bad value ” for parameter

Trabajando en la restauración de un nuevo ambiente el cual sufría una modificación de parámetros de la base para una migración, me encontre con el siguiente error: ORA-07446: sdnfy : bad value ” for parameter.

SQL> startup nomount pfile='/u01/app/oracle/product/10.2.0/db_MANUPRO/dbs/initMANUPRO.ora.RES';
ORA-00444: background process "MMAN" failed while starting
ORA-07446: sdnfy: bad value '' for parameter .

Entonces abro el nuevo archivo pfile que quería utlizar y me pongo a revisar cada uno de los parámetros.

Que encontre ?

1 comment on “Command srvctl without SUDO – CRS-0254: authorization failure”

Command srvctl without SUDO – CRS-0254: authorization failure

Siguiendo desde un poco con el tema de seguridad a nivel usuarios de OS, por politica tambien puede ocurrir que no podamos hacer sudo a comandos de administración impersonandonos en el usuario oracle.

Cuando trabajamos en RAC la cosa se pone un poco mas dificil, ya que debemos utilizar comandos de cluster que suben y bajan instancias , entre otras tareas.

Vamos a trabajar en nuestro ejemplo con el comando srvctl que es el más familiar, por lo que venimos posteando y por que es el mismo concepto para el resto de los comandos que precisamos.

Si quisieramos ejecutar comandos de oracle con nuestro usuario ( en este ejemplo useros ) deberiamos:

  • Verificar que estemos en el grupo oinstall para ejecucion de algunos comandos que no impliquen logueranos a la base.
  • Verificar que estemos en el grupo dba en el caso que nuestro usuario se pueda loguear a la base con privilegios dba.
  • Verificar que tengamos algun script que exporte las variables de entorno , para poder ejecutar estos comandos.

Ahora que verificamos estos pasos, estamos en condiciones de hacer :

sqlplus /
lsnrctl
dgmgrl
dbca
netca
emca
emctl
rman /
srvctl

Y todos los comandos que se encuentran en el $ORACLE_HOME/bin

Ahora bien, como dijimos antes algunas cosas se ponen dificiles por que cuando voy a ejecutar el comando srvctl sufro el error:

 CRS-0254:  authorization failure.

Como ? no habiamos chequeado los permisos y grupos ?

3 comments on “RMAN – Crosscheck command”

RMAN – Crosscheck command

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

El comando CROSSCHECK compara lo existente en el CATALOGO con lo existente fisico en DISCO o TAPE.

Esto no sirve para conocer con que contamos al momento de hacer una tarea que implique traer datos antiguos al dia de hoy.

Recordemos que el comando CROSSCHECK, nos muesta tres estados:

EXPIRED : Cuando un objeto no es encontrado ni en el disco , ni en TAPE.
Si un backup set aparece como EXPIRED todos su componentes también lo están.AVAILABLE: Como su nombre lo indica estan los objetos disponibles para
que RMAN los tome para trabajar. De la misma manera descrita con antelacion ,
si un backup set aparece como AVAILABLE todos su componentes también lo están.UNAVAILABLE: Como su nombre lo indica estan los objetos disponibles
para que RMAN los tome para trabajar.

Voy a poner solo algunos ejemplos de lo que podemos realizar con el :

Cuando trabajamos con RMAN , sabemos que podemos tener resguardos en cinta (TAPE) o en disco (DISK)  es por ello que en algunos casos voy alocar el canal de el TAPE y cuano ejecute el comando sin niguna alocacion voy a estar asumiendo directamente que estoy trabajando con el disco. Esto es importante por que quizas borramos cosas del disco local y al ejecutar el croscheck actualiza el catalogo con datos de lo que tenemos en cinta : Ejemplo

  1. Tomo un backup en filsystem.
  2. Pasa la cinta y lo resguarda.
  3. La cinta no borra lo que resguardado del SO por que no lo tiene configurado por politica.
  4. Las piezas quedan en el SO, y ahi es donde debemos tener cuidado.

* Recomiendo hacer un script para que luego de cada subida a cinta lo elimine o por operativo mediante un cron.

Requirements For Kernel to Oracle 10gR2 On RHEL/OEL 5

Cuando seteamos los parametros del kernel, los hacemos para obtener un mejor funcionamiento de la aplicacación, como se va a comporta el CPU y la administración de sus procesos y el comportamiento de los semanforos.

Durante los últimos años oracle ha trabajado muchisimo en su integración con el OS, obteniedo grandes avances en la performance de la aplicación.

Según la nota [ID 419646.1] , recomienda utilizar los parametros del kernel de la siguiente manera:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304