Después
de haber explicado la administración de la Arquitectura Multitenant podemos
poner en práctica lo expuesto en artículos anteriores y realizar un Upgrade a
Oracle 12c.
En
este articulo explicare paso a paso como realizar un Upgrade de la
Infraestructura Grid a Oracle 12c.
Para
este ejemplo utilizaré el motor de base de datos y de Infraestructura Grid en versión
11.2.0.3. Esta arquitectura está
sobre un servidor con Oracle Linux 6.
Antes
de entrar a la explicar los pasos para el upgrade quiero responder algunas
preguntas que me hice yo mismo cuando comenzaba con el upgrade a Oracle 12c
- ¿Por qué tengo que hacer upgrade?
- ¿Voy a ejecutar un Upgrade o una Migración?
- ¿Puedo hacer Upgrade directo a Oracle 12c?
¿Por qué tengo que hacer Upgrade?
Es la primera pregunta que se me vino a la cabeza y estoy
seguro que también muchos han pensado lo mismo. Y las respuestas principales
pueden ser:
1.
Nuevas Funcionalidades
Poder hacer
uso de las nuevas funcionalidades de la base de datos. Estas nuevas funcionalidades ayudan a que la
administración y uso de la base de datos sea mucho más sencillo y con mucho mas
valor para el negocio.
2. Performance.
Con
cada nueva versión de base de datos, el optimizador va mejorando su
funcionalidad de manera exponencial.
Cada vez tiene más datos y herramientas para poder obtener mejores
planes de ejecución, lo que lleva a una mejor Performance.
3.
Corrección de Errores (Bugs)
Como
todo sistema, Oracle también puede presentar errores de fabrica. A estos errores les llamamos comúnmente
Bugs. Oracle está constantemente
tratando de solucionar estos errores a través de parches individuales o Patch
sets.
Con una
nueva versión los errores, de versiones anteriores, ya han sido solucionados;
esto disminuye la probabilidad de sufrir de Bugs en la herramienta.
4.
Soporte (Para mí, la más importante)
Por
favor presten atención al siguiente cuadro:
Este
cuadro muestra las fechas de soporte por cada versión de base de datos.
Como
pueden observar, versiones anteriores como 9i o 10g ya finalizaron su tiempo de
soporte hace muchos años atrás. No solo
eso, la
versión 11gR2 también ya ha finalizado su tiempo de soporte el mes de Enero del
2015. Puedo
asegurar entonces que el 100% de nuestras bases de datos ya no tienen soporte a
la fecha actual.
Pero
tranquilos, no se alarmen. Que no exista soporte para la versión 11gR2 quiere decir; que si algún cliente encuentra un Bug en el motor 11g que Oracle no haya
corregido antes, este no podrá ser corregido por Oracle. Errores pasados pueden ser solucionados con parches ya liberados con
anterioridad.
Siempre
está la opción de adquirir el Soporte Extendido o Sostenido pero, créanme, es
bastante costoso.
¿Voy a ejecutar un Upgrade o una Migración?
Con
esta pregunta quiero distinguir las diferencias entre Upgrade y Migración.
Upgrade
Un
Upgrade de base de datos se define como el proceso de modificar el diccionario
de datos para que pueda ser compatible con la nueva versión, en este caso
Oracle 12c.
Normalmente
las acciones dentro de un Upgrade involucran adición, modificación o eliminación
de:
- Columnas en las tablas del diccionario de datos.
- Paquetes y procedimientos
- Roles y Privilegios.
En
un Upgrade la data de la base de datos no es modificada, es por eso que el tamaño
de la base de datos no es un impacto para el tiempo del upgrade.
La
complejidad del upgrade está en el tipo de Hardware donde se encuentra, la
configuración y versión de la base datos.
Migración
El
proceso de migración implica aplicar diferentes tipos de cambios sobre la base
de datos. No solo de versión sino también:
- Servidor
- Sistema Operativo
- Character Set
- Storage y Otros.
Normalmente
la migración implica el movimiento o modificación de la data dentro de la base
de datos. En este caso, el tamaño de la
base de datos si es un impacto importante para el tiempo de migración.
En
este ejercicio lo que vamos a hacer es un UPGRADE, de una versión ya instalada, a
Oracle 12c.
¿ Puedo hacer un Upgrade directo a Oracle
12c?
Esta
respuesta va a depender mucho de que versión de base de datos tengan instalada.
Se puede
hacer Upgrade directo desde las siguientes versiones:
Oracle Release
|
Oracle Patchset
|
Oracle 10g
|
10.2.0.5
|
Oracle 11g R1
|
11.1.0.7
|
Oracle 11g R2
|
11.2.0.2 y superiores
|
Si la
versión actual de la base de datos no se encuentra entre las versiones indicadas
en el cuadro, no se podrá realizar un Upgrade directo a Oracle 12c. Para
estos casos es necesario realizar un paso previo de actualización a cualquier
de las versiones mostradas.
El
siguiente diagrama resumen los pasos a tomar dependiendo la versión que la base
de datos tiene.
Si se
desea realizar upgrade directamente a la versión Oracle 12c sin encontrarse en
las versiones bases, es posible utilizar otros procedimientos como:
- Transport Tablespace.
- Export/Import Datapump.
- Export/Import Original
=========================================================================
Empezamos el ejercicio con el Upgrade de la
Infraestructura Grid a Oracle 12c.
Siempre recomiendo que se haga este ejercicio
primero en un ambiente de Test para poder realizar todo tipo de pruebas.
UPGRADE de INFRAESTRUCTURA GRID a ORACLE 12c
Paso 1: Preparamos el servidor para poder instalar la
Infraestructura Grid Oracle 12c.
Estos pasos pueden encontrarlos con detalle
en mi post sobre Instalación de la Infraestructura Grid 12c. Aquí les dejo el link
Paso 2: Desde una sesión VNC lanzamos el
instalador de la Infraestructura Grid 12c.
[oracle@upgrade12c
Instaladores]$ cd grid/
[oracle@upgrade12c grid]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater
than 120 MB. Actual 1874 MB Passed
Checking swap space: must be greater
than 150 MB. Actual 3070 MB Passed
Checking monitor: must be configured to
display at least 256 colors. Actual
16777216 Passed
Preparing to launch Oracle Universal
Installer from /tmp/OraInstall2015-04-14_07-51-34PM. Please wait
...[oracle@upgrade12c grid]$
Paso 3:
Como nuestro servidor no tendrá conexión a Internet u Oracle Support. Elegimos la opción Skip software updates
Paso 4:
Como esta instalación es para un Upgrade a Oracle 12c. Elegimos la opción Upgrade
Oracle Grid Infraestructure or Oracle Automatic Storage Management
Paso 5:
Seleccionamos el idioma a instalar.
Paso 6:
Configuramos los grupos de sistema Operativo para cada función a ejecutar en el ASM de la
nueva Infraestructura Grid 12c.
Paso 7:
Definimos los directorios ORACLE_BASE y ORACLE_HOME.
El
ORACLE_BASE se recomienda ser el mismo que la versión Oracle 11g ya instalada.
Paso 8 (Nuevo en Oracle 12c): En Oracle 12c
tenemos la nueva opción de poder configurar el password del oot o credenciales
para el sudo. De esta manera que se puede ejecutar los scripts de instalación finales
sin necesidad de que lo ejecute el administrador del Sistema Operativo.
Para
este caso como se trata de un upgrade de la Infraestructura Grid, el script que se
ejecuta de manera automática es: rootupgrade.sh
Paso 9:
Revisamos si existe algún pre-requisito faltante.
Paso 10:
Revisamos la configuración seleccionada antes de la instalación.
Paso 11:
Para los que no configuraron el paso 8, van a tener que lanzar manualmente el
script rootupgrade.sh con el usuario root.
Antes
de lanzar el script con el usuario root, se recomienda bajar todas las bases de
datos que se conectan a la Infraestructura Grid. Para mi ejemplo bajo la base de datos 11gR2
ORCL.
SQL*Plus: Release 11.2.0.3.0 Production
on Thu Apr 16 00:13:14 2015
Copyright (c) 1982, 2011, Oracle. All rights reserved.
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> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
Cuando
se ejecuta el script rootupgrade.sh se
realiza la tarea de desactivación de la Infraestructura Grid versión 11g
y activación de la versión 12c.
[root@upgrade12c ~]#
/u01/app/oracle/product/12.1.0/grid/rootupgrade.sh
Performing root user operation for
Oracle 12c
The following environment variables are
set as:
ORACLE_OWNER= oracle
ORACLE_HOME=
/u01/app/oracle/product/12.1.0/grid
Enter the full pathname of the local bin
directory: [/usr/local/bin]:
The file "dbhome" already
exists in /usr/local/bin. Overwrite it?
(y/n)
[n]:
The file "oraenv" already
exists in /usr/local/bin. Overwrite it?
(y/n)
[n]:
The file "coraenv" already
exists in /usr/local/bin. Overwrite it?
(y/n)
[n]:
Entries will be added to the /etc/oratab
file as needed by
Database Configuration Assistant when a
database is created
Finished running generic part of root
script.
Now product-specific root actions will
be performed.
Using configuration parameter file:
/u01/app/oracle/product/12.1.0/grid/crs/install/crsconfig_params
ASM Configuration upgraded successfully.
Creating OCR keys for user 'oracle',
privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR
keys.
Creating OCR keys for user 'root',
privgrp 'root'..
Operation successful.
CRS-4664: Node upgrade12c successfully
pinned.
2015/04/15 23:49:20 CLSRSC-329:
Replacing Clusterware entries in file 'oracle-ohasd.conf'
2015/04/15 23:53:01 CLSRSC-329:
Replacing Clusterware entries in file 'oracle-ohasd.conf'
upgrade12c 2015/04/15 23:58:02
/u01/app/oracle/product/12.1.0/grid/cdata/upgrade12c/backup_20150415_235802.olr
upgrade12c 2015/03/13 12:25:38 /u01/app/oracle/product/11.2.0/grid/cdata/upgrade12c/backup_20150313_122538.olr
2015/04/15 23:59:15 CLSRSC-327:
Successfully configured Oracle Grid Infrastructure for a Standalone Server
Paso 12:
Finalizamos la instalación de la Infraestructura Grid 12c.
Paso 13:
Subimos las bases de datos, si aun no se han activado.
SQL> startup
ORACLE instance started.
Total System Global Area 1014657024
bytes
Fixed Size 2234680 bytes
Variable Size 335546056 bytes
Database Buffers 671088640 bytes
Redo Buffers 5787648 bytes
Database mounted.
Database opened.
Paso
14: Validamos todos los recursos administrador por la Infraestructura Grid.
[oracle@upgrade12c upgrade12c]$ crsctl
status resource -t
-------------------------------------------------------------------------
Name Target State
Server State
details
-------------------------------------------------------------------------
Local Resources
-------------------------------------------------------------------------
ora.DG_DATA.dg
ONLINE ONLINE
upgrade12c STABLE
ora.DG_FRA.dg
ONLINE ONLINE
upgrade12c STABLE
ora.LISTENER.lsnr
ONLINE ONLINE
upgrade12c STABLE
ora.asm
ONLINE ONLINE
upgrade12c
Started,STABLE
ora.ons
OFFLINE OFFLINE upgrade12c STABLE
-------------------------------------------------------------------------
Cluster Resources
-------------------------------------------------------------------------
ora.cssd
1 ONLINE
ONLINE upgrade12c STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE
upgrade12c STABLE
ora.orcl.db
1 ONLINE ONLINE
upgrade12c
Open,STABLE
-------------------------------------------------------------------------
Problemas Post-Upgrade de la
Infraestructura Grid 12c.
Después
de realizar el upgrade de la Infraestructura Grid a Oracle 12c es posible que
la instancia ASM no se active de manera automática.
Esto se
debe a que no se tiene definido el parámetro local_listener en la instancia ASM.
Este parámetro es necesario para la instancia ASM 12c.
SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------
----------- ------------------------
local_listener string
Lo que
debemos de hacer en este caso es definir el listener en el archivo tnsnames.ora
del ASM_HOME como un alias.
[oracle@upgrade12c admin]$ cat
tnsnames.ora
LISTENER_+ASM=
(ADDRESS=(PROTOCOL=TCP)(HOST=172.68.1.25)(PORT=1521))
Posteriormente
definimos el parámetro local_listener
con el alias definido en el tnsnames.ora
SQL> alter system set
local_listener='LISTENER_+ASM' scope=both;
System altered.
SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------
----------- ------------------------
local_listener string LISTENER_+ASM
Procedemos
a reiniciar los servicios de la Infraestructura Grid 12c
[oracle@upgrade12c admin]$ crsctl stop
has
CRS-2791: Starting shutdown of Oracle
High Availability Services-managed resources on 'upgrade12c'
CRS-2673: Attempting to stop
'ora.DG_DATA.dg' on 'upgrade12c'
CRS-2673: Attempting to stop
'ora.DG_FRA.dg' on 'upgrade12c'
CRS-2673: Attempting to stop
'ora.LISTENER.lsnr' on 'upgrade12c'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on
'upgrade12c' succeeded
CRS-2677: Stop of 'ora.DG_FRA.dg' on
'upgrade12c' succeeded
CRS-2677: Stop of 'ora.DG_DATA.dg' on
'upgrade12c' succeeded
CRS-2673: Attempting to stop 'ora.asm'
on 'upgrade12c'
CRS-2677: Stop of 'ora.asm' on
'upgrade12c' succeeded
CRS-2673: Attempting to stop 'ora.evmd'
on 'upgrade12c'
CRS-2677: Stop of 'ora.evmd' on
'upgrade12c' succeeded
CRS-2673: Attempting to stop 'ora.cssd'
on 'upgrade12c'
CRS-2677: Stop of 'ora.cssd' on
'upgrade12c' succeeded
CRS-2793: Shutdown of Oracle High
Availability Services-managed resources on 'upgrade12c' has completed
CRS-4133: Oracle High Availability
Services has been stopped.
[oracle@upgrade12c admin]$
[oracle@upgrade12c admin]$ crsctl start
has
CRS-4123: Oracle High Availability
Services has been started.
De esta
manera hemos explicado a detalle cómo se realiza el upgrade de la
Infraestructura Grid a la versión Oracle 12c.
En el
siguiente articulo explicare el Upgrade de la base de datos a la versión Oracle
12c.
Espero les sirva.
No hay comentarios.:
Publicar un comentario