Escolar Documentos
Profissional Documentos
Cultura Documentos
OBJETIVO
PRÉ-REQUISITOS ( PROVEDOR BANESTES – AMBIENTES )
• Rodar DBUPGRADE;
• Setar variáveis ORACLE_HOME para ORACLE_HOME 19c;
• Fazer startup da instancia com startup upgrade;
• Startup upgrade
• Rodar DBUPGRADE
• Cd $ORACLE_HOME/bin
• ./dbupgrade ( estimativa 50 minutos )
FASE 1 – UPGRADE – CONTINUA (DOWNTIME)
• Rodar UTLRP;
• Manter variáveis ORACLE_HOME para ORACLE_HOME 19c;
• Conectar com SQL PLUS
• sqlplus / as sysdba
• @$ORACLE_HOME/rdbms/admin/utlrp ( 10 minutos )
FASE 1 – UPGRADE – CONTINUA (DOWNTIME)
• Set COMPATIBLE;
• Manter variáveis ORACLE_HOME para ORACLE_HOME 19c;
• Conectar com SQL PLUS
• sqlplus / as sysdba
• Rodar alter system
• ALTER SYSTEM SET COMPATIBLE = '19.0.0' SCOPE=SPFILE; ( 1 minuto(s ))
• Reiniciar o banco
FASE 1 – UPGRADE – CONTINUA (DOWNTIME)
DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
DBMS_DST.begin_upgrade(l_tz_version);
END;
/
• O script deve retornar 32 como resultado;
• Reiniciar o banco em Normal mode
FASE 1 – UPGRADE – CONTINUA (DOWNTIME)
• Atualizar TIMEZONE (continuação)
• Manter variáveis ORACLE_HOME para ORACLE_HOME 19c;
• Conectar com SQL PLUS
• sqlplus / as sysdba
• Rodar script
SET SERVEROUTPUT ON
DECLARE
l_failures PLS_INTEGER;
BEGIN
DBMS_DST.upgrade_database(l_failures);
DBMS_OUTPUT.put_line('DBMS_DST.upgrade_database : l_failures=' || l_failures);
DBMS_DST.end_upgrade(l_failures);
DBMS_OUTPUT.put_line('DBMS_DST.end_upgrade : l_failures=' || l_failures);
END;
/
• O script deve executar com sucesso;
• Verificar time zone atualizado:
• SELECT * FROM v$timezone_file;
FASE 1 – UPGRADE – CONTINUA (DOWNTIME)
• Rodar postupgrade
• Manter variáveis ORACLE_HOME para ORACLE_HOME 19c;
• Conectar com SQL PLUS
• sqlplus / as sysdba
• Rodar script
• @/u01/preupgrade/postupgrade_fixups.sql
• O script deve executar com sucesso;
• Se houverem recomendações considerar;
• Checar Banco Novo Oracle 19c;
• select name,version,open_mode from v$database,v$instance;
FASE 2 – TRANSFORMAR O AMBIENTE SINGLE INSTANCE EM PDB
• PRÉ-REQUISITO
• CDB criado
FASE 2 – PLUGAR PDB (DOWNTIME)
• Manter variáveis ORACLE_HOME para ORACLE_HOME 19c;
• Conectar com SQL PLUS
• sqlplus / as sysdba
• Rodar sequencia de comandos:
• Shutdown immediate;
• Startup open read Only;
• BEGIN
DBMS_PDB.DESCRIBE(pdb_descr_file => '/tmp/19cNonPDB.xml');
END;
/
• Os comandos acima irão gerar um XML que será utilizado no PLUG do PDB no
container, após isso iremos checar a compatibilidade desse XML para fazer o
PLUG, é improvável que tenhamos maiores problemas visto que estamos
falando de um mesmo binário 19, com patches compatíveis;
FASE 2 – PLUGAR PDB (DOWNTIME)
• Manter variáveis ORACLE_HOME para ORACLE_HOME 19c;
• Conectar com SQL PLUS
• sqlplus / as sysdba
• Rodar sequencia de comandos:
• Shutdown immediate;
• Startup open read Only;
• BEGIN
DBMS_PDB.DESCRIBE(pdb_descr_file => '/tmp/19cNonPDB.xml');
END;
/
• Os comandos acima irão gerar um XML que será utilizado no PLUG do PDB no
container, após isso iremos checar a compatibilidade desse XML para fazer o
PLUG, é improvável que tenhamos maiores no mesmo binário 19c;
• Shutdown ambiente NONCDB:
• Shutdown immediate
FASE 2 – PLUGAR PDB (DOWNTIME)
• Setar ORACLE_HOME para ambiente CDB;
• Conectar com SQL PLUS
• sqlplus / as sysdba
• Checar compatibilidade:
SET SERVEROUTPUT ON;
DECLARE
compatible CONSTANT VARCHAR2(3) := CASE
DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/tmp/19cNonPDB.xml')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
• Resultado esperado “COMPATIBLE”, caso não rodar query abaixo:
select name,cause,type,message,status from PDB_PLUG_IN_VIOLATIONS where name='<noncdb database
name>';
FASE 2 – PLUGAR PDB (DOWNTIME)
• Setar ORACLE_HOME para ambiente CDB;
• Conectar com SQL PLUS
• sqlplus / as sysdba
• Checar compatibilidade:
SET SERVEROUTPUT ON;
DECLARE
compatible CONSTANT VARCHAR2(3) := CASE
DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/tmp/19cNonPDB.xml')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
• Resultado esperado “COMPATIBLE”, caso não rodar query abaixo:
select name,cause,type,message,status from PDB_PLUG_IN_VIOLATIONS where name='<noncdb database
name>';
FASE 2 – PLUGAR PDB (DOWNTIME)
• Setar ORACLE_HOME para ambiente CDB;
• Conectar com SQL PLUS
• sqlplus / as sysdba
• PLUG PDB:
CREATE PLUGGABLE DATABASE NPDB00 USING '/tmp/19cNonPDB.xml'
MOVE
FILE_NAME_CONVERT = ('+DGORIGEM/12cNonPDB/', '+DGORIGEM/CDBXX/NPDB00/’);
• A opção MOVE servirá para reorganizar os diretórios para mantermos o
padrão do CDB, se utilizarmos COPY haverá cópia dos datafiles e NOCOPY os
datafiles serão mantidos no lugar de origem;
• Converter para PDB
ALTER SESSION SET CONTAINER= NPDB00;
@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
ALTER PLUGGABLE DATABASE OPEN;
SELECT name, open_mode FROM v$pdbs;
• Resultado esperado: NPDB00 READ WRITE
FASE 2 – FIM