Post on 17-Jun-2015
Valentín Leonard Tabacaru - Presales Technology Consultant
Los Secretos Mas Guardados del Proceso de Actualización a Oracle 11g
Introducción
Agenda
Los Secretos
Conclusiones
Los Mitos
¿Cuál es el momento de migrar, y dónde?
•• ActualizarActualizar a Oracle Database 10gR2?
o a Oracle Database 11g?
o directamente a Oracle Database11.2??
¡¡¡¡¡¡Esta esEsta essu eleccisu eleccióón ...!!!n ...!!!
t2008
2003
2004
2005
2006
2007
2002
2009
2010
Hoy
Lifetime Support Policy
2011
2012
2013
2014
Sustaining Support
Premier Support
R2July 2007
Extended Support
July 2010
January 2009 January 2012
R2 July 2010 July 2013
http://www.oracle.com/support/library/brochure/lifetime-support-technology.pdf
2015
2016
August 2012 August 2015
July 2008
July 2011
R2
2017
2018
Actualizar a Oracle Database 11g
R2R2
R2R2
≥≥≥≥ 10.2.0.210.2.0.210.2.0.210.2.0.2≥≥≥≥ 10.2.0.210.2.0.210.2.0.210.2.0.2
10.1.0.510.1.0.510.1.0.510.1.0.510.1.0.510.1.0.510.1.0.510.1.0.5
R2R2
≥≥≥≥ 7.3.47.3.47.3.47.3.4≥≥≥≥ 7.3.47.3.47.3.47.3.4
≥≥≥≥ 8.0.68.0.68.0.68.0.6≥≥≥≥ 8.0.68.0.68.0.68.0.6
≥≥≥≥ 8.1.7.48.1.7.48.1.7.48.1.7.4≥≥≥≥ 8.1.7.48.1.7.48.1.7.48.1.7.4
≥≥≥≥ 9.0.1.49.0.1.49.0.1.49.0.1.4≥≥≥≥ 9.0.1.49.0.1.49.0.1.49.0.1.4
9.2.0.89.2.0.89.2.0.89.2.0.89.2.0.89.2.0.89.2.0.89.2.0.8
≥≥≥≥ 9.2.0.49.2.0.49.2.0.49.2.0.4≥≥≥≥ 9.2.0.49.2.0.49.2.0.49.2.0.4
Las flechas sin etiquetas significan que no requiere algún parche en concreto
Introducción
Agenda
Los Secretos
Conclusiones
Los Mitos
Primer Secreto
• Lea la documentación
Documentación
• Note: 601807.1 Upgrade Companion 11g
• Note: 785351.1 Upgrade Companion 11 Release 2
Documentación
• Note: 601807.1 Upgrade Companion 11g
Documentación
• Note: 601807.1 Upgrade Companion 11g
Documentación
• Guías de Actualización
++++
http://download.oracle.com/docs/cd/B28359_01/server.111/b28300/toc.htmhttp://download.oracle.com/docs/cd/E11882_01/server.112/e10819/toc.htm
• Note:429825.1Complete Checklist for Manual Upgrades to 11g
• Note:837570.1Complete Checklist for Manual Upgrades to 11g Release 2
• Note: 421191.1Complete checklist for manual upgrades from X to Y
Segundo Secreto
• Aplique parches a su nueva $ORACLE_HOMEantes de hacer la actualización
Aplicar Parches
• Instale los parches disponibles sobre la nueva $ORACLE_HOMEantes de empezar el proceso de actualización
Parches Recomendados
Parches Recomendados
Parches Recomendados
• Note 161818.1
Tener en Cuenta
Tener en Cuenta
• Note:454507.1
Instalación de Patch Set Update (PSU)
• Instale también los PSUs• Note:854428.1: Introduction to Database Patch Set Updates
• Los PSUs para la base de datos incluyen:• Arreglos y ajustes para asuntos críticos que puedan afectar a un número grande de clientes
y que ya se han demostrado como problemas• Arreglos y ajustes Critical Patch Update (CPU)
• Los PSU para la base de datos no incluyen:• Cambios que necesitan re-certificación• Arreglos y ajustes que imponen cambios de configuración
• Típicamente entre 50 y 100 ajustes de nuevos bugs - cumulativos• Garantizados para instalación en línea con RAC• Cambian en quinto dígito del número de versión (10.2.0.4.3)• Se lanzan 4x año (igual que los CPUs – la misma fecha)
• Plataformas:Solaris SPARC64, Linux x86 and x86-64, HP-UX PA-RISC, HP Itanium, IBM AIX
Parches Recomendados para el SO
• Note:169706.1: OS Installation and Configuration
• Note: 401705.1 Linux x86, x86-64, and s390x Requirements Reference List
Tercer Secreto
• Guarde las estadísticas de rendimiento
Guarde las Estadísticas de Rendimiento
• Colectar suficientes datos sobre el rendimiento antes del upgrade es algo de máxima importancia
• Suficiente significa: Empezar como mínimo 4 semanas antes del proceso de actualización
• Recoja estadísticas de rendimiento precisas
• En Oracle 8i/9i:• Use STATSPACK
• Exporte el esquema PERFSTAT justo antes del upgrade
• Note:466350.1 STATSPACK before/after upgrade
• En Oracle 10g/11g:• Use AWR
• Snapshots cada 30-60 minutos – retención: >30 días• Exporte el AWR usando DBMS_SWRF_INTERNAL.AWR_EXTRACT
• Use los informes ADR DIFF para hacer comparación antes/después:DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_HTML
Cuarto Secreto
• El proceso de actualización no llevará horas...
Duración del Upgrade
• ¿Cuánto tardará el upgradeen finalizar?
• Independiente de:• Tamaño de la base de datos
• Tipos de datos utilizados
• Dependiente especialmente de:• El número de componentes y opciones instaladas
• La validez y la actualidad de las estadísticas del diccionario de datos
• Número de sinónimos – estos se re-compilan (actualizar de 9i)
• Número de objetos en XDB• Muy poco, pero importa si COMPATIBLE está incrementado:
• Número de datafiles
• Tamaño de los redo logs
Duración del Upgrade
• Acelere el proceso de actualización por:• Truncar la tabla de auditoria SYS.AUD$
• Crear estadísticas de diccionario justo antes del upgrade• Oracle 9i:
• Oracle 10g/11g:
SQL> truncate SYS.AUD$;SQL> truncate SYS.AUD$;
SQL> exec DBMS_STATS.GATHER_SCHEMA_STATS('SYS', options => 'GATHER',estimate_percent =>
DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'FOR
ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL> exec DBMS_STATS.GATHER_SCHEMA_STATS('SYS', options => 'GATHER',estimate_percent =>
DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'FOR
ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL> exec DBMS_STATS.GATHER_DICTIONARY_STATS;SQL> exec DBMS_STATS.GATHER_DICTIONARY_STATS;
Quinto Secreto
• Operaciones de limpieza
Papelera de Reciclaje
• Si se actualiza desde la versión 10g o 11g, se recomienda vaciar el recycle bin antes del upgrade.
SQL> purge DBA_RECYCLEBIN;SQL> purge DBA_RECYCLEBIN;
Drop de la tabla plan
• Haga drop de la tabla SYS.PLAN_TABLE$ y del sinónimo público PUBLIC.PLAN_TABLE
• Para más información, por favor consulte:• Alert Note:782735.1, Note:605317.1 y Note:736353.1
• Si no, el componente “Oracle Server” puede resultar INVÁLIDO después del upgrade• Se aplica a actualizaciones a las versiones:
• 10.2.0.4, 11.1.0.6 y 11.1.0.7
• Asunto introducido con el paquete DBMS_SQLPA
• Consiga los Objetos INVÁLIDOS:
• Recompilación de los objetos inválidos de SYS y SYSTEM - utlrp.sql• Compare los objetos inválidos de antes y después del upgrade
• Desde 11.1.0.7 la compilación se hace de modo automático• registry$sys_inv_objs, registry$nonsys_inv_objs => utluiobj.sql
• utlrp.sql• Lanza utlprp.sql con CPU_COUNT-1
• Determina automáticamente el tipo de recompilación – serial o paralelo• Recompila todos los objetos INVÁLIDOS • Utiliza el paquete utl_recomp
• Re-activa automáticamente los índices funcionales• utlprp.sql se puede arrancar directamente:
• SQL> @utlprp 7
• Esto puede ser útil para minimizar la utilización del CPU
SQL> SELECT UNIQUE object_name, object_type, ownerFROM dba_objects WHERE status='INVALID';
SQL> SELECT UNIQUE object_name, object_type, ownerFROM dba_objects WHERE status='INVALID';
Recompilar los Objetos Inválidos
Sexto Secreto
• Como gestionar los cambios horarios
Parches Timezone - 11g
• Actualizar a la base de datos Oracle 11g:• Novedad en 11g - $OH tiene timezone V4
• Al $OH origen (<10.2.0.4) se debe aplicar el parche para actualizarlo a timezone V4
• Note:359145.1Descárguese y ejecute el script utltzuv2.sql
• Note:413671.1Descárguese y aplique el parche
Parches Timezone - 11g Release 2
• Para actualizar a Oracle Database 11g Release 2:• Novedad en 11.2 - $OH tiene timezone V11
• No se debe aplicar parche a la $OH origen
• Sólo se debe ajustar la base de datos si se utiliza el tipo de datosTIMESTAMP WITH TIMEZONE
• Conversión realizada después del upgrade
• Mire la Nota 944122.1• El paquete DBMS_DST
• DBMS_DST.FIND_AFFECTED_TABLES
• DBMS_DST.BEGIN_UPGRADE
• DBMS_DST.UPGRADE_DATABASE
• DBMS_DST.END_UPGRADE
R2
Séptimo Secreto
• Siempre ejecutar el pre-upgrade script:• Actualizar a Oracle Database 11.1 : utlu111i.sql
• Actualizar a Oracle Database 11.2 : utlu112i.sql
Pre-Upgrade Check
• Ejecute utlu112i.sql en su entorno actualOracle Database 11.2 Pre-Upgrade Information Tool 09-21-2009 22:33:20
********************************************************************** Database: ********************************************************************** --> name: ORCL --> version: 10.2.0.3.0 --> compatible: 10.2.0.3.0 --> blocksize: 8192 --> platform: Linux IA (32-bit) --> timezone file: V4
[..]
********************************************************************** Update Parameters: [Update Oracle Database 11.2 init.ora or spfile] ********************************************************************** WARNING: --> "java_pool_size" needs to be increased to at least 64 MB
[..]
********************************************************************** Miscellaneous Warnings ********************************************************************** WARNING: --> Database is using a timezone file older than version 11. .... After the release migration, it is recommended that DBMS_DST package .... be used to upgrade the 10.2.0.3.0 database timezone version.... to the latest version which comes with the new release.
Oracle Database 11.2 Pre-Upgrade Information Tool 09-21-2009 22:33:20
********************************************************************** Database: ********************************************************************** --> name: ORCL --> version: 10.2.0.3.0 --> compatible: 10.2.0.3.0 --> blocksize: 8192 --> platform: Linux IA (32-bit) --> timezone file: V4
[..]
********************************************************************** Update Parameters: [Update Oracle Database 11.2 init.ora or spfile] ********************************************************************** WARNING: --> "java_pool_size" needs to be increased to at least 64 MB
[..]
********************************************************************** Miscellaneous Warnings ********************************************************************** WARNING: --> Database is using a timezone file older than version 11. .... After the release migration, it is recommended that DBMS_DST package .... be used to upgrade the 10.2.0.3.0 database timezone version.... to the latest version which comes with the new release.
Pre-Upgrade Check
• Consiga la última versión de utlu1nmi.sql
• ¡Descárguesela ya!
•Nota: 884522.1
Octavo Secreto
• Después del upgrade ...
Post Upgrade
• Cree las estadísticas de sistema durante una carga de trabajo usual – si no, el CBO utilizará valores inapropiados:
SQL> select pname NAME, pval1 VALUE, pval2 INFOfrom aux_stats$;
NAME VALUE INFO-------------------- ---------- ------------------------------STATUS COMPLETEDDSTART 04-03-2009 12:30DSTOP 05-03-2009 12:30FLAGS 1CPUSPEEDNW 1392.39IOSEEKTIM 8.405IOTFRSPEED 255945.605...
SQL> select pname NAME, pval1 VALUE, pval2 INFOfrom aux_stats$;
NAME VALUE INFO-------------------- ---------- ------------------------------STATUS COMPLETEDDSTART 04-03-2009 12:30DSTOP 05-03-2009 12:30FLAGS 1CPUSPEEDNW 1392.39IOSEEKTIM 8.405IOTFRSPEED 255945.605...
SQL> exec DBMS_STATS.GATHER_SYSTEM_STATS('start');...SQL> exec DBMS_STATS.GATHER_SYSTEM_STATS('stop');
SQL> exec DBMS_STATS.GATHER_SYSTEM_STATS('start');...SQL> exec DBMS_STATS.GATHER_SYSTEM_STATS('stop');
Post Upgrade
• Ejemplo: carga de trabajo OLTP• Tiempo de ejecución sin estadísticas de sistema: 2:19h
• Tiempo de ejecución con estadísticas de sistema: 2:07h• => 9% más rápido
Post Upgrade
• Cree estadísticas sobre las tablas fijas• Inmediatamente después que catupgrd.sql haya finalizado• Esto acelerará el proceso de re-compilación con utlrp.sql
• Otra vez más: unos días después cuando haya ejecutado alguna carga de trabajo regular
SQL> exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;SQL> exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
Introducción
Agenda
Los Secretos
Conclusiones
Los Mitos
Primer Mito
• El upgrade es demasiado simple... de modo que no necesito volver atrás
Estrategias de vueltas atrás
• Siempre:• Haga un backup completo en línea con RMAN
• ¡Pruebe al menos una vez la recuperación del sistema!
• Opciones de volver a la versión anterior (downgrade) :• Volver a Oracle Database 10g/11g• Utilice los scripts de downgrade catdwgrd.sql y catrelod.sql
• Mire Database Upgrade Guide, Capítulo 6 y Note:443890.1
• Datapump con el parámetro VERSION (se puede especificar COMPATIBLE)
• Volver a Oracle Database 9i• Export/import• Utilice exp en 9i para extraer los datos, e imp para importar los datos
• Note:158845.1
Segundo Mito
• Nadie no utiliza 11g todavía
60 Referencias de Clientes con 11g
01-JUL-2009
60 Referencias de Clientes con 11g
01-JUL-2009
Ejemplos de Clientes
• Ministerio de Justicia – Londres, Reino Unido• Utilizan Oracle Database 11g
• Incremento de rendimiento de by 30%
• Seguridad fortificada• http://www.oracle.com/customers/snapshots/ministry-of-justice-database-snapshot.pdf
Tercer Mito
• El clásico export/import es la mejor, y la más rápida manera de actualizar la base de datos
La Lógica del Upgrade
Stay on same OS?Stay on same OS?NN YY
UPGRADEUPGRADEExport/ImportExport/Import
CTAS, COPYCTAS, COPY
Transportable TablespacesTransportable Tablespaces
Transportable DatabaseTransportable Database
Oracle StreamsOracle Streams
DBUA DBUA
Downtime >30min?Downtime >30min?
YY
NN
SQL ApplySQL Apply
ORACLE recommended
ORACLE recommended
CLI CLI SQL> @catupgrd
Cuarto Mito
• El upgrade por línea de comandos es mejor que por interfaz gráfica DBUA
Command Line vs. DBUA
• El DBUA realiza varios chequeos muy útiles a la hora de realizar la actualización
• Menos posibilidades de recibir errores• El DBUA hace los cambios de parámetros y establece los
valores por usted
• DBUA utiliza los mismos scripts
Quinto Mito
• Siempre es la culpa del optimizador...
Prever los Cambios del Plan de Ejecución
• Métodos clásicos:• Rule Based Optimizer (RBO desupport since Oracle 10g - Note:189702.1)
• Hints
• Stored Outlines
• Rescribir las sentencias SQL• OPTIMIZER_FEATURES_ENABLE=n.n.n
• Cambiar ciertos parámetros del optimizador
• Importar y arreglar objetos y estadísticas del sistema
• Moderno, eficaz y optimizado con respecto al consumo de recursos:• SQL Plan Management
Sin SQL Plan Management
• El reto de “congelar” los planes de ejecución y las estadísticas
• Dificultad:• Se hace parse de la sentencia y se crea el plan• La verificación se hace durante la ejecución:
• Ahora unas circunstancias cambian (estadísticas, versión, parámetros)• Se crea un nuevo plan – probablemente peor
HJ
HJ
GB
Parse Execute Plan aceptable
NL
NL
GB
Parse Execute Quizá planno aceptable
SQL Plan Management
• Primera fase - Captura• OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=TRUE
Parse
HJ
HJ
GB
Plan History
HJ
HJ
GB
Plan Baseline
Execute Plan aceptable
El plan inicial seráaceptado la próxima
vez se agregará aSQL Plan Baseline
SQL MANAGEMENT BASEReside en SYSAUX TS.
Ocupa máx. 10% de SYSAUX.Cada semana se borran los planes
no usados de hace más de 53 semanas [por defecto].
SQL Profiles
SQL Plan Management
• Segunda fase - Selección• Se rehace parse de la misma sentencia, y obtenemos otro plan
• OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=FALSE
Parse
El nuevo plan se agrega al Plan
History, pero no se usará a menos que
esté verificado
NL
NL
GB
Plan History
Plan Baseline
HJ
HJ
GB
GB
NL
NL
SQL Plan Management
• Segunda fase - Selección• Por defecto: OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=FALSE
Parse
HJ
HJ
GB
Execute Plan averiguado y aceptado
Plan History
Plan Baseline
HJ
HJ
GB
GB
NL
NL
El optimizador usarásólo uno de los planes
de ejecución verificados,
almacenados en SQL Baseline por que sólo
éstos planes garantizan la ESTABILIDAD
SQL Plan Management
• Tercera fase - Evolución
DBA
Optimizer
Plan History
Plan Baseline
HJ
HJ
GB
GB
NL
NLGB
NL
NL
Los planes mejores, o similares, se puedenañadir al SQL Plan Baseline
El plan inferiorse guarda enPlan History
DBA programala verificación
Plan History
Plan Baseline
GB
NL
NL
GB
HJ
HJ
GB
NL
NL
SQL Plan Management - Upgrade
• Escenario de actualización
Staging
Table
STSexp imp
expdp impdpDB-Link ...
STS
Los planes 10.2 se agregaránal SQL Plan Baseline
Plan History
Plan Baseline
GB
NL
NL
GB
HJ
HJ
GB
NL
NL
GB
NL
NL
Cada nuevo plan mejor seráguardado en Plan History
� �
Sexto Mito
• Mejor no probar... seguro que algo saldrá mal, de todos modos
Las Pruebas son el Secreto del Éxito
• ¡Nunca cambiar demasiados componentes de un golpe!
• Documente todos los cambios en un historial de cambios.
• ¡Siempre use datos reales de producción para las pruebas!
• Resérvese suficiente tiempo y recursos para las pruebas.
• SIEMPRE colecte suficientes datos del rendimiento ANTES de empezar el upgrade!!
• ¡Ponga la base de una estrategia de retroceder!
• POR FAVOR, pruebe su estrategia de retroceder - ¿Está usted seguro que funciona?
• Acuérdense:La actualización nunca ha sido más fácil – ¡sin embargo tenemos que seguir hacer bien la pruebas!
Introducción
Agenda
Los Secretos
Conclusiones
Los Mitos
Resumen
• El upgrade nunca ha sido más fácil...• Pero no hay que olvidar probar detenidamente
• La base de datos Oracle 11g tiene muchas características y funcionalidades excelentes• Es muy estable y completamente optimizada
• SQL Plan Management
• Ofrece actualización de aplicaciones en línea
• Entonces ¿qué está esperando? ☺☺☺☺
<Insert Picture Here>
Recursos Adicionales
Upgrade Webpage en OTN• http://www.oracle.com/technology/products/database/oracle11g/upgrade/index.html
OTN Upgrade Forum
• http://forums.oracle.com/forums/forum.jspa?forumID=583&start=0
Upgrade Blog
• http://blogs.oracle.com/UPGRADE/
Preguntas
valentin.tabacaru@oracle.com