sábado, 18 de maio de 2019

Upgrade Non-CDB Oracle Database to 12.2 using DBUA

1. Ambiente Utilizado


Abaixo estão as principais caracteristicas do ambiente que será atualizado:

Servidores srv-ora-rac01 srv-ora-rac02
Database Name NONCDB01 NONCDB01
Instance Name NONCDB011 NONCDB012
GI Version 12.2.0.1 12.2.0.1
Database Source Version 12.1.0.2 12.1.0.2
Database Dest Version 12.2.0.1 12.2.0.1
ASM Comp 12.2.0.0.0 12.2.0.0.0
ASM DG Comp 12.2.0.0.0 12.2.0.0.0
SO  Red Hat 7.5 Red Hat 7.5


2. Upgrade Path


Diversos são os fatores que irão influenciar no metodo escolhido, um deles é a versão do banco de origem, para o upgrade para o 12.2 a versão minima suporta é a 11.2.0.3.0, portanto somente a partir do Oracle 11.2.0.3 podemos realizar um Direct Upgrade, versões anteriores requerem upgrades intermediários:


Direct Upgrade


Source Database Target Database
11.2.0.3 / 11.2.0.4 12.2.x
12.1.0.1 / 12.1.0.2 12.2.x

Indirect Upgrade


Source Database >> Intermediate upgrade path >> Target database
11.2.0.1 / 11.2.0.2 --> 11.2.0.4 --> 12.2.x
11.1.0.6 / 11.1.0.7 --> 11.2.0.4 --> 12.2.x
10.2.0.2/10.2.0.3/10.2.0.4/10.2.0.5 --> 11.2.0.4 / 12.1.0.2 --> 12.2.x
10.1.0.5 --> 11.2.0.4 / 12.1.0.2 --> 12.2.x
9.2.0.8 --> 11.2.0.3 / 11.2.0.4 --> 12.2.x

3. Oracle Pre-Upgrade Checklist

A lista a seguir foi resumida a partir da documentação oficial, Oracle Upgrade Check List, algumas validações são feitas automatica pelo DBUA, outras não, esse check list é importante ter em mente pois 


  • Limpar a Base de dados
    • Limpar a Reycle bin
    • Avaliar objetos inválidos no sys/system
    • Avaliar objetos Duplicados sys/system
  • Avaliar componentes
    • Componentes Inválidos
    • Avaliar componentes Obrigatórios
    • Remover Componentes Obsoletos
  • Avaliar Materialized Views
    • Validar o Status de MViews e realizar o refresh.
  • Testar a integridade de da base
    • Executar o preupgrade.jar
  • Avaliar o time zone
    • No 12.2 o default é V26, se a origem estiver com valor maior atualizar o destino.
  • Atualizar Estatisticas
  • Backup da base de dados
  • Possuir a versão 12.2 instalada
  • Se utilizar ASM, o ASM deve ser igual ou maior a versão do RDBMS.

4. Pre-Upgrade


O Script de Pre-Upgrade passou por algumas melhorias entre a versão 12.1 e 12.2, como no post dhnomura - upgrade to 12.1 já haviam algumas notas de melhorias na 12.1 a 12.2 melhorou em alguns aspectos muito interessantes, ele não é mais um script SQL, agora é um java e permite inputs, podemos controlar o tipo e local de output, podemos dizer quais PDBs validar, após sua execução será gerado 3 arquivos, dois fixup, pre e pos upgrade e um log detalhado com recomendações e ações neccessária antes de ser iniciado o upgrade, a documentação pode ser encontrada em Oracle Pre-Upgrade Tool - Documentação 12.2.

É importante dizer que o DBUA faz as mesmas validações durante sua execução, porém é considerado importante que essas validações sejam feitas antes do inicio do upgrade, pois algumas delas podem demorar algum tempo para serem concluídas.

Principais Mudanças:

Informações Upgrade to 11.2 Upgrade to 12.1 Upgrade to 12.2
Preupgrade Check utlu112i.sql preupgrade.sql preupgrade.jar
Informações Limitado Detalhada Detalhada
Fixup Scripts Não Sim Sim
Interatividade Não Não Permite controlar o checklist para PDBs,
CDBs, Output e checks.

Execução


Basicamente após a instalação do novo home devemos executar o script a partir do java da home antigo, com as variaveis de ambiente do banco na versão anterior, os parametros a seguir indicam para o onde a saida deve ser gerada, arquivo ou tela, texto ou XML, segue exemplo:

