Inicio Foros Bases de datos Oracle Error ORA-01033 Inicialización o cierre de ORACLE en curso

Este debate contiene 12 respuestas, tiene 2 mensajes y lo actualizó Avatar Varios hace 2 semanas.

Viendo 13 publicaciones - del 1 al 13 (de un total de 13)
  • Autor
    Publicaciones
  • #3658
    Avatar
    Varios
    Moderador

    Hola, tengo un servidor con Oracle 11g y Linux Red Hat. Tengo dos instancias en Oracle: ORA1 y ORA2. La ORA1 va perfectamente, pero al conectar a la ORA2 con un usuario me aparece este mensaje de error:

    ORA-01033: inicialización o cierre de ORACLE en curso

    Es extraño porque la otra instancia sí que funciona bien ¿a qué puede ser debido?

    #3659
    alonsojpd
    alonsojpd
    Jefe de claves

    Para analizar el motivo del error, en primer lugar es conveniente echarle un vistazo a los log de la instancia ORA2. En el caso de Oracle 11g sobre Linux Red Hat los log suelen estar en:

    /opt/oracle/diag/rdbms/ora2/ORA2/trace/alert

    Y el fichero que suele contener los errores y datos de conexión es el: log.xml.

    Aunque puede variar la ubicación en función del SO, del tipo de instalación, de la versión de Oracle y de otras cosas.

    Accede a su contenido y nos lo posteas por aquí para analizar el motivo exacto del error.

    #3660
    Avatar
    Varios
    Moderador

    En el archivo que comentas, /opt/oracle/diag/rdbms/ora2/ORA2/trace/alert/log.xml me sale esto:

    <msg time=’2019-07-30T22:27:00.158+02:00′ org_id=’oracle’ comp_id=’rdbms’
    msg_id=’opiexe:3147:2802784106′ client_id=» type=’NOTIFICATION’
    group=’admin_ddl’ level=’16’ host_id=’servidor.oracle.com’
    host_addr=’192.168.1.100′ module=’sqlplus@servidor.oracle.com (TNS V1-V3)’ pid=’4360′>
    <txt>Completed: ALTER DATABASE MOUNT
    </txt>
    </msg>
    <msg time=’2019-07-30T22:27:00.178+02:00′ org_id=’oracle’ comp_id=’rdbms’
    msg_id=’opiexe:3076:4222364190′ client_id=» type=’NOTIFICATION’
    group=’admin_ddl’ level=’16’ host_id=’servidor.oracle.com’
    host_addr=’192.168.1.100′ module=’sqlplus@servidor.oracle.com (TNS V1-V3)’ pid=’4657′>
    <txt>ALTER DATABASE OPEN
    </txt>
    </msg>
    <msg time=’2019-07-30T22:27:00.298+02:00′ org_id=’oracle’ comp_id=’rdbms’
    client_id=» type=’UNKNOWN’ level=’16’
    host_id=’servidor.oracle.com’ host_addr=’192.168.1.100′ module=’sqlplus@servidor.oracle.com (TNS V1-V3)’
    pid=’4657′>
    <txt>Errors in file /opt/oracle/diag/rdbms/ORA2/ORA2/trace/ORA2_ora_4657.trc:
    ORA-10873: file 1 needs to be either taken out of backup mode or media recovered
    ORA-01110: archivo de datos 1: /ORA2/ORA2/datafile/o1_mf_system_dc0ytsk9_.dbf
    </txt>
    </msg>
    <msg time=’2019-07-30T22:27:00.298+02:00′ org_id=’oracle’ comp_id=’rdbms’
    msg_id=’opiexe:3138:2780954927′ client_id=» type=’NOTIFICATION’
    group=’admin_ddl’ level=’16’ host_id=’servidor.oracle.com’
    host_addr=’192.168.1.100′ module=’sqlplus@servidor.oracle.com (TNS V1-V3)’ pid=’4657′>
    <txt>ORA-10873 signalled during: ALTER DATABASE OPEN…
    </txt>
    </msg>
    <msg time=’2019-07-30T22:31:20.539+02:00′ org_id=’oracle’ comp_id=’rdbms’
    client_id=» type=’UNKNOWN’ level=’16’
    host_id=’servidor.oracle.com’ host_addr=’192.168.1.100′ module=’backup incr datafile’
    pid=’6524′>
    <txt>ARCH: STARTING ARCH PROCESSES
    </txt>
    </msg>
    <msg time=’2019-07-30T22:31:20.550+02:00′ org_id=’oracle’ comp_id=’rdbms’
    msg_id=’ksbrdp:4257:1214121915′ type=’NOTIFICATION’ group=’process start’
    level=’16’ host_id=’servidor.oracle.com’ host_addr=’192.168.1.100′

    #3661
    alonsojpd
    alonsojpd
    Jefe de claves

    Revisando vemos que te aparecen estos errores:

    ORA-10873: file 1 needs to be either taken out of backup mode or media recovered
    ORA-01110: archivo de datos 1: /ORA2/ORA2/datafile/o1_mf_system_dc0ytsk9_.dbf

    Comprueba en qué estado está la instancia ORA2 de tu base de datos Oracle. Para ello accede con SQLPLus desde la consola de Linux, con el usuario «oracle»:

    su – oracle

    Puesto que tienes dos instancias, comprueba qué valor tiene la variable de entorno ORACLE_SID, con:

    echo $ORACLE_SID

    Si te muestra: ORA1, tendrás que cambiar el valor de dicha variable antes de acceder a SQLPlus, con:

    export ORACLE_SID=ORA2

    Ahora accede a SQLPlus con:

    sqlplus /nolog

    Y conéctate a la BD con:

    conn / as sysdba

    Haz la comprobación del estado de la instancia ORA2 ejecutando la consulta SQL:

    select status, instance_name from v$instance;

    Que te devolverá el estado (status) y el nombre de la instancia, para que estés seguro de que estás conectado a ORA2. Dinos qué te devuelve dicha consulta.

    #3662
    Avatar
    Varios
    Moderador

    Me devuelve esto, para la instancia ORA2:

    STATUS
    ————
    MOUNTED

    He hecho el export ORACLE_SID=ORA2 porque me conectaba a SQLPlus sin hacerlo y la instancia por defecto era la ORA1. Ahora sé cómo conectarme a una instancia concreta desde la consola con SQLPlus.

    #3663
    alonsojpd
    alonsojpd
    Jefe de claves

    Ok, también puedes saber el estado de la BD con la consulta SQL (la ponemos por si fuera necesario):

    select open_mode from v$database;

    Que en tu caso te devolverá también:

    OPEN_MODE
    ——————–
    MOUNTED

    El estado normal de una instancia de base de datos Oracle es «OPEN». Como ves la tuya está «MOUNTED», es decir, está montada pero no abierta. Esto se debe a que, efectivamente, hay algún problema que impide que se abra.

    Intenta abrir la base de datos, desde esa misma consola y siempre conectado a tu instancia ORA2, ejecuta la siguiente sentencia:

    alter database open;

    Y nos dices qué resultado arroja.

    #3664
    Avatar
    Varios
    Moderador

    Devuelve los mismos errores que el fichero de log:

    SQL> alter database open;
    ERROR en linea 1:
    ORA-10873: file 1 needs to be either taken out of backup mode or media recovered
    ORA-01110: archivo de datos 1: ‘/idemol/IDEMOL/datafile/o1_mf_system_dc0ytsk9_.dbf’

    #3665
    alonsojpd
    alonsojpd
    Jefe de claves

    Ok, ejecuta la siguiente sentencia para ver si hay algún backup que no ha finalizado bien:

    select * from v$backup;

    Y dinos qué te devuelve.

    #3666
    Avatar
    Varios
    Moderador

    Me devuelve esto:

    FILE# STATUS CHANGE# TIME
    ———- —————— ———- ——–
    1 ACTIVE 85597008 30/07/19
    2 ACTIVE 85597008 30/07/19
    3 ACTIVE 85597008 30/07/19
    4 ACTIVE 85597008 30/07/19
    5 ACTIVE 85597008 30/07/19

    #3667
    alonsojpd
    alonsojpd
    Jefe de claves

    Ok, como ves tienes backups activos que no han finalizado por algún motivo. Ejecuta esta otra consulta para forzar la finalización de los backups:

    alter database end backup;

    Si es correcta su ejecución mostrará el texto:

    Base de datos modificada.

    Y vuelve a ejecuta la consulta:

    select * from v$backup;

    Que debería mostrarte:

    FILE# STATUS CHANGE# TIME
    ———- —————— ———- ——–
    1 NOT ACTIVE 85597008 30/07/19
    2 NOT ACTIVE 85597008 30/07/19
    3 NOT ACTIVE 85597008 30/07/19
    4 NOT ACTIVE 85597008 30/07/19
    5 NOT ACTIVE 85597008 30/07/19

    #3669
    Avatar
    Varios
    Moderador

    Seguidos los pasos, efectivamente esto es lo que me muestran todos los comandos que has dicho:

    SQL> alter database end backup;

    Base de datos modificada.

    SQL> select * from v$backup;

    FILE# STATUS CHANGE# TIME
    ———- —————— ———- ——–
    1 NOT ACTIVE 85597008 30/07/19
    2 NOT ACTIVE 85597008 30/07/19
    3 NOT ACTIVE 85597008 30/07/19
    4 NOT ACTIVE 85597008 30/07/19
    5 NOT ACTIVE 85597008 30/07/19

    #3670
    alonsojpd
    alonsojpd
    Jefe de claves

    Ok, ahora lo recomendable es que detengas la instancia de la BD con el comando:

    shutdown immediate;

    Y cuando se detenga la inicas de forma normal con:

    startup

    Si todo es correcto arrancará y quedará en estado «OPEN» al hacer un select status from v$instance;

    #3671
    Avatar
    Varios
    Moderador

    Genial, solucionado con tus indicaciones. He hecho estos últimos pasos y ya se ha iniciado correctamente:

    SQL> shutdown immediate;

    ORA-01109: base de datos sin abrir
    Base de datos desmontada.
    Instancia ORACLE cerrada.

    SQL> startup
    Instancia ORACLE iniciada.
    Total System Global Area 7048368128 bytes
    Fixed Size 2266744 bytes
    Variable Size 1342179720 bytes
    Database Buffers 5687476224 bytes
    Redo Buffers 16445440 bytes
    Base de datos montada.
    Base de datos abierta.

    SQL> select status from v$instance;

    STATUS
    ————
    OPEN

    SQL> select instance_name from v$instance;

    INSTANCE_NAME
    —————-
    ORA2

Viendo 13 publicaciones - del 1 al 13 (de un total de 13)

Debes estar registrado para responder a este debate.