Realizando una tarea de mantenimiento en un ambiente de testing de un cliente (Aplicación de un Patch), me toca reiniciar ambas instancias , de manera ordenada, una a una y moviendo el servicio para que no haya perdída de servicio. (Utilize el modelo rolling upgrade).
Cuando la quiero levantar la instancia del primer nodo me ocurre un error en una de las instancias.
[oracle@appdat01lx bin]$ srvctl start instance -d APPTST -i APPTST1 PRKP-1001 : Error starting instance appdat01 on node appdat01lx CRS-0215: Could not start resource ‘ora.APPTST.apptst1.inst’.
Al revisar el alert de la instancia me encuentro con que no puede levantar por problemas con el tablespace UNDO.
ALTER DATABASE OPEN Picked broadcast on commit scheme to generate SCNs Tue Apr 3 18:32:28 2012 Thread 1 opened at log sequence 20 Current log# 2 seq# 20 mem# 0: +DATA/APPTST/onlinelog/group_2.364.775219571 Current log# 2 seq# 20 mem# 1: +DATA/APPTST/onlinelog/group_2.363.775219573 Successful open of redo thread 1 Tue Apr 3 18:32:28 2012 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Tue Apr 3 18:32:28 2012 SMON: enabling cache recovery Tue Apr 3 18:32:28 2012 Errors in file /u01/app/oracle/admin/APPTST/udump/appdat01_ora_13956.trc: ORA-30013: undo tablespace ‘UNDOTBS1′ is currently in use Tue Apr 3 18:32:28 2012 Error 30013 happened during db open, shutting down database USER: terminating instance due to error 30013 Instance terminated by USER, pid = 13956 ORA-1092 signalled during: ALTER DATABASE OPEN…
Reviso el trace generado por la instancia para asegurarme realmente que es lo que esta sucediendo.
[oracle@appdat01lx bin]$ cat /u01/app/oracle/admin/APPTST/udump/appdat01_ora_13436.trc /u01/app/oracle/admin/APPTST/udump/appdat01_ora_13436.trc Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_APPTST System name: Linux Node name: appdat01lx.bancocredicoop.coop Release: 2.6.18-194.32.1.el5 Version: #1 SMP Mon Dec 20 10:52:42 EST 2010 Machine: x86_64 Instance name: appdat01 Redo thread mounted by this instance: 1 Oracle process number: 21 Unix process pid: 13436, image: oracle@appdat01lx.bancocredicoop.coop (TNS V1-V) *** ACTION NAME:() 2012-04-03 18:30:18.998 *** MODULE NAME:(sqlplus@appdat01lx.bancocredicoop.coop (TNS V1-V) 2012-04-03 18:30:18.998 *** SERVICE NAME:(SYS$USERS) 2012-04-03 18:30:18.998 *** SESSION ID:(151.3) 2012-04-03 18:30:18.998 ORA-30013: undo tablespace ‘UNDOTBS1′ is currently in use [oracle@appdat01lx bin]$
Entonces me logueo en la base para ver que estaba ocurriendo en el nodo activo.
Ya que el primer nodo se encontraba caído.
[oracle@appdat01lx bin]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 – Production on Tue Apr 3 18:35:27 2012 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to an idle instance.
Reviso en el segundo nodo y ejecuto una query para ver si tengo algún tipo de actividad o que haya quedado algo sin rollbakear.
[oracle@appdat02lx bin]$ sqlplus / as sysdba .... SQL> column username format a6 SELECT a.name,b.status , d.username , d.sid , d.serial# FROM v$rollnameSQL> SQL> a,v$rollstat b, v$transaction c , v$session d WHERE a.usn = b.usn AND a.usn = c.xidusn AND c 2 3 4 5 .ses_addr = d.saddr AND a.name IN ( SELECT segment_name FROM dba_segments WHERE tab 6 7 8 9 lespace_name = ‘UNDOTBS1′ ); 10 no rows selected SQL>
No había nada corriendo, entonces reviso el parametro de undo_tablespace.
Y me encuentro con la novedad que estaba incorrecto.
SQL> sho parameter undo NAME TYPE VALUE ——————————————— ——————— ———————— undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1
Seguramente el DBA debía rearmado el ambiente con un pfile modificado y haya borrado el parametro , o al momento de levantar la base se haya encontrado con algún problema y haya realizado algún seteo a modo de workaround para salir del paso.
SQL> alter system set undo_tablespace=UNDOTBS2 sid='APPTST2'; System altered. SQL> alter system set undo_tablespace=UNDOTBS1 sid='APPTST1'; System altered.
Solicito reiniciar la base para asegurame que todo haya quedado absolutamente en orden y asi lo hago.
SQL> shut immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 536870912 bytes Fixed Size 2085288 bytes Variable Size 226496088 bytes Database Buffers 301989888 bytes Redo Buffers 6299648 bytes Database mounted. Database opened. SQL>
Ahora intento levantar la instancia que no funcionaba y levanta correctamente.
[oracle@appdat01lx bin]$ srvctl start instance -d APPTST -i APPTST1