$Earlier_release_Oracle_home/jdk/bin/java -jar $New_release_Oracle_home
/rdbms/admin/preupgrade.jar [FILE|TERMINAL] [TEXT|XML] [DIR output_dir] 

export ORACLE_SID=noncdb011
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
[oracle@srv-ora-rac01 ~]$ $ORACLE_HOME/jdk/bin/java -jar /u01/app/oracle/product/12.2.0.1/dbhome_1/rdbms/admin/preupgrade.jar FILE TEXT
Preupgrade generated files:
    /u01/app/oracle/cfgtoollogs/noncdb01/preupgrade/preupgrade.log
    /u01/app/oracle/cfgtoollogs/noncdb01/preupgrade/preupgrade_fixups.sql
    /u01/app/oracle/cfgtoollogs/noncdb01/preupgrade/postupgrade_fixups.sql
[oracle@srv-ora-rac01 ~]$ 

Após sua execução revisar a saida e seguir com as recomendações neccessárias:
[oracle@srv-ora-rac01 ~]$ cat /u01/app/oracle/cfgtoollogs/noncdb01/preupgrade/preupgrade.log
Report generated by Oracle Database Pre-Upgrade Information Tool Version
12.2.0.1.0

Upgrade-To version: 12.2.0.1.0

=======================================
Status of the database prior to upgrade
=======================================

      Database Name:  NONCDB01
     Container Name:  NONCDB01
       Container ID:  0
            Version:  12.1.0.2.0
         Compatible:  12.1.0.2.0
          Blocksize:  8192
           Platform:  Linux x86 64-bit
      Timezone File:  18
  Database log mode:  ARCHIVELOG
           Readonly:  FALSE
            Edition:  EE

  Oracle Component                       Upgrade Action    Current Status
  ----------------                       --------------    --------------
  Oracle Server                          [to be upgraded]  VALID         
  JServer JAVA Virtual Machine           [to be upgraded]  VALID         
  Oracle XDK for Java                    [to be upgraded]  VALID         
  Real Application Clusters              [to be upgraded]  VALID         
  Oracle Workspace Manager               [to be upgraded]  VALID         
  OLAP Analytic Workspace                [to be upgraded]  VALID         
  Oracle Label Security                  [to be upgraded]  VALID         
  Oracle Database Vault                  [to be upgraded]  VALID         
  Oracle Text                            [to be upgraded]  VALID         
  Oracle XML Database                    [to be upgraded]  VALID         
  Oracle Java Packages                   [to be upgraded]  VALID         
  Oracle Multimedia                      [to be upgraded]  VALID         
  Oracle Spatial                         [to be upgraded]  VALID         
  Oracle Application Express             [to be upgraded]  VALID         
  Oracle OLAP API                        [to be upgraded]  VALID         


==============
BEFORE UPGRADE
==============

  Run /preupgrade_fixups.sql to complete all 
  of the BEFORE UPGRADE action items below marked with '(AUTOFIXUP)'.

Após sua execução revisar a saida e seguir com as recomendações neccessárias:


Para validar os objetos invalidos, componentes e outras caracteristicas do ambiente a Oracle recomenda a utilização do script dbupgdiag.sql, o qual pode ser obtido na Note 556610.1 direto do metalink, este script deve ser  executado antes e depois do upgrade e comparado os resultados.



4. Upgrade



Para este upgrade irei utilizar o DBUA como GUIA, como já postei na versão 12.1 o DBUA melhorou muito entre as versões, segue as melhorias no 12.2:
  • Execução do uprade de forma paralela;
  • Pode ser reiniciado;
  • Melhora na saida do processo de upgrade, há possibilidade de mostrar o alertlog e as fases do upgrade;
  • Executa os scripts de pre e pós upgrade;
  • Suporte a Plugable database;
  • Possibilita criar um backup rman ou um ponto de restore com flashback;
  • Possibilita o restore ou flashback database para o ponto antes da atualização, a base de dados precisa estar em modo de flashback habilitado;
  • Possibilita configurar o Enterprise Manager Express;
  • Copia os arquivos de Rede e Password entre homes;
  • Atualiza o Time Zone;
  • Permite Escolher PDBs para priorizar durante o upgrade;
  • Coloca as tablespaces de usário read only.













Referencias

Oracle Database 12c Release 2 (12.2) DBUA : Understanding New Changes / Features (Doc ID 2171985.1)
Complete Checklist for Manual Upgrades to Non-CDB Oracle Database 12c Release 2 (12.2) (Doc ID 2173141.1)
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/upgrd/intro-to-upgrading-oracle-database.html#GUID-FA024F34-A61A-4C4B-AA60-C123A9191A16

Nenhum comentário: