Upgrade para o Oracle 12.2 em ambiente Oracle RAC 12.1 Multitenant

Por Rogerio Eguchi  
Publicado em Abril 2018

Revisado por Lorenzo Mota


Esse artigo descreverá as etapas necessárias atualizar um banco Oracle RAC 12.1 Multitenant para a versão 12.2.
Sobre o ambiente que será atualizado, são dois servidores instalados com:

  • Sistema Operacional: Oracle Linux 7.3
  • Oracle RAC Database Enterprise Edition 12.1.0.2 com o último Bundle Patch aplicado (12.1.0.2.170718)

Faça o download dos binários do Oracle 12.2 e GridInfra 12.2 no OTN (otn.oracle.com) ou Edelivery(edelivery.oracle.com).
Exemplo:


Atualização do Oracle GridInfrastructure (GI)

Importante: A atualização é realizada em modo rolling upgrade, ou seja, realizada node a node sem a interrupção total do serviço de banco de dados, já que um node estará ativo por vez.

Vamos as etapas:

  1. Verifique a existência de 33Gb livres no diskgroup.

  2. O patch 21255373 deve ser aplicado no GI atual antes de iniciar-se a atualização. Como o último BP já está aplicado, esse passo não é necessário.

  3. Para validarmos se o ambiente atual está pronto para a atualização, vamos executar o Cluster Verification Utility (CVU):
    ./runcluvfy.sh  stage -pre crsinst -upgrade -rolling 
    -src_crshome /u01/app/12.1.0/grid  -dest_crshome /u01/app/12.2.0.1/grid
     -dest_version 12.2.0.1 -fixup -verbose

    Revise todos os resultados. Em caso de falhas, um script de correção será gerado. Execute-o. Prossiga assim que todos os itens reportados com falha sejam corrigidos.

    Exemplo da listagem com as falhas do ambiente:



    Exemplo de execução do script de correção:


    Aperte “Enter” para continuar:

  4. Remova as variáveis de ambiente ORACLE_BASE, ORACLE_HOME, ORACLE_SID e ORA_CRS_HOME. 

    $ unset ORACLE_BASE

    $ unset ORACLE_HOME

    $ unset ORACLE_SID

    $ unset ORA_CRS_HOME

  5. A Oracle recomenda que seja realizado o backup do software que será atualizado. Utilize sua ferramenta preferida do sistema operacional, exemplos: zip, cp -r, tar, cpio.

    Lembre-se de parar os processos Oracle antes de iniciar o backup.

    Dica: Faça a instalação do Oracle Software em um LVM e utilize o recurso de snapshots para realizar o backup sem parar os processos do Oracle. Você pode utilizar a própria documentação do Oracle Exadata como referência para execução do backup: http://docs.oracle.com/cd/E80920_01/DBMMN/maintaining-exadata-database-servers.htm#DBMMN21377

  6. Remova o $ORACLE_HOME/bin do $PATH.

  7. Na versão GI 12.2, o Oracle Cluster Registry (OCR) e os voting files devem ser armazenados obrigatoriamente no ASM. Caso sua instalação não esteja dessa forma consulte a documentação e mova-os para o ASM.

  8. Crie um novo diretório para o GI 12.2. No ambiente atual, por exemplo, o GI 12.1 está em /u01/app/12.1.0/grid e criei o diretório /u01/app/12.2.0.1/grid para hospedar a nova instalação.

    Mude o permissionamento do diretório:
    chown  grid:oinstall /u01/app/12.2.0/grid


    Copie o arquivo linuxx64_12201_grid_home.zip para o novo GI home e descompacte. São necessários 10Gb livres no FS.

  9. Execute o setup: Grid_Home/gridSetup.sh

    Selecione Upgrade Oracle Grid Infrastructure.


    Faça a configuração da conectividade SSH.


    Caso exista uma instalação de Enterprise Manager Cloud Control, você pode configurar o GI e ASM nessa etapa:


    Informe os grupos para segregação das tarefas de gerenciamento do ASM:


    Informe o Oracle BASE:


    Execução dos scripts via root: aqui você tem a opção de executar os scripts via root de forma automática pelo instalador.



    NTP e resolv.conf estão OK porém aparecem como failed.  Vamos em frente.


    Acompanhe o progresso e aguarde o término da atualização.


    Confirme a execução dos scripts via root:


    Para continuar, clique em Execute Now.


    A atualização terminou com falha na execução do CVU pois meu ambiente não acessa servidores NTP externos. Como esse ambiente é um LAB, vamos seguir em frente.




  10. Validação dos serviços do cluster:



    Cluster OK e atualizado, conforme esperado!



Atualizando o Oracle Database

Importante: Durante o processo de atualização do banco, a base é aberta em modo upgrade, e portanto ficará indisponível para as aplicações.

Vamos as etapas:

Copie o arquivo de instalação do Oracle 12c R2 para o servidor e descompacte-o em um diretório temporário.

Aplique os passos de pré-atualização abaixo:

  1. Abra todos os pluggable databases executando alter pluggable database all open;

  2. Purga da RecycleBin nos PDB’s

    A recycle bin deve estar vazia antes de iniciarmos o upgrade. Para isso, conecte na base com o usuário SYS ou SYSTEM e execute: PURGE DBA_RECYCLEBIN;

  3. Coleta de estatísticas de dicionário (CDB + PDB’s). Conecte como sysdba e execute: exec dbms_stats.gather_dictionary_stats;

  4. Tenha disponível 8Gb no filesystem onde será instalado o novo ORACLE_HOME para os binários do 12.2.


Para essa atualização, utilizaremos o DBUA no modo Direct Upgrade (quando vamos direto de uma versão antiga para o 12.2).

O Direct Upgrade é suportado quando atualizamos de:

Base de Origem

Base de Destino

11.2.0.3 ou superior

12.2.0.x

12.1.0.x (12.1.0.1 - 12.1.0.2)

12.2.0.x

                                       
Se você utiliza em uma versão anterior à 11.2.0.3, o Direct Upgrade não é suportado e deverá ser feito em múltiplas etapas, conforme tabela abaixo:

Base de origem

Caminho de atualização

Base de Destino

7.3.3 (ou anterior)

7.3.4 --> 9.2.0.8 --> 11.2.0.3 or higher

12.2.0.x

8.0.5 (ou anterior)

8.0.6 --> 9.2.0.8 --> 11.2.0.3 or higher

12.2.0.x

8.1.7 (ou anterior)

8.1.7 --> 9.2.0.8 --> 11.2.0.3 or higher

12.2.0.x

9.0.1.3 (ou anterior)

9.0.1.3 --> 9.2.0.8 --> 11.2.0.3 or higher

12.2.0.x

9.2.0.7 (ou anterior)

9.2.0.7 --> 11.2.0.3 or higher

12.2.0.x

10.2.0.4 (ou anterior)

10.2.0.4 --> 11.2.0.3 or higher

12.2.0.x

11.1.0.6

11.1.0.6 --> 11.2.0.3 or higher

12.2.0.x

11.2.0.1

11.2.0.1 --> 11.2.0.3 or higher

12.2.0.x


Acesse o diretório database criado pela descompactação e rode o instalador:

./runInstaller

Informe seu email e senha do MOS para receber informações sobre atualizações.

 




Escolha a opção: Upgrade na existing database


Escolha a opção adequada. Para esse artigo faremos a atualização de um ambiente Oracle RAC.


Escolha os servidores que fazem parte do cluster e valide a conectividade SSH.


Escolha a versão que será instalada.


Defina uma novo ORACLE_HOME para os binários da versão 12.2 do Oracle.


Defina, caso se aplique ao seu ambiente, os grupos para segregação de operações.


Validação dos Pré-requisitos. Como o ambiente não tem acesso externo para sincronização do horário, a mensagem abaixo foi reportada.

Vou seguir em frente pois estamos realizando o procedimento em um ambiente de LAB e o horário entre os servidores está sendo sincronizado por um NTP local.


Resumo da instalação:


Acompanhe o progresso.


Execute o script root.sh nos servidores do cluster.




O DBUA é executado pelo Installer.

Informe o usuário SYS e sua senha (ou algum outro usuário com privilégio de SYSDBA). A view V$PWFILE_USERS trará a listagem dos usuários com privilégios de SYSDBA.


Como temos somente um PDB, a opção de prioridade na atualização é suprimida.


Validação dos pré-requisitos. Todos OK, somente uma recomendação pós atualização.


Selecione as opções de atualização:


Um backup da base deve ser feito antes da atualização. Escolha seu método de backup ou opte por “I have my own backup and restore strategy” caso seu banco já tenha um backup válido.


Aqui você tem a opção de configurar o EM database express ou registrar sua base no EM Cloud Control já existente.


Revise o resumo da atualização e prossiga caso esteja tudo correto.


Acompanhe a atualização.


A tela com o resultado e detalhes sobre o upgrade é mostrada.


Após os passos de pós-upgrade, a base atualizada pode ser disponibilizada para acesso.
CDB$ROOT:


PDB1:


Status dos componentes atualizados: CON_ID 1 é o root container e o 3 é o PDB1.


Dica: Leia no site do Mike Dietrich's (Oracle Database Upgrade Blog) sobre como remover os componentes instalados da base visando reduzir o tempo de upgrade e, consequentemente, downtime do ambiente: https://mikedietrichde.com/2017/07/26/remove-clean-components-oracle-11-2-12-2/


Atualização do software client
A Oracle recomenda que seja feito o upgrade do software client para que tenha a mesma versão do server. Isso garantirá uma melhor estabilidade para suas aplicações.


Melhores práticas após o upgrade

  1. Execute um backup full do banco de dados
  2. Execute o script postupgrade_fixups.sql
  3. Colete estatísticas de dicionário
  4. Colete estatísticas para Fixed Objects
  5. Mude as senhas e ative o recurso de senhas case-sensitive

    Entre outros.
    Consulte o Oracle Upgrade Guide para mais detalhes.


Referencias:

Oracle 12 release 2 Grid Infrastructure Installation and Upgrade Guide - http://docs.oracle.com/database/122/CWLIN/toc.htm
Oracle 12 release 2 Database Upgrade Guide - https://docs.oracle.com/database/122/UPGRD/toc.htm
Oracle Database Upgrade Blog - https://mikedietrichde.com/
Complete Checklist for Upgrading to Oracle Database 12c Release 2 (12.2) using DBUA (Doc ID 2189854.1)
How to Upgrade Pluggable Databases (PDBs) Sequentially to 12.2 (Doc ID 2171026.1)
Customization of Database Options in a Multitenant Setup (Doc ID 1616554.1)
Creating A Container Database (CDB) With A Subset Of Options (Doc ID 2001512.1)      



Rogerio Bacchi Eguchi é um DBA Oracle Sênior com extensa experiência em ambientes OLTP de missão crítica e que empregam as tecnologias da "Oracle Maximum Availability Architecture". Atuou como DBA em empresas como Oracle, UOL, UOLDiveo, PagSeguro e atualmente atua como DBA/DMA na TOTVS. Possui as certificações Oracle OCP 8i, 9i, 10g, 11g, 12c e OCE Exadata. Atua também como SysAdmin/DEVOPS onde é certificado Linux RHCE. Entusiata de novas tecnologias como big data, automações e cloud computing. Compartilha conhecimento no blog reguchi.wordpress.com e twitter @reguchi_br.

Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.