Continuamos
con el procedimiento de Upgrade a Oracle 12c. En el artículo anterior explique
a detalle cómo realizar el upgrade de la Infraestructura Grid a Oracle 12c.
Con
la Infraestructura Grid ya instalada, procedemos a realizar el upgrade de las
bases de datos a Oracle 12c.
Como
comenté en el artículo anterior existen diferentes maneras de realizar upgrade
a Oracle 12c.
- Database Upgrade Assistant (DBUA)
- Línea de comandos
- Transport Tablespace o Transport Database.
- Export/Import Datapump.
- Export/Import Original.
Para
este articulo explicaré los métodos de upgrade con DBUA y línea de comandos. Observaremos las nuevas funcionalidades que
ofrece Oracle 12c para upgrade.
Explicaré también porque, para la versión Oracle 12c, recomiendo utilizar el DBUA antes que las líneas
de comando.
Tareas Previas al Upgrade.
Antes
de realizar el upgrade debemos de realizar algunas tareas previas.
- Preparar el servidor para la instalación del motor de base de datos Oracle 12c.
- Instalar el motor de base de datos Oracle 12c.
Estos pasos
pueden revisarlos en mi articulo Oracle 12c : Instalación de Oracle Database 12c
Con la instalación
del motor Oracle 12c podemos hacer uso de la nueva herramienta Pre-Upgrade Information Tool
Pre-Upgrade
Information Tool
Es una
nueva herramienta que viene con la instalación del motor de base de datos
Oracle 12c. Esta herramienta se encarga de revisar si la base de datos, que
vamos a actualizar, cumple con todos los requisitos necesarios para realizar el
upgrade a Oracle 12c.
La
herramienta se encuentra en el directorio del motor Oracle 12c; en la ruta: $ORACLE_HOME_12c/rdbms/admin. La herramienta se ejecuta de dos maneras:
- De manera automática durante la ejecución del DBUA.
- De manera manual con el script preupgrd.sql
Cuando
se ejecuta la herramienta, se genera un reporte con la revisión de los
requisitos cumplidos y los requisitos que aun falta cumplir para el
upgrade.
A
diferencia de versiones anteriores, esta herramienta también genera scripts de ejecución
pre y post upgrade que ayudan a ejecutar requisitos fallidos y tareas post
upgrade de manera muy rápida.
Ejecutemos la herramienta en nuestra base de datos Oracle
11g.
Connected to:
Oracle Database 11g Enterprise Edition
Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage
Management, OLAP, Data Mining
and Real Application Testing options
SQL>
@/u01/app/oracle/product/12.1.0/db_1/rdbms/admin/preupgrd.sql
Loading Pre-Upgrade Package...
Executing Pre-Upgrade Checks...
Pre-Upgrade Checks Complete.
************************************************************
Results of the checks are located at:
/u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade.log
Pre-Upgrade Fixup Script (run in source
database environment):
/u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade_fixups.sql
Post-Upgrade Fixup Script (run shortly
after upgrade):
/u01/app/oracle/cfgtoollogs/orcl/preupgrade/postupgrade_fixups.sql
************************************************************
Fixup scripts must be reviewed prior to being executed.
************************************************************
************************************************************
====>> USER ACTION
REQUIRED <<====
************************************************************
The following are *** ERROR LEVEL CONDITIONS
*** that must be addressed
prior to attempting your
upgrade.
Failure to do so will result in a
failed upgrade.
You MUST resolve the above errors
prior to upgrade
************************************************************
Como
pueden observar se han creado 3 archivos:
- preupgrade.log (reporte de revisión)
- preupgrade_fixups.sql (script pre upgrade)
- postupgrade_fixups.sql (script post upgrade)
Revisamos
el archivo preupgrade.log por partes para explicar cada sección.
Primero
observamos la descripción de la base de datos original. También podemos observar si existen parámetros
que serán renombrados y parámetros que serán deprecados en la versión Oracle
12c.
[oracle@upgrade12c ~]$ cat
/u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade.log
Oracle Database Pre-Upgrade Information
Tool 04-16-2015 03:33:41
Script Version: 12.1.0.1.0 Build: 006
**********************************************************************
Database Name: ORCL
Version: 11.2.0.3.0
Compatible: 11.2.0.0.0
Blocksize: 8192
Platform: Linux x86 64-bit
Timezone file: V14
**********************************************************************
[Renamed Parameters]
[No Renamed Parameters in
use]
**********************************************************************
**********************************************************************
[Obsolete/Deprecated
Parameters]
[No Obsolete or Desupported
Parameters in use]
**********************************************************************
En la
segunda sección observamos los componentes instalados en la base de datos. Es recomendable que todos se encuentren en
estado VALID para el upgrade.
[Component List]
**********************************************************************
--> Oracle Catalog Views [upgrade] VALID
--> Oracle Packages and Types [upgrade] VALID
--> JServer JAVA Virtual Machine [upgrade] VALID
--> Oracle XDK for Java [upgrade] VALID
--> Oracle Workspace Manager [upgrade] VALID
--> OLAP Analytic Workspace [upgrade] VALID
--> Oracle Enterprise Manager
Repository [upgrade] VALID
--> Oracle Text [upgrade] VALID
--> Oracle XML Database [upgrade] VALID
--> Oracle Java Packages [upgrade] VALID
--> Oracle Multimedia [upgrade] VALID
--> Oracle Spatial [upgrade] VALID
--> Expression Filter [upgrade] VALID
--> Rule Manager [upgrade] VALID
--> Oracle Application Express [upgrade]
VALID
--> Oracle OLAP API [upgrade] VALID
**********************************************************************
En la
siguiente sección observamos la revisión de espacios en la base de datos. Si cada tablespace cumple con el tamaño
adecuado para poder hacer el upgrade.
**********************************************************************
[Tablespaces]
**********************************************************************
--> SYSTEM tablespace is adequate for
the upgrade.
minimum required size: 1225 MB
--> SYSAUX tablespace is adequate for
the upgrade.
minimum required size: 1484 MB
--> UNDOTBS1 tablespace is adequate
for the upgrade.
minimum required size: 400 MB
--> TEMP tablespace is adequate for
the upgrade.
minimum required size: 60 MB
--> EXAMPLE tablespace is adequate
for the upgrade.
minimum required size: 309 MB
[No adjustments
recommended]
En la siguiente
sección se muestran la revisión de requisitos previos al Upgrade. Entre las
revisiones más importantes tenemos:
- Desinstalación del Grid Control de la base de datos 11g (revisar mi articulo Enterprise Manager Database Express 12c)
- Fin del soporte para el Catalogo OLAP
- Actualización del Timezone a la versión mas reciente.
**********************************************************************
[Pre-Upgrade
Checks]
**********************************************************************
WARNING: --> Enterprise Manager
Database Control repository found in the database
In Oracle Database 12c, Database Control is removed during
the upgrade. To save time during the Upgrade, this action
can be done prior to upgrading using the following steps after
copying rdbms/admin/emremove.sql from the new Oracle home
- Stop EM Database Control:
$> emctl stop dbconsole
- Connect to the Database using the SYS
account AS SYSDBA:
SET ECHO ON;
SET SERVEROUTPUT ON;
@emremove.sql
Without the set echo and serveroutput commands you will not
be able to follow the progress of the script.
WARNING: --> Existing DBMS_LDAP
dependent objects
Database contains schemas with objects dependent on DBMS_LDAP package.
Refer to the Upgrade Guide for instructions to configure Network ACLs.
USER APEX_030200 has dependent objects.
INFORMATION: --> OLAP Catalog(AMD)
exists in database
Starting with Oracle Database 12c, OLAP is desupported.
If you are not using the OLAP Catalog component and want
to remove it, then execute the
ORACLE_HOME/oraolap/admin/catnoamd.sql script before or
after the upgrade.
INFORMATION: --> Older Timezone in
use
Database is using a time zone file older than version 18.
After the upgrade, it is recommended that DBMS_DST package
be used to upgrade the 11.2.0.3.0 database time zone version
to the latest version which comes with the new release.
Please refer to My Oracle Support note number 977512.1 for details.
Las sección
siguiente muestra acciones recomendadas previos al Upgrade. Normalmente
ejecutamos estas acciones de manera manual.
**********************************************************************
[Pre-Upgrade
Recommendations]
**********************************************************************
*****************************************
********* Dictionary
Statistics *********
*****************************************
Please gather dictionary statistics 24
hours prior to
upgrading the database.
To gather dictionary statistics execute
the following command
while connected as SYSDBA:
EXECUTE dbms_stats.gather_dictionary_stats;
Después
encontraremos la sección con acciones recomendadas post Upgrade.
**********************************************************************
[Post-Upgrade
Recommendations]
**********************************************************************
*****************************************
******** Fixed Object
Statistics ********
*****************************************
Please create stats on fixed objects two
weeks
after the upgrade using the command:
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
^^^ MANUAL ACTION SUGGESTED ^^^
Finalmente
el reporte nos muestra una sección con el resumen de lo encontrado en la base
de datos origen.
**********************************************************************
************ Summary
************
0
ERRORS exist in your database.
2
WARNINGS that Oracle suggests are addressed to improve database performance.
2
INFORMATIONAL messages that should be reviewed prior to your upgrade.
After your database is upgraded and open in
normal mode you must run
rdbms/admin/catuppst.sql which executes
several required tasks and completes
the upgrade process.
You should follow that with the execution of
rdbms/admin/utlrp.sql, and a
comparison of invalid objects before and after
the upgrade using
rdbms/admin/utluiobj.sql
If needed you may want to upgrade your
timezone data using the process
described in My Oracle Support note 977512.1
***********************************
Revisar
con cuidado todo el reporte para evitar problemas con el Upgrade.
Una vez
revisado el reporte de requisitos, procedemos a ejecutar el script preupgrade_fixups.sql ( generado por la herramienta)
Este
script corregirá de manera automática algunos requisitos puntuales como : Desinstalación
del Grid Control, incremento de tamaño de los Tablespaces, recolección de estadísticas.
Las demás
tareas deben de ejecutarse y corregirse de manera manual por el DBA.
SQL> @/u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade_fixups.sql
Pre-Upgrade Fixup Script Generated on
2015-04-16 03:33:36 Version: 12.1.0.1
Build: 006
Beginning Pre-Upgrade Fixups...
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
**********************************************************************
Check Tag: EM_PRESENT
Check Summary: Check if Enterprise
Manager is present
Fix Summary: Execute emremove.sql prior to upgrade.
**********************************************************************
Fixup Returned Information:
WARNING: --> Enterprise Manager
Database Control repository found in the database
In Oracle Database 12c, Database Control is removed during
the upgrade. To save time during the Upgrade, this action
can be done prior to upgrading using the following steps after
copying rdbms/admin/emremove.sql from the new Oracle home
- Stop EM Database Control:
$> emctl stop dbconsole
- Connect to the Database using the SYS account AS SYSDBA:
SET ECHO ON;
SET SERVEROUTPUT ON;
@emremove.sql
Without the set echo and serveroutput commands you will not
be able to follow the progress of the script.
**********************************************************************
PL/SQL procedure successfully completed.
**********************************************************************
**************************************************
************* Fixup Summary
************
3
fixup routines generated INFORMATIONAL messages that should be reviewed.
PL/SQL procedure successfully completed.
**************** Pre-Upgrade Fixup
Script Complete *********************
PL/SQL procedure successfully completed.
Una vez
ejecutado el script es importante volver a ejecutar la herramienta Pre-Upgrade
Information para poder revisar los requisitos que aun se necesita
corregir.
Connected to:
Oracle Database 11g Enterprise Edition
Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage
Management, OLAP, Data Mining
and Real Application Testing options
SQL>
@/u01/app/oracle/product/12.1.0/db_1/rdbms/admin/preupgrd.sql
Acciones
recomendadas previo al upgrade.
Después
de ejecutar la nueva herramienta Pre-Upgrade Information y de corregir los
requisitos necesarios para el upgrade;
recomiendo también realizar las siguientes tareas.
Paso 1: Revisar
que se tenga al menos 6 grupos de Redologs de 100M o más.
GROUP# THREAD# SEQUENCE#
MBYTES MEMBERS ARC STATUS
---------- ---------- ----------
---------- ---------- --- -------------
1 1 18 100 2 YES INACTIVE
2 1 23 100 2 NO
CURRENT
3 1 19 100 2 YES INACTIVE
4 1 20 100 2 YES INACTIVE
5 1 21 100 2 YES INACTIVE
6 1 22 100 2 YES ACTIVE
Paso 2: Debido
a que vamos a activar diferentes opciones de recuperación, se recomienda tener un espacio amplio para el Fast Recovery Area
SQL> show parameter recover
NAME TYPE VALUE
------------------------------------
----------- -----------------------
db_recovery_file_dest string +DG_FRA
db_recovery_file_dest_size big integer 11000M
Paso 3: Para
mejorar el tiempo de upgrade se recomienda eliminar el Grid Control de manera
manual.
[oracle@upgrade12c ~]$ emctl
stop dbconsole
Oracle Enterprise Manager 11g Database
Control Release 11.2.0.3.0
Copyright (c) 1996, 2011 Oracle
Corporation. All rights reserved.
https://upgrade12c.oracle.com:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 11g
Database Control ...
...
Stopped.
SQL> @?/rdbms/admin/emremove.sql
SP2-0310: unable to open file
"/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/emremove.sql"
SQL>
SQL>
@/u01/app/oracle/product/12.1.0/db_1/rdbms/admin/emremove.sql
old
69: IF (upper('&LOGGING')
= 'VERBOSE')
new
69: IF (upper('VERBOSE') = 'VERBOSE')
PL/SQL procedure successfully completed.
Paso 4: Ejecutar
las estadísticas en el diccionario de datos. Esto también ayuda a que el upgade se
ejecute mas rápido.
SQL> EXECUTE dbms_stats.gather_dictionary_stats;
PL/SQL procedure successfully completed.
Paso 5: Siempre
antes de realizar un upgrade de base de datos es importante contar con un
backup full de la base de datos.
RMAN> backup incremental level 0 as compressed backupset database plus
archivelog delete input;
Starting backup at 16-APR-15
current log archived
using target database control file
instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=50 device
type=DISK
channel ORA_DISK_1: starting compressed
archived log backup set
channel ORA_DISK_1: specifying archived
log(s) in backup set
Con
todos estos pasos estamos listos para el upgrade de la base de datos a Oracle
12c.
Upgrade con
Database Upgrade Assistant.
Database Upgrade Assistant o DBUA es la herramienta grafica
que nos permite realizar upgrade de base de datos a una versión superior. Es muy simple de utilizar y simplifica el
proceso de upgrade.
Presenta una serie de pantallas que permiten definir
diferentes opciones para el upgrade. DBUA
también ejecuta la herramienta Pre-Upgrade
Information y automatiza muchas de las tareas post Upgrade.
Durante
los pasos explicaré porque el DBUA se ha vuelto una herramienta muy completa.
Paso 1: Antes de ejecutar el DBUA activamos
el flashback database en la base de datos 11g
SQL> startup mount
ORACLE instance started.
Total System Global Area 1014657024
bytes
Fixed Size 2234680 bytes
Variable Size 394266312 bytes
Database Buffers 612368384 bytes
Redo Buffers 5787648 bytes
Database mounted.
SQL> alter database flashback on;
Database altered.
SQL> alter database open;
Database altered.
Paso 2: Setear las variables de entorno con
el HOME de Oracle 12c.
[oracle@upgrade12c ~]$ export
ORACLE_BASE=/u01/app/oracle
[oracle@upgrade12c ~]$ export
ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1
[oracle@upgrade12c ~]$ export
PATH=$PATH:$ORACLE_HOME/bin
[oracle@upgrade12c ~]$ export
ORACLE_SID=orcl
[oracle@upgrade12c ~]$
Paso 3: Desde una sesión VNC lanzamos la aplicación
DBUA
[oracle@upgrade12c ~]$ env | grep ORACLE
ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1
[oracle@upgrade12c ~]$
[oracle@upgrade12c ~]$ dbua
Paso 4: Seleccionamos la opción Upgrade
Oracle Database
Paso 5: Seleccionamos la base de datos que va
a realizar el Upgrade. Es recomendable
que la base de datos se haya bajado de manera correcta antes de ejecutar el
DBUA.
Paso 6: Como les comentaba anteriormente, por
el DBUA también se ejecuta la herramienta Pre-Upgrade
Information.
No solo
se ejecuta sino que también te da la opción de poder solucionar rápidamente
requerimientos necesarios para el Upgrade
Paso 7: (Nuevo en Oracle 12c) En Oracle 12c el
DBUA te permite realizar el upgrade en forma paralela, esto ayuda a que el
proceso pueda ejecutarse en menos tiempo del previsto.
Podemos
observar en la sección post Upgrade que podemos compilar los objetos de manera
paralela y, también, tenemos la opción de Upgrade del Timezone de manera automática.
Paso 8: Para los que han leído mi artículo sobre Database
Express, deben saber que ya no existe más el Grid Control. Es por eso que el DBUA te da la opción de
configurar la nueva herramienta de monitoreo EM Database Express.
Paso 9: Al igual que versiones anteriores, el
DBUA te permite mover la base de datos y el FRA a otro directorio. Normalmente
esta operación se realiza por separado antes o después del Upgrade.
Paso 10: Definimos en que Listener se
registra la base de datos, después del Upgrade.
Paso 11: (Nuevo en Oracle 12c) Para mi esta es la
mejor opción agregada en el DBUA. Ahora
podemos activar el Flahsback database y definir un punto de recuperación previo
al upgrade.
De esta
manera si el upgrade fallara por algún motivo, el DBUA, automáticamente, regresa
la base de datos a un punto antes del upgrade.
A través de esta nueva opción la recuperación de la base de datos, ante
problemas, es muy rápida y de manera automática.
Es
cierto que en versiones anteriores podemos utilizar flashback database como método
de recuperación rápida. Sin embargo
todos los pasos de recuperación se deben de realizar de manera manual, lo que
hace que el tiempo de recuperación sea mayor.
Paso 12: Revisamos las opciones seleccionada
para el upgrade.
Paso 13: Durante el proceso de upgrade tenemos
la opción de poder monitorear que actividades está realizando el DBUA
seleccionando el botón Activity Log
También
podemos monitorear el Alter Log por si hubiera algún problema en la base de
datos durante el upgrade. Seleccionamos el boton Alert Log.
Estas
opciones nos dan la posibilidad de poder monitorear de manera detallada cada
paso que realiza el DBUA para el upgrade. El DBUA ya no se ve como una caja negra, donde no podemos saber que realiza. Ahora tenemos más control.
Esta es
una razón mas para poder elegir la opción DBUA antes del upgrade manual.
Paso 14: Finalizado el upgrade por el DBUA
seleccionamos la opción Upgrade Results.
Paso 15: Revisamos el reporte con los
resultados del Upgrade entregado por el DBUA.
Paso 16: Ejecutamos el script post upgrade
generado por la herramienta Pre-Upgrade Information.
Connected to:
Oracle Database 12c Enterprise Edition
Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage
Management, OLAP, Advanced Analytics
and Real Application Testing options
SQL>
@/u01/app/oracle/cfgtoollogs/orcl/preupgrade/postupgrade_fixups.sql
Post Upgrade Fixup Script Generated on
2015-04-16 04:09:38 Version: 12.1.0.1
Build: 006
Beginning Post-Upgrade Fixups...
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
**********************************************************************
Check Tag: OLD_TIME_ZONES_EXIST
Check Summary: Check for use of older
timezone data file
Fix Summary: Update the timezone using the DBMS_DST
package after upgrade is complete.
**********************************************************************
Fixup Returned Information:
INFORMATION: --> Older Timezone in
use
Database is using a time zone file older than version 18.
After the upgrade, it is recommended that DBMS_DST package
be used to upgrade the 12.1.0.1.0 database time zone version
to the latest version which comes with the new release.
Please refer to My Oracle Support note number 977512.1 for details.
**********************************************************************
PL/SQL procedure successfully completed.
**********************************************************************
[Post-Upgrade
Recommendations]
**********************************************************************
PL/SQL procedure successfully completed.
*****************************************
******** Fixed Object
Statistics ********
*****************************************
Please create stats on fixed objects two
weeks
after the upgrade using the command:
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
^^^ MANUAL ACTION SUGGESTED ^^^
PL/SQL procedure successfully completed.
**************************************************
************* Fixup Summary
************
1
fixup routine generated an INFORMATIONAL message that should be reviewed.
PL/SQL procedure successfully completed.
*************** Post Upgrade Fixup
Script Complete ********************
PL/SQL procedure successfully completed.
Paso 17: Validamos que la base de datos se
haya actualizado de manera correcta.
Oracle Database 12.1 Post-Upgrade Status
Tool 04-17-2015 01:08:18
Component Current Version Elapsed Time
Name Status Number HH:MM:SS
Oracle Server
.
VALID 12.1.0.1.0 00:30:02
JServer JAVA Virtual Machine
.
VALID 12.1.0.1.0 00:08:01
Oracle Workspace Manager
.
VALID 12.1.0.1.0 00:01:52
OLAP Analytic Workspace
.
VALID 12.1.0.1.0 00:02:05
Oracle OLAP API
.
VALID 12.1.0.1.0 00:00:38
Oracle XDK
.
VALID 12.1.0.1.0 00:01:44
Oracle Text
.
VALID 12.1.0.1.0 00:01:41
Oracle XML Database
.
VALID 12.1.0.1.0 00:07:43
Oracle Database Java Packages
.
VALID 12.1.0.1.0 00:00:43
Oracle Multimedia
.
VALID 12.1.0.1.0
00:05:15
Spatial
.
VALID 12.1.0.1.0 00:12:05
Oracle Application Express
.
VALID 4.2.0.00.27 00:39:54
Final Actions
. 00:05:51
Total Upgrade Time: 01:58:16
Paso 18: Realizar las pruebas funcionales para
poder asegurar que la base de datos y las aplicaciones no tengan ningún
problema.
Debido
a lo extenso del artículo, voy a finalizar aquí.
En el
siguiente articulo explicaré los pasos para hacer el upgrade Manual y el
Plug-IN de la base de datos actualizada.
Espero
les sirva.
No hay comentarios.:
Publicar un comentario