¿Cómo degradar una base de datos 12c a una versión anterior?
Debe tenerse en cuenta que cuando una instancia de base de datos se degrada de la versión actual a la versión anterior a la actualización, la base de datos no volverá exactamente al mismo estado antes de la actualización. Dependiendo de la versión involucrada, el proceso de actualización realizará cambios irreversibles. Los usuarios pueden abrir y acceder a versiones anteriores de una instancia de base de datos mediante el proceso de degradación. Esto suele ser suficiente.
Es posible que se requieran acciones correctivas adicionales (como desinstalar/reinstalar o actualizar al nivel actual del conjunto de parches) para resolver los problemas que quedaron de la degradación. Si el objetivo es restaurar completamente la instancia a su estado previo a la actualización, se deben utilizar procedimientos adicionales, incluida la restauración completa de la instancia a su estado previo a la actualización.
El proceso analizado en este artículo es una degradación basada en scripts. Este artículo no cubre el uso de exportación/importación, bombeo de datos u otros métodos para mover datos de una versión a otra.
La versión binaria de Oracle a la que está degradando debe estar disponible/instalada en el servidor antes de iniciar el proceso de degradación. Si desinstala el ejecutable de Oracle que se va a degradar, reinstale los archivos binarios de Oracle en la versión/nivel de parche correcto que se va a degradar.
El propósito de este procedimiento es degradar una base de datos que se actualizó exitosamente a 12c, no recuperarla de una actualización fallida. Solo puede bajar a la versión y nivel de parche que estaba usando antes de actualizar.
La actualización directa está disponible en 10.2.0.5, 11.1.0.7 o 11.2.0.2 y superiores. A excepción de la 10.2.0.5, estas versiones se pueden degradar.
Por ejemplo, si aplica el parche intermedio 11.1.0.7 para actualizar de Oracle 11.0.6 a Oracle 12c (12.1.0). Las degradaciones solo se pueden realizar en versiones actualizadas directamente.
Excepciones:
Aunque 10.2.0.5 se puede actualizar directamente, la degradación no se aplica a 10.2.0.5.
Esto se debe a que durante el proceso de actualización, el parámetro compatible se ha establecido en el valor mínimo de 11.0.0. Esto hace que sea imposible bajar a 10.2.0.5. Las versiones que se pueden degradar son 11.1.0.7, 11.2.0.2, 11.2.0.3 y superiores.
Si se aplicó algún parche a la base de datos de origen que se ejecuta desde la página principal actualizada, deberá retroceder antes de iniciar el proceso de degradación.
Los pasos para desinstalar y revertir un parche están documentados en el archivo Léame del parche correspondiente.
Si no se desinstalan y revierten los parches, se pueden producir fallos en la degradación, incluida la imposibilidad de revalidar los objetos del diccionario.
Ejemplo de parche incluido con Database Machine El proceso es el siguiente:
Desinstalar el parche
Por ejemplo: $ opatch auto/u 01/app/. Oracle/patches/14103267 -revertir.
Revertir cualquier SQL que se aplicó durante la aplicación del parche:
Ejemplo: SQL>@RDBMS/admin/cat bundle_EXA_<Database SID>_ROLLBACK.sql, con Para revertir los cambios de SQL.
Solución
Pasos previos a la degradación
El componente XML DB es necesario en -12c.
Durante la actualización a 12c, se instalará el componente XML DB si aún no lo está.
La degradación desde 12c eliminará los componentes XDB instalados.
-Enterprise Manager no admite la degradación. Reconfigure los controles de Oracle EM antes de degradar. Consulte
Guía de actualización de la base de datos Oracle 12c versión 1(12.1)e 17642-10
6 Degradación de la base de datos Oracle a una versión anterior
6.6.5 Degradación de la publicación Oracle -recuperación de base de datos Oracle Enterprise Manager
-Durante la actualización a 12c, se eliminará el repositorio de control de la base de datos. Después de degradar, reconfigure el control de la base de datos.
Nota 870877.1 ¿Cómo guardar los datos de control de la base de datos de Oracle Enterprise Manager antes de actualizar una base de datos de instancia única a otras versiones?
Nota 876353.1 ¿Cómo restaurar los datos de Oracle Enterprise Manager para degradar una base de datos de instancia única a una versión anterior/de origen?
Los parámetros compatibles no se pueden cambiar a 12.1.0.
-Desactivar Data Vault si está habilitado.
Nota 803948.1 Cómo desinstalar o reinstalar Database Vault en 11g (UNIX)
Nota 453902.1 Habilitación y deshabilitación de Oracle Database Vault en WINDOWS
-Si base de datos Para usar Oracle Label Security, ejecute el script de degradación de preprocesamiento de Oracle Label Security (OLS) olspredowngrade.sql (disponible en $Oracle_HOME/RDBMS/admin) en su nueva base de datos Oracle 12c.
-Las versiones de zona horaria deben ser las mismas.
- Desarmar y apuntar al ORA_TZFILE del directorio de inicio 12c (si está configurado).
- Si Oracle Application Express existe en la base de datos, debe copiar el archivo apxrelod.sql del directorio Oracle Database 12C$oracle_home/apex/ a un directorio que no sea el directorio principal de Oracle, como un directorio temporal. directorio en el sistema, para su posterior ejecución.
- Si los objetos fueron creados en base a objetos fijos, elimínelos para evitar posibles errores ORA-00600. Puede recrear estos objetos después de degradarlos.
- Si la base de datos del clúster está degradada, cierre la instancia por completo y cambie el parámetro de inicialización de CLUSTER_DATABASE a FALSE. Después de la degradación, este parámetro debe volver a establecerse en VERDADERO.
Después de cumplir con los requisitos previos anteriores, puede continuar bajando de categoría.
Pasos para la degradación de la base de datos
1) Asegúrese de que todos los componentes de la base de datos sean válidos. La degradación solo se puede realizar desde una base de datos actualizada correctamente. Para verificar el estado de los componentes de la base de datos, ejecute la siguiente consulta.
Conéctese a la base de datos como usuario SYS.
col comp_id formato a10
col comp_name formato a30
col versión formato a10
Estado de columna formato a8
Seleccione substr(comp_id, 1, 15) comp_id, substr(comp_name, 1, 30) comp_name, substr(version, 1, 10) versión, estado de dba_registry
2) Verifique que no exista y pertenece a sys Objeto no válido para /system.
seleccione propietario, count(object_name) "Recuento de objetos no válidos" de dba_objects donde estado. = 'VALID ' y propietario en (' SYS ', ' SYSTEM ') grupo por propietario;
Si el recuento llega a cero, la degradación puede continuar.
Si hay un objeto no válido, ejecute utlrp.sql varias veces. Si el objeto no se puede resolver a un estado válido, ya no se puede degradar. Cree una SR o publíquela en la comunidad de DBA para obtener ayuda.
Como alternativa, para 1 y 2, ejecute el siguiente script:
Tenga en cuenta que el script 556610.1 recopila información de diagnóstico de actualización/migración de la base de datos (dbupgdiag.sql)
3) Cerrar la base de datos
Cerrar inmediatamente
4) Haga una copia de seguridad de la base de datos 12c.
5) Iniciar la base de datos en modo degradado.
Iniciar la degradación;
6) Ejecutar el script de degradación.
Desactualización de Sql & gt spool. log
Sql & gt@ $ ORACLE _ HOME/RDBMS/admin/catdwgrd SQL
Nota:
p>$ORACLE_HOME debería apuntar al directorio de inicio 12c.
El script catdwgrd.sql degrada todos los componentes de la base de datos a una versión principal compatible o a una versión de conjunto de parches (la versión que se actualizó originalmente).
Sql>Liberar spool
Sql>Cerrar inmediatamente
Salir de SQL Plus
Sql>Salir;
7) Si el sistema operativo es LINUX/UNIX:
Cambie las siguientes variables de entorno a la base de datos de origen a la que desea degradar:
ORACLE_HOME
小路
Edite /etc/oratab o /var/opt/Oracle/oratab para realizar cambios.
Asigne la base de datos al directorio de inicio de Oracle de la base de datos de origen.
Si el sistema operativo es Windows, complete los siguientes pasos:
A. Detenga todos los servicios de Oracle, incluido el servicio OracleServiceSID de Oracle Database 12c, donde SID es el nombre de la instancia. .
Por ejemplo, si el SID es ORCL, ingrese lo siguiente en el símbolo del sistema:
c:\>Network StopOracleServiceORCL
b. mensaje, elimine el servicio de Oracle ejecutando el comando ORADIM. Si se le solicita, ingrese la contraseña de la cuenta de usuario estándar activa en este sistema Windows.
Por ejemplo, si el SID es ORCL, ingrese el siguiente comando:
c:\>ORADIM -DELETE -SID ORCL
C. símbolo del sistema Bajo el comando, use el comando ORADIM para crear el servicio Oracle de la base de datos que se degradará.
c:\>ORADIM-NEW-SID SID-int pwd CONTRASEÑA-MAXUSERS USUARIOS
-STARTMODE AUTO-PFILE ORACLE_HOME\DATABASE\init sid. Ola
8) Restaurar archivos de configuración
Restaurar archivos de configuración (archivos de contraseñas, archivos de parámetros, etc.) a la versión degradada de ORACLE_HOME.
9) Si se trata de una base de datos Oracle RAC, ejecute el siguiente comando para modificar la base de datos al modo de instancia única:
SET CLUSTER_DATABASE=FALSE
10 ) Desde Ejecute el script catrelod en el directorio de la versión degradada $ORACLE_HOME/rdbms/admin.
Inicie sqlplus, conéctese a la instancia de la base de datos como usuario SYS con permisos sysdba y luego inicie la base de datos en modo de actualización:
:CD$ORACLE_HOME/RDBMS/admin
p>:sqlplus
sql & gt se conecta al sistema como sysdba
sql & gt inicia la actualización
sql & gtspool catrelod.log p >
sql & gt@?/rdbms/admin/catrelod.sql
sql & gt Loose spool
El script catrelod.sql recarga cada uno en la base de datos degradada. Versiones apropiadas de componentes de la base de datos.
11) Ejecute el script utlrp.sql:
SQL & gt@utlrp.sql
Sql & gt exit;
utlrp El script SQL vuelve a compilar todos los módulos PL/SQL existentes, como paquetes, procedimientos, tipos, etc., que anteriormente estaban en un estado no válido.
12) Verifique el estado de la base de datos degradada:
Tenga en cuenta que el script 556610.1 recopila información de diagnóstico de actualización/migración de la base de datos (dbupgdiag.sql)
Este sql El script es un conjunto de declaraciones de consulta que proporcionan resultados fáciles de usar para diagnosticar el estado de la base de datos antes y después de una actualización. El script creará un archivo llamado db_upg_diag_. Archivos de registro.
13), la vista QT no válida se puede encontrar en usuarios del sistema. Esto se debe a que la vista selecciona las columnas incorrectas de la tabla base. Necesita recrear estas vistas.
Consulte las instrucciones:
Nota 1520209.1 La vista QT_*BUFER no es válida después de degradar desde 12C
Pasos después de degradar:
1) Si está actualizando a Oracle Database 11g Versión 1 (11.1.0.7) y tiene Oracle Application Express en la base de datos, vaya al directorio donde copió el script apxrelod.sql (antes de degradar) y ejecute el script apxrelod. recargar manualmente Oracle Application Express:
SQL & gt@apxrelod.sql
Ejecute el script apxrelod.sql para bloquear el paquete APEX_030200. La ayuda de la transmisión WWV no es válida debido al siguiente error:
PLS-00201: se debe declarar el identificador 'CTX_DDL'
2) Si Oracle Label Security está habilitado en la base de datos, por favor ejecute el siguiente script.
A. Copie el script olstrig.sql desde el directorio principal de Oracle Database 12c al directorio principal de Oracle de la versión a la que desea degradar la base de datos.
B. En la versión degradada del directorio principal de Oracle, ejecute olstrig.sql y vuelva a crear el activador DML en la tabla utilizando la política de seguridad de etiquetas de Oracle:
SQL & gt. @olstrig. sql
3) Si degrada la base de datos del clúster, debe ejecutar el siguiente comando para degradar la configuración de la base de datos de Oracle Clusterware:
$ srvctl base de datos-d db-unique- name-o Oracle home-t Downgrade to_version
Entre ellos, db-unique-name es el nombre de la base de datos (no el nombre de la instancia), oraclehome es la ubicación del antiguo directorio de inicio de Oracle de la base de datos degradada, y to_version es la versión de la base de datos a la que se degrada la base de datos.