Pessoal,
No artigo de hoje demonstrarei como fazer upgrade do Oracle Database 11g para 12cR1.
Informações importantes sobre upgrade encontramos na documentação da Oracle, pelo site:
http://docs.oracle.com/database/121/UPGRD/toc.htmBom, nosso servidor está com a versão 11.2.0.4 instalada e de acordo com a documentação da Oracle não teremos problemas para o upgrade diretamente para 12c a partir desta versão. É importante que o nosso banco 11g esteja UP, como vemos abaixo:
[oracle@serv02 /]$ sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on Fri Jul 21 14:03:43 2017 Copyright (c) 1982, 2013, Oracle. All rights reserved. SQL> conn / as sysdba Connected. SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production SQL> select status from v$instance; STATUS ------------ OPEN SQL>
Vamos alterar o usuário HR e criar uma tabela de teste para verificarmos os dados após o upgrade do banco para Oracle Database 12c:
SQL> alter user hr identified by hr account unlock; User altered. SQL> conn hr/hr Connected. SQL> create table tb_teste_upgrade as select * from all_objects; Table created. SQL> select count(*) from tb_teste_upgrade; COUNT(*) ---------- 68350 SQL>
Crie o diretório e ajuste o bash_profile para nova instalação dos binários do Oracle 12c conforme caminho abaixo:
export ORACLE_HOME=/u01/app/oracle/product/12.1.0.1/db_1
Eu tenho os binários da instalação do Oracle Database 12c no diretório abaixo:
[oracle@serv02 database]$ pwd /u01/InstOracle/database [oracle@serv02 database]$ ls -ltr total 36 -rwxr-xr-x 1 root root 500 Feb 6 2013 welcome.html -rwxr-xr-x 1 root root 8533 Jul 7 2014 runInstaller drwxr-xr-x 2 root root 4096 Jul 7 2014 rpm drwxrwxr-x 2 root root 4096 Jul 7 2014 sshsetup drwxrwxr-x 2 root root 4096 Jul 7 2014 response drwxr-xr-x 14 root root 4096 Jul 7 2014 stage drwxr-xr-x 4 root root 4096 Jul 21 13:53 install [oracle@serv02 database]$
Instale apenas o software do Oracle Database 12c como imagens abaixo:
Altere o endereço de localização do software para o novo diretório criado como abaixo:
Precisamos agora preparar o ambiente para o upgrade do banco de dados para a versão do Oracle Database 12c.
Utilizando a versão 11g conecte-se no sqlplus e rode o script que está no $ORACLE_HOME_novo\rdbms\admin\preupgrd.sql
Você deve analisar seu banco de dados antes de atualizá-lo para a nova versão. Isso é feito executando o script de informação para pré-atualização: preupgrd.sql no ambiente do banco de dados que você deve atualizar. Este script fornece uma pré-visualização dos itens que DBUA verifica e informações sobre qualquer coisa a ser corrigida. A ferramenta de informação pré-atualização gera scripts de correção que você pode executar para resolver problemas que são marcados no banco de dados de origem.
Vamos executar o escript preupgrd.sql:
[oracle@serv02 InstOracle]$ echo $ORACLE_HOME /u01/app/oracle/product/11.2.0.4/db_1 [oracle@serv02 InstOracle]$ cd /u01/app/oracle/product/12.1.0.1/db_1/rdbms/admin [oracle@serv02 admin]$
Conecte ao sqlplus no banco up do 11g e execute o arquivo: preupgrd.sql
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production SQL> @/u01/app/oracle/product/12.1.0.1/db_1/rdbms/admin/preupgrd.sql;
Verifique as recomendações no log: preupgrade.log e faça as devidas correções para na sequência executar o arquivo: preupgrade_fixups.sql
Uma amostra da execução do script preupgrd.sql:
ACTIONS REQUIRED: 1. Review results of the pre-upgrade checks: /u01/app/oracle/cfgtoollogs/ORCL/preupgrade/preupgrade.log 2. Execute in the SOURCE environment BEFORE upgrade: /u01/app/oracle/cfgtoollogs/ORCL/preupgrade/preupgrade_fixups.sql 3. Execute in the NEW environment AFTER upgrade: /u01/app/oracle/cfgtoollogs/ORCL/preupgrade/postupgrade_fixups.sql
Após analisar o log rodar o script gerado pelo pré upgrade:
@/u01/app/oracle/cfgtoollogs/ORCL/preupgrade/preupgrade_fixups.sql
Realizar as alterações citadas no log deste script, todos os SQL devem ser feitos através do SQLPLUS da versão 11g
Copiando arquivos listener, tnsnames, orapw, init e spfile:
Copiar os arquivos do endereço do velho ORACLE_HOME para o novo.
[oracle@serv02 dbs]$ pwd /u01/app/oracle/product/11.2.0.4/db_1/dbs [oracle@serv02 dbs]$ ls -ltr total 20 -rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora -rw-r----- 1 oracle oinstall 24 Sep 13 2014 lkORCL -rw-r----- 1 oracle oinstall 1536 Sep 13 2014 orapwORCL -rw-rw---- 1 oracle oinstall 1544 Jul 25 14:18 hc_ORCL.dat -rw-r----- 1 oracle oinstall 2560 Jul 25 15:11 spfileORCL.ora [oracle@serv02 dbs]$ cp init.ora orapwORCL spfileORCL.ora /u01/app/oracle/product/12.1.0.1/db_1/dbs/ [oracle@serv02 dbs]$ [oracle@serv02 admin]$ pwd /u01/app/oracle/product/11.2.0.4/db_1/network/admin [oracle@serv02 admin]$ ls -ltr total 16 -rw-r--r-- 1 oracle oinstall 381 Dec 17 2012 shrept.lst drwxr-xr-x 2 oracle oinstall 4096 Sep 13 2014 samples -rw-r--r-- 1 oracle oinstall 381 Sep 13 2014 listener.ora -rw-r----- 1 oracle oinstall 335 Sep 13 2014 tnsnames.ora [oracle@serv02 admin]$ [oracle@serv02 admin]$ cp listener.ora tnsnames.ora /u01/app/oracle/product/12.1.0.1/db_1/network/admin/ [oracle@serv02 admin]$
Lembrar de alterar os arquivos do listener, tnsnames para novo ORACLE_HOME
Agora com o banco open na versão 11g utilizaremos o dbua para realizar o upgrade no banco:
SQL> select * from v$version; Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 – Production SQL> select open_mode from v$database; READ WRITE SQL>
Após as etapas de pré-upgrade, e realizado os FIXs é chegada a hora de atualizar o database. Utilzaremos o DBUA (Database Upgrade Assistant) .
Deixe seu /etc/oratab como o abaixo:
ORCL:/u01/app/oracle/product/11.2.0.4/db_1:Y
Execute o DBUA do novo BIN(12c) e prossiga com o upgrade:
[oracle@serv02 bin]$ pwd /u01/app/oracle/product/12.1.0.1/db_1/bin [oracle@serv02 bin]$ ./dbua
Após as validações efetue a devidas correções que forem solicitadas no seu resultado como imagem acima.
Seguindo
Suba o novo listener com: lsnrctl start se precisar
Estou considerando também que temos um backup valido.
Agora vamos validar o banco após o upgrade:
[oracle@serv02 ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Tue Jul 25 18:12:30 2017 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> SQL> select status from v$instance; STATUS ------------ OPEN SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE SQL> select * from v$version; BANNER CON_ID -------------------------------------------------------------------------------- ---------- Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 0 PL/SQL Release 12.1.0.2.0 - Production 0 CORE 12.1.0.2.0 Production 0 TNS for Linux: Version 12.1.0.2.0 - Production 0 NLSRTL Version 12.1.0.2.0 - Production 0 SQL>
Tudo certo, estamos com Oracle Database 12c agora. E a nossa tabela que criamos no inicio do artigo com usuário HR? Vamos consulta-la:
SQL> conn hr/hr Connected. SQL> select count(*) from tb_teste_upgrade; COUNT(*) ---------- 68350 SQL>
Tudo certo!
Se precisar acessar o Enterprise Manager Database Express
Emctl start dbconsole;
Verifique em qual porta está funcionando:
SQL> select dbms_xdb_config.gethttpsport() from dual; DBMS_XDB_CONFIG.GETHTTPSPORT() ------------------------------ 5500 SQL> https://localhost.localdomain:5500/em
Abraço,
Ronaldo
Nenhum comentário:
Postar um comentário