Sie sind auf Seite 1von 18

Step by Step Upgrading Oracle 10gR2 to Oracle 11gR2 | Oracle Migrations

Upgrading existing databases to the New Oracle 11gR2 (11.2.0.2.0) version using dbua
Hoy voy a compartirles la experiencia de migrar de version una base en RAC . (Tan sencillo como realizar la migracin de una Single Instance) Lo primero que vamos hacer es instalar los binarios de 11gR2 (11.2.0.2.0) que es la version a la cual estare migrando desde10gR2 (10.2.0.4.0).

Bajamos el software desde una de las paginas de oracle y procedemos a instalarlo en los paths que ya designamos. Finalizado esto vamos a proceder al paso ms importante que lo remarco abajo: Tomamos un Backup, No Olvidarnos! Una vez hecha esta tarea, me voy al $ORACLE_HOME/rdbms/admin de la base 11gR2 (11.2.0.2.0) :

$ cd /u01/app/oracle/product/11.2.0/db_oesm1n/rdbms/admin Ahora vamos a copiar el archivo utlu112i.sql en /tmp o en el $ORACLE_HOME/dbs 10gR2 (10.2.0.4.0) $ cp utlu112i.sql /u01/app/oracle/product/10.2.0/db_oesm1n/dbs Una vez realizada esta tarea vamos a loguearnos con privilegios a nuestra base que migraremos y ejecutaremos el archivo copiado.

$ cd /u01/app/oracle/product/10.2.0/db_oesm1n/dbs $ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Fri Mar 30 12:12:54 2012

Copyright (c) 1982, 2007, Oracle.

All Rights Reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining

and Real Application Testing options

SQL> !pwd /u01/app/oracle/product/10.2.0/db_oesm1n/dbs Antes de ejecutar el script, recomiendo loguear la salida.

SQL> spool upgrade_info.log SQL> @utlu112i.sql Oracle Database 11.2 Pre-Upgrade Information Tool 03-30-2012 12:15:57 Script Version: 11.2.0.2.0 Build: 001 . ********************************************************************** Database: ********************************************************************** --> name: --> version: --> compatible: --> blocksize: --> platform: OT2V1N 10.2.0.4.0 10.2.0.4.0 8192 Linux x86 64-bit

--> timezone file: V4 . ********************************************************************** Tablespaces: [make adjustments in the current environment] ********************************************************************** --> SYSTEM tablespace is adequate for the upgrade. .... minimum required size: 3312 MB --> UNDOTBS1 tablespace is adequate for the upgrade.

.... minimum required size: 142 MB --> SYSAUX tablespace is adequate for the upgrade. .... minimum required size: 66727 MB --> TEMP tablespace is adequate for the upgrade. .... minimum required size: 61 MB . ********************************************************************** Flashback: OFF ********************************************************************** ********************************************************************** Update Parameters: [Update Oracle Database 11.2 init.ora or spfile] Note: Pre-upgrade tool was run on a lower version 64-bit database. ********************************************************************** --> If Target Oracle is 32-Bit, refer here for Update Parameters: -- No update parameter changes are required. .

--> If Target Oracle is 64-Bit, refer here for Update Parameters: -- No update parameter changes are required. . ********************************************************************** Renamed Parameters: [Update Oracle Database 11.2 init.ora or spfile] ********************************************************************** -- No renamed parameters found. No changes are required. . **********************************************************************

Obsolete/Deprecated Parameters: [Update Oracle Database 11.2 init.ora or spfile] ********************************************************************** --> background_dump_dest "diagnostic_dest" --> user_dump_dest "diagnostic_dest" . 11.1 DEPRECATED replaced by 11.1 DEPRECATED replaced by

********************************************************************** Components: [The following database components will be upgraded or installed] ********************************************************************** --> Oracle Catalog Views [upgrade] VALID VALID VALID

--> Oracle Packages and Types

[upgrade]

--> JServer JAVA Virtual Machine [upgrade] --> Oracle XDK for Java [upgrade]

VALID VALID VALID VALID

