Ingresar
Debates recientes
Respuestas recientes
Estadísticas del Foro
- Usuarios registrados
- 14.258
- Foros
- 38
- Debates
- 919
- Respuestas
- 60
- Etiquetas de debate
- 51
Inicio › Foros › Base de Datos › Respaldo y Recuperación (Database) › Reparar una base de datos por falla en UNDOTBS01
- Este debate tiene 0 respuestas, 1 mensaje y ha sido actualizado por última vez el hace 17 años, 10 meses por
DattM.
-
AutorEntradas
-
-
05/15/2007 a las 10:27 AM #1957
DattM
ParticipanteEste procedimiento es recomendable solo si tienes 100% de conocimiento del efecto en tu base de datos. OJO no somos responsables de la pérdida de información:
1) Asegúrate que la base de datos se detenga
sqlplus /nolog
SQL>connect sys/password as sysdba
SQL> shutdown immediate
2) Montar la BD en modo RESTRICT con pfile
SQL> STARTUP RESTRICT MOUNT pfile=D:oracleoraHomeinitORCL.ora
3) Si intentas eliminar un datafile del UNDTBS probablemente aparezcan errores
SQL> ALTER DATABASE DATAFILE ‘D:ORADATAORCLUNDOTBS01.DBF’ OFFLINE DROP;
*
ERROR at line 1:
ORA-01548: active rollback segment ‘_SYSSMU11$’ found, terminate dropping
tablespace
o esta sentencia
DROP TABLESPACE undotbs INCLUDING CONTENTS AND DATAFILES ;
*
ERROR at line 1:
ORA-01548: active rollback segment ‘_SYSSMU11$’ found, terminate dropping
tablespace
4) Puedes usar este query para determinar que "Rollback Segments" estan corruptos.
SQL>select segment_name,status,tablespace_name from dba_rollback_segs where status=’NEEDS RECOVERY’;
SEGMENT_NAME STATUS TABLESPACE_NAME
—————————— —————- —————–
_SYSSMU11$ NEEDS RECOVERY UNDOTBS
_SYSSMU12$ NEEDS RECOVERY UNDOTBS
_SYSSMU13$ NEEDS RECOVERY UNDOTBS
_SYSSMU14$ NEEDS RECOVERY UNDOTBS
_SYSSMU15$ NEEDS RECOVERY UNDOTBS
_SYSSMU16$ NEEDS RECOVERY UNDOTBS
_SYSSMU17$ NEEDS RECOVERY UNDOTBS
_SYSSMU18$ NEEDS RECOVERY UNDOTBS
_SYSSMU19$ NEEDS RECOVERY UNDOTBS
_SYSSMU20$ NEEDS RECOVERY UNDOTBS
5) Agrega la siguiente linea en el pfile con el nombre los rollback segments que aparecen en el punto 4.
_corrupted_rollback_segments =(‘_SYSSMU11$’,’_SYSSMU12$’,’_SYSSMU13$’,’_SYSSMU14$’,’_SYSSMU15$’,’_SYSSMU16$’,’_SYSSMU17$’,’_SYSSMU18$’,’_SYSSMU19$’,’_SYSSMU20$’)
Asegurate de comentar el parametros undo_management o poner el valo en MANUAL y agrega un nuevo nombre de UNDO TABLESPACE
#undo_management=AUTO
undo_tablespace=UNDOTBS1
6) Inicia nuevamente la base de datos con pfile
SQL> STARTUP RESTRICT MOUNT pfile=D:oracleoraHomeinitORCL.ora
7) Elimina los Rollback Segments corrupts del punto 4
SQL> drop rollback segment "_SYSSMU11$";
Rollback segment dropped.
…
SQL> drop rollback segment "_SYSSMU20$";
Rollback segment dropped.
8] Verifica nuevamente
SQL> select segment_name,status,tablespace_name from dba_rollback_segs;
SEGMENT_NAME STATUS TABLESPACE_NAME
—————————— —————- —————
SYSTEM ONLINE SYSTEM
_SYSSMU2$ ONLINE UNDOTBS1
_SYSSMU3$ ONLINE UNDOTBS1
_SYSSMU4$ ONLINE UNDOTBS1
_SYSSMU5$ ONLINE UNDOTBS1
_SYSSMU6$ ONLINE UNDOTBS1
_SYSSMU7$ ONLINE UNDOTBS1
_SYSSMU8$ ONLINE UNDOTBS1
_SYSSMU9$ ONLINE UNDOTBS1
_SYSSMU10$ ONLINE UNDOTBS1
_SYSSMU21$ ONLINE UNDOTBS1
9) Ahora si elimina el UNDO TABLESPACE malogrado, en nuestro ejemplo UNDOTBS
SQL> drop TABLESPACE UNDOTBS;
10) Recrea el nuevo tablespace UNDOTBS1
SQL>CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE ‘D:oradataORCLUNDOTBS01.DBF’ SIZE 2000M reuse AUTOEXTEND ON;
11) Altera la configuracion para usar el nuevo UNDO tablespace
ALTER SYSTEM SET undo_tablespace = UNDOTBS1;
12) Remueve y edita las siguientes lineas del pfile
_corrupted_rollback_segments =(‘_SYSSMU11$’,’_SYSSMU12$’,’_SYSSMU13$’,’_SYSSMU14$’,’_SYSSMU15$’,’_SYSSMU16 $’,’_SYSSMU17$’,’_SYSSMU18$’,’_SYSSMU19$’,’_SYSSMU20$’)
y habilita la utilizacion de undo_mangement=AUTO
undo_management=AUTO
undo_retention=10800
undo_tablespace=UNDOTBS1
13) Detener el servicio de base de datos
SQL>shutdown immediate;
14) Reinicia la base de datos
sqlplus /nolog
SQL>connect sys/password as sysdba
SQL> STARTUP RESTRICT MOUNT pfile=D:oracleoraHomeinitORCL.ora
ORACLE instance started.
Total System Global Area 1620126452 bytes
Fixed Size 457460 bytes
Variable Size 545259520 bytes
Database Buffers 1073741824 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
15) En este punto podrias sincronizar los cambios de pfile con spfile
SQL>create spfile from pfile=D:oracleoraHomeinitORCL.ora;
16) Reiniciar la base de datos de forma normal usando SPFILE
SQL>shutdown immediate
SQL>startup
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.