Hoje fui realizar testes de migração de algumas bases de homologação que usam CDB da versão 12.1 para 12.2. E me deparei com um situação que gostaria de compartilhar.
Se você não tiver personalizado sua instalação através de scripts, que foi meu caso, seu CDB$ROOT terá o APEX instalado por padrão.
Bom, o primeiro passo pra migração é executar o utilitário disponibilizado pela própria Oracle preupgrade.jar. Você pode baixa-lo no MOS Note:884522.1.
A execução é simples:
Depois que o logs forem gerados, serão criados alguns arquivos com recomendações para o upgrade e se você tiver o APEX instalado, uma delas será:
======================
INFORMATION ONLY
======================
+ Consider upgrading APEX manually, before the database upgrade.
The database contains APEX version 4.2.5.00.08 and will need to be
upgraded to at least version 5.0.4.00.12.
To reduce database upgrade time, you can upgrade APEX manually before
the database upgrade. Refer to My Oracle Support Note 1088970.1 for
information on APEX installation upgrades.
É justamento sobre essa recomendação que quero falar. Ela é somente uma informação não é um erro e nem vai te impedir de atualizar. Mas se você remover ou atualizar o APEX antes de migrar seu banco de dados Oracle, terá o seu tempo de upgrade reduzido. Eu optei por excluir o APEX do CDB$ROOT, pois fazendo isso você pode instalar o APEX somente nos PDBs que realmente precisa e também pode ter várias versões diferentes do APEX.
Pode usar a consulta pra verificar a versão instalada.
Removendo o APEX DO CDB$ROOT
Lembrando que fazendo isso estamos removendo também de todos os PDBS. Se quiser aprofundar mais pode conferir a documentação
Acesse o diretório:
Conecte no CDB$ROOT e execute o script para remover o APEX
Verifique se o APEX foi realmente removido e se existe algum objeto inválido.
Caso necessário execute o script abaixo para recompilar os objetos inválidos.
Depois de desinstalado... agora é seguir com o upgrade. Caso queira realizar a instalação do APEX nos PDBs faça:
Verifique a instalação executando
Se você não tiver personalizado sua instalação através de scripts, que foi meu caso, seu CDB$ROOT terá o APEX instalado por padrão.
Bom, o primeiro passo pra migração é executar o utilitário disponibilizado pela própria Oracle preupgrade.jar. Você pode baixa-lo no MOS Note:884522.1.
A execução é simples:
java -jar /u01/app/oracle/product/12.2.0.1/rdbms/admin/preupgrade.jar TEXT
|
Depois que o logs forem gerados, serão criados alguns arquivos com recomendações para o upgrade e se você tiver o APEX instalado, uma delas será:
======================
INFORMATION ONLY
======================
+ Consider upgrading APEX manually, before the database upgrade.
The database contains APEX version 4.2.5.00.08 and will need to be
upgraded to at least version 5.0.4.00.12.
To reduce database upgrade time, you can upgrade APEX manually before
the database upgrade. Refer to My Oracle Support Note 1088970.1 for
information on APEX installation upgrades.
É justamento sobre essa recomendação que quero falar. Ela é somente uma informação não é um erro e nem vai te impedir de atualizar. Mas se você remover ou atualizar o APEX antes de migrar seu banco de dados Oracle, terá o seu tempo de upgrade reduzido. Eu optei por excluir o APEX do CDB$ROOT, pois fazendo isso você pode instalar o APEX somente nos PDBs que realmente precisa e também pode ter várias versões diferentes do APEX.
Pode usar a consulta pra verificar a versão instalada.
select reg.COMP_NAME, reg.VERSION, con.NAME, con.CON_ID
from CDB_REGISTRY reg, V$CONTAINERS con where reg.CON_ID=con.CON_ID and reg.COMP_ID='APEX' order by CON_ID; |
Removendo o APEX DO CDB$ROOT
Lembrando que fazendo isso estamos removendo também de todos os PDBS. Se quiser aprofundar mais pode conferir a documentação
Acesse o diretório:
cd $ORACLE_HOME/apex
|
Conecte no CDB$ROOT e execute o script para remover o APEX
sqlplus / as sysdba
SQL> @apxremov_con.sql |
Verifique se o APEX foi realmente removido e se existe algum objeto inválido.
select comp_id, STATUS from dba_registry where comp_id='APEX';
select object_name, status from dba_objects where status='INVALID'; |
Caso necessário execute o script abaixo para recompilar os objetos inválidos.
SQL> @?/rdbms/admin/utlrp.sql
|
Depois de desinstalado... agora é seguir com o upgrade. Caso queira realizar a instalação do APEX nos PDBs faça:
cd $ORACLE_HOME/apex
sqlplus / as sysdba SQL> alter session set container=SEUPDB; SQL> @apexins.sql SYSAUX SYSAUX TEMP /i/ |
Verifique a instalação executando
select comp_id, status , con_id from cdb_registry where comp_id='APEX';
|
Comentários