--> Real Application Clusters --> Oracle Workspace Manager --> OLAP Analytic Workspace --> OLAP Catalog --> EM Repository --> Oracle Text --> Oracle XML Database --> Oracle Java Packages --> Oracle interMedia --> Spatial --> Data Mining --> Expression Filter

[upgrade] [upgrade] [upgrade] VALID VALID VALID VALID VALID

[upgrade] [upgrade] [upgrade]

[upgrade] [upgrade] [upgrade] [upgrade] [upgrade] VALID

VALID

VALID VALID

[upgrade]

--> Rule Manager --> Oracle OLAP API .

[upgrade]

VALID VALID

[upgrade]

********************************************************************** Miscellaneous Warnings ********************************************************************** WARNING: --> The "cluster_database" parameter is currently "TRUE" .... and must be set to "FALSE" prior to running a manual upgrade. WARNING: --> Database is using a timezone file older than version 14. .... After the release migration, it is recommended that DBMS_DST package .... be used to upgrade the 10.2.0.4.0 database timezone version .... to the latest version which comes with the new release. WARNING: --> Database contains INVALID objects prior to upgrade. .... The list of invalid SYS/SYSTEM objects was written to .... registry$sys_inv_objs. .... The list of non-SYS/SYSTEM objects was written to .... registry$nonsys_inv_objs. .... Use utluiobj.sql after the upgrade to identify any new invalid .... objects due to the upgrade. .... USER PUBLIC has 4 INVALID objects. .... USER ROS has 1 INVALID objects. WARNING: --> EM Database Control Repository exists in the database. .... Direct downgrade of EM Database Control is not supported. Refer to the .... Upgrade Guide for instructions to save the EM data prior to upgrade. WARNING: --> Your recycle bin contains 34 object(s). .... It is REQUIRED that the recycle bin is empty prior to upgrading

.... your database. PURGE DBA_RECYCLEBIN

The command:

.... must be executed immediately prior to executing your upgrade. . ********************************************************************** Recommendations ********************************************************************** Oracle recommends gathering dictionary statistics prior to upgrading the database. To gather dictionary statistics execute the following command while connected as SYSDBA:

EXECUTE dbms_stats.gather_dictionary_stats;

********************************************************************** Oracle recommends reviewing any defined events prior to upgrading.

To view existing non-default events execute the following commands while connected AS SYSDBA: Events: SELECT (translate(value,chr(13)||chr(10),' ')) FROM sys.v$parameter2 WHERE UPPER(name) ='EVENT' AND isdefault='FALSE'

Trace Events: SELECT (translate(value,chr(13)||chr(10),' ')) from sys.v$parameter2 WHERE UPPER(name) = '_TRACE_EVENTS' AND isdefault='FALSE'

Changes will need to be made in the init.ora or spfile.

********************************************************************** SQL> SQL> spool off SQL> quit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options $ Como podemos observar la salida del spool nos deja un reporte de algunas tareas que deberamos ejecutar o controlar o tener en cuenta en caso de comenzar con la migracin de la base. De esa Salida yo comenc por compilar los objetos descompilados. En el caso de no hacerlo puede aparecernos este Warning donde se nos advierte que comenzara el upgrade con objetos sin compilar.

Entocences me logueo como admin. $ sqlplus / as sysdba Ejecuto un metascript que tengo armado y sobre el cual hay un articulo en el BLOG.

