Revisão de Paloma Aguiar
Esse artigo vai explorar as possibilidades hoje disponíveis para que os DBA’s atualizem o banco de dados para a última versão do Oracle disponível: 12cR2.
Lembre-se sempre que antes de atualizar a versão do seu banco de dados, é importante estudar os novos recursos disponibilizados e também os recursos que não serão mais suportados e evoluídos, afim de evitar impactos dessas mudanças em seu ambiente.
A Oracle recomenda a utilização do DBUA quando atualizamos: major release upgrade (exemplo: 11g para 12c) ou maintenance release upgrade (exemplo: 12.1.0.1 para 12.1.0.2).
Sobre major upgrades e maintenance release upgrade, veja documento oficial:
https://docs.oracle.com/database/121/UPGRD/app.htm#UPGRD12530
Para maiores informações sobre o Parallel Upgrade, veja documento oficial:
https://docs.oracle.com/database/121/UPGRD/upgrade.htm#UPGRD52865
O DBUA pode ser utilizado somente no modo Direct Upgrade, onde 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 |
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:
SQL> PURGE DBA_RECYCLEBIN;
Esse utilitário é executado na base atual e gerará um relatório com ítens a serem corrigidos antes que o upgrade seja feito.
A versão Oracle 12 release 2 introduz o preupgrade.jar Pre-Upgrade Information Tool, que passa a ser executado diretamente do sistema operacional, diferentemente das versões anteriores onde a execução era feita através do SQLPlus.
Faça o download da última versão disponível do utilitário através do MOS: How to Download and Run Oracle's Database Pre-Upgrade Utility (Doc ID 884522.1)
Copie o arquivo para o servidor e descompacte.
Abra todos os pluggable databases executando alter pluggable database all open;
Para executar o utilitário, rode:
java -jar preupgrade.jar TERMINAL TEXT -c 'LABPDB1'
onde na opção –c devemos incluir a lista dos containers que incluiremos no processo. Caso essa opção seja omitida, todos os PDBs serão processados. O resultado será:
Leia as recomendações e aplique o script pré-atualização: preupgrade_fixups.sql
No exemplo acima as recomendações são:
exec dbms_stats.gather_dictionary_stats;
Realizando os ajustes:
Dessa forma, o ambiente Oracle 12.1 foi adequado para a atualização.
Obs: O script de pré-requisitos é automaticamente executado como parte do processo de atualização quando opta-se pela utilização do utilitário DBUA.
Faça o download do Oracle 12.2 no site OTN (otn.oracle.com) ou Edelivery (edelivery.oracle.com) da Oracle.
No exemplo abaixo, realizei o download do arquivo linuxx64_12201_database.zip através do OTN.
Copie o arquivo para o servidor e descompacte.
Acesse o diretório database criado pela descompactação e rode o instalador:
./runInstaller
Nesse artigo o ORACLE_HOME da versão 12.1 é:
/u01/app/oracle/product/12.1.0.2/db_1 e o ORACLE_HOME novo será /u01/app/oracle/product/12.2.0.1/db_1.
Confirme a instalação da ferramenta Oracle Trace File Analyzer (TFA).
A instalação terminou sem problemas e a página de resultado foi apresentada.
Você pode realizar a atualização em modo não interativo, ou seja, com um único comando todo o trabalho de atualização será realizado.
Exemplo:
Configure as variáveis de ambiente ORACLE_HOME, PATH e LD_LIBRARY_PATH para a instalação 12.2 e execute: dbua –silent –sid <instance>
Veja as opções do modo não interativo através do comando dbua –help.
Caso seu ambiente seja multitenant, como neste artigo, utilize a ferramenta PERL catcon.pl, exemplo:
$ORACLE_HOME/perl/bin/perl
$ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -e -b utlu122s -
d '''.''' $ORACLE_HOME/rdbms/admin/utlu122s.sql
Verifique os logs utlu122s*.log
Exemplo:
$ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -e -b utlrp -d '''.''' utlrp.sql
Verifique os logs utlrp*.log
Após os passos de pós-upgrade, a base atualizada pode ser disponibilizada para acesso.
Dica: Lembre de atualizar seus scripts para refletir o novo $ORACLE_HOME.
O parâmetro COMPATIBLE controla o nível de compatibilidade da base e pode ser alterado caso você tenha certeza que um downgrade não será necessário. Para isso, execute:
SQL> ALTER SYSTEM SET COMPATIBLE = '12.2.0' SCOPE=SPFILE;
Faça um shutdown e inicie a base novamente. Exemplo:
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.
Oracle Upgrade Guide: https://docs.oracle.com/database/122/UPGRD/title.htm
Complete Checklist for Upgrading to Oracle Database 12c Release 2 (12.2) using DBUA (Doc ID 2189854.1)
Complete Checklist for Manual Upgrades to Non-CDB Oracle Database 12c Release 2 (12.2) (Doc ID 2173141.1)
Complete checklist for Manual Upgrade for Multitenant Architecture Oracle Databases from 12.1.x.x to 12.2..x.x (Doc ID 2173144.1)
Oracle Database 12c Release 2 (12.2) DBUA In Silent Mode (Doc ID 2172040.1)
Master Note For Oracle Database 12c Release 2 (12.2) Database/Client Installation/Upgrade/Migration Standalone Environment (Non-RAC) (Doc ID 2195547.1)
How to Upgrade Pluggable Databases (PDBs) Sequentially to 12.2 (Doc ID 2171026.1)
Oracle Database Upgrade Blog - https://mikedietrichde.com/
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.