SQL> SELECT 'EXECUTE DBMS_UTILITY.COMPILE_SCHEMA(''' || owner || ''',FALSE) ;' FROM dba_objects WHERE status = 'INVALID'; 2 3

'EXECUTEDBMS_UTILITY.COMPILE_SCHEMA('''||OWNER||''',FALSE);' ----------------------------------------------------------------------------EXECUTE DBMS_UTILITY.COMPILE_SCHEMA('PUBLIC',FALSE) ; EXECUTE DBMS_UTILITY.COMPILE_SCHEMA('PUBLIC',FALSE) ; EXECUTE DBMS_UTILITY.COMPILE_SCHEMA('PUBLIC',FALSE) ; EXECUTE DBMS_UTILITY.COMPILE_SCHEMA('PUBLIC',FALSE) ; EXECUTE DBMS_UTILITY.COMPILE_SCHEMA('ROS',FALSE) ;

SQL> Ejecuto la misma salida SQL> EXECUTE DBMS_UTILITY.COMPILE_SCHEMA('PUBLIC',FALSE) ;

PL/SQL procedure successfully completed.

SQL> EXECUTE DBMS_UTILITY.COMPILE_SCHEMA('ROS',FALSE) ;

PL/SQL procedure successfully completed. Tenemos que controlar la version de TIME ZONE de nuestra Base. En el caso que el resultado del query sea menor que 4 entonces debemos aplicar el patch time zone patch 5632264 de forma manual. SQL> select * from v$timezone_file;

FILENAME

VERSION

------------ ---------timezlrg.dat 4

Ahora me voy a ver cuantos objetos tengo en la RECYCLEBIN SQL> PURGE DBA_RECYCLEBIN ;

DBA Recyclebin purged. Ejecutamos las estadsticas. SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS; PL/SQL procedure successfully completed. Chequeo los tablespaces y sus espacios que tengo antes de comenzar la tarea. SQL> SELECT tablespace_name, round(sum(BYTES/1024/1024),0) FROM dba_data_files b WHERE tablespace_name NOT LIKE 'TEMP%' GROUP BY b.tablespace_name; De la salida general que no voy a mostrar, solo me interesa el tamao del tablespace SYSTEM TABLESPACE_NAME ROUND(SUM(BYTES/1024/1024),0)

------------------------------ ----------------------------SYSTEM 3070

20 rows selected.

SQL> Consulto cual es el datafile asociado a ese tablespace , por que debo agrandarlo segun la recomendacin. SQL> set line 150 SQL> col name format a80 SQL> set pages 200 SQL> select FILE#, NAME, BYTES/1024/1024 , TS# from v$datafile where NAME LIKE '%system%'; FILE# NAME ---------------------------------------------------------------------------------------- --------------- ---------BYTES/1024/1024 TS#

1 +DATA/ot2v1n/datafile/system.488.779216239 3070 0

1 row selected.

SQL> ALTER DATABASE DATAFILE '+DATA/ot2v1n/datafile/system.488.779216239' RESIZE 4000M;

Database altered.

SQL> Ahora voy a desactivar el modo ARCHIVE de la base & el FLASHBACK. Entonces vamos a bajar el RAC y solo voy a montar una de la instancias. SQL> alter database mount ;

Database altered.

SQL> select flashback_on from v$database;

FLASHBACK_ON -----------------NO

SQL> alter database noarchivelog;

Database altered.

SQL> alter database open ;

Database altered.

SQL> quit Otro punto a tener en cuenta es la deregistracion del servicio de RAC antiguo, de lo contrario lo detectara al querer crear uno nuevo y nos arrojara el siguiente mensaje: CRS-2671 : Error processing attributte CARDINALITY Value 0

Ahora, por una de las recomendaciones del advisor, me dice que desactive el cluster, pero esto arrojara un error en la migracin. As que luego de desactivarlo y ver que el DBUA no puede avanzar, volv al punto original y funcion.

Cluster Inactivo: No me funciona el DBUA y me obliga a terminar el proceso de migracin sin haber tocado la base.

SQL> sho parameter cluster

NAME

TYPE

VALUE

------------------------------------ ---------------------------------------cluster_database cluster_database_instances cluster_interconnects Este es error que aparece en el Instalador. boolean FALSE 1

integer string

Cluster Activo: El DBUA funciona y migra la base.

SQL> sho parameter cluster

NAME

TYPE

VALUE

------------------------------------ ---------------------------------------cluster_database cluster_database_instances cluster_interconnects SQL> quit Finalizada la implementacin de Cambios, en otra Terminal me logueo y seteo las variables de 11g y voy a proceder a crear el listener que utilizara el nuevo ambiente en 11g. $ . ot2v1n.sh.11g$ echo $ORACLE_HOME /u01/app/oracle/product/11.2.0/db_oesm1n $ echo $ORACLE_SID OT2V1N1$ cd $ORACLE_HOME $ cd bin/ $ ./netcaOracle Net Services Configuration: Configuring Listener:OT2V1N sdat2101lx... sdat2103lx... Listener configuration complete. Oracle Net Listener Startup: Listener started successfully. Oracle Net Services configuration successful. The exit code is 0 $ Bien, una vez que pasamos estos pasos procedemos a migrar. boolean TRUE 2

integer string

Primer Paso Tener un Backup, No Olvidarnos ! Ahora vamos a Ejecutar Con las variables de ambiente de 11GR2. Verificar que estn bien seteadas el ORACLE_HOME & ORACLE_BASE. $ORACLE_HOME/bin/dbua Ahora voy a poner las capturas de pantalla de lo que se hizo. 1) Comienza el Instalador.

2) Elegimos los discos de ASM.

3) Ac tenemos la posibilidad de elegir cantidad de procesos paralelos para poder tener una migracin ptima. Yo tena una base de 500GB y use los cuatro ncleos de mi CPU.

4) En este paso ponemos el path donde ira guardando logs de diagnostico.

5) Yo elijo esta opcin por que tenamos grid control y quiero que se configure con agente del host..

6) Ac elegimos el listener que configuramos previamente.

7) Nos muestra un resumen de la migracin en un formato HTML.

8) Ac les dejo un LOG de progreso.

9) Progreso 100 % Finalizado.

10) Como paso final nos muestra un HTML con los resultados de la migracin.

Ya con este ltimo paso se termino nuestra migracin. Despus de finalizada la migracin, modifico el parmetro compatible. Esto se hace para que active las nuevas features de Oracle 11gR2. Veamos como esta ahora: SQL> sho parameter compatible

NAME

TYPE

VALUE

------------------------------------ ---------------------------------------compatible Los pasos serian: SQL> alter system set compatible='11.2.0' scope=spfile sid='*'; Ahora subo y bajo la base y revisamos nuevamente para ver si introducimos el cambio correctamente. SQL> sho parameter compatible string 10.2.0.4.0

NAME

TYPE

VALUE

------------------------------------ ---------------------------------------compatible string 11.2.0

No olvidarnos de activar el FLASHBACK & ARCHIVELOG MODE. Ahora subo el servicio con comandos srvctl & ya podemos decir que finalizamos exitosamente nuestra tarea.

Pero como inquieto que soy, verifico el status de los componentes de la base: SQL> set line 150 SQL> col COMP_NAME format a70 SQL> select comp_name,version, status from dba_registry;

COMP_NAME VERSION STATUS

--------------------------------------------------------------------------------------------------- ----------Oracle Enterprise Manager VALID OLAP Catalog 11.2.0.2.0 Spatial VALID Oracle Multimedia 11.2.0.2.0 Oracle XML Database 11.2.0.2.0 Oracle Text 11.2.0.2.0 Oracle Data Mining 11.2.0.2.0 Oracle Expression Filter VALID Oracle Rule Manager 11.2.0.2.0 Oracle Workspace Manager VALID Oracle Database Catalog Views 11.2.0.2.0 VALID VALID 11.2.0.2.0 VALID 11.2.0.2.0 VALID VALID VALID VALID 11.2.0.2.0 11.2.0.2.0

Oracle Database Packages and Types 11.2.0.2.0 VALID

JServer JAVA Virtual Machine 11.2.0.2.0 Oracle XDK 11.2.0.2.0 Oracle Database Java Packages 11.2.0.2.0 OLAP Analytic Workspace VALID Oracle OLAP API VALID Oracle Real Application Clusters VALID 18 rows selected. 11.2.0.2.0 11.2.0.2.0 VALID 11.2.0.2.0 VALID VALID

SQL> Copio los siguientes componentes del ORACLE_HOME 10gR2 en el ORACLE_HOME 11gR2.

1. 2. 3. 4.

tnsnames.ora listener.ora (Merge) sqlnet.ora init$ORACLE_SID.ora (En RAC puede apuntar al ASM.)

Y finalmente tomo un backup inicial de la base de Datos ya migrada. Ahora puedo finalmente decir que concluyo la tarea exitosamente.

Das könnte Ihnen auch gefallen