Pular para o conteúdo principal

Postagens

Download e Instalação de um novo ORACLE_HOME usando AutoUpgrade

  O AutoUpgrade é a ferramenta que a Oracle recomenda para upgrade de versão (como o nome já diz). Porém, ela também pode ser utilizada para facilitar sua vida durante o ciclo de patches. Nesse artigo vou mostrar como conectar ao suporte Oracle, fazer download dos patches e criar um novo oracle home. Com o AutoUpgrade o patch é out-of-place, por isso a necessidade da criação de um novo home. Download do AutoUpgrade e pre-requisitos 1) Baixar a ferramenta é bem simples use o link:  Download the AutoUpgrade utility Aqui vou usar um linux, então direto do servidor: mkdir -p /u01/autoupgrade cd /u01/autoupgrade wget https://download.oracle.com/otn-pub/otn_software/autoupgrade.jar 2) Para versão v26 que estamos usando, é necessário o jdk21 . Instale a versão java necessária: [oracle@DT autoupgrade]$ java -jar autoupgrade.jar -version build.version 26.3.260401 # dnf install -y java-11-openjdk Se vc já instalou o Java 21 , mas o comando java está apontando para o Java 26-ea . O pro...
Postagens recentes

ORA-28365: wallet is not open - Oracle Data Guard + Oracle TDE

Problema: No meu ambiente de testes usando Oracle Data Guard e com algumas tablespaces com TDE me deparei com o seguinte erro: PR00 (PID:396056): MRP0: Background Media Recovery terminated with error 28365 2024-03-15T03:12:42.419136+00:00 Errors in file /u01/app/oracle/diag/rdbms/thdr/thdr/trace/thdr_pr00_396056.trc: ORA-28365: wallet is not open 2024-03-15T03:12:43.000571+00:00 Recovery interrupted! Recovered data files to a consistent state at change 32232590 Stopping change tracking Solução: Verifiquei a wallet na base de dados standby e estava fechada. set lines 300 col name for a15 col wrl_type for a10 col status for a30 select p.con_id, p.name, p.open_mode, ew.wrl_type, ew.wallet_type, ew.status from v$pdbs p join v$encryption_wallet ew on (ew.con_id = p.con_id) order by p.con_id;     CON_ID NAME            OPEN_MODE  WRL_TYPE   WALLET_TYPE          STATUS ---------- --------------- ---------- --------...

Oracleasm Deletedisk - Unable to open device or resource busy failed Unable to clear disk

Após a migração de storages utilizando Oracle ASM em um ambiente, precisei remover os discos que não estavam mais sendo utilizados. Porém quando fui utilizar o deletedisk no oracleasm recebi o seguinte erro: # oracleasm deletedisk -v HITACHI33 Clearing disk header: oracleasm-write-label: Unable to open device "/dev/oracleasm/disks/HITACHI33": Device or resource busy failed Unable to clear disk "HITACHI33" Fiz a verificação para ver ser o disco ainda estava em uso, mas não obtive nenhum retorno: # fuser /dev/oracleasm/disks/HITACHI33 # lsof /dev/oracleasm/disks/HITACHI33 Então lendo alguns posts e artigos vi que o problema poderia estar relacionado ao multipath do sistema operacional. Então utilizei o -f para realizar um flush, mas recebi a mensagem abaixo: # multipath -f /dev/oracleasm/disks/HITACHI33 Jun 22 08:43:21 | must provide a map name to remove Utilizei o comando do ASM para verificar o mapeamento do disco....

DELETE WHERE - ORA-01031: privilégios insuficientes

Recebi um email falando que o usuário estava tentando realizar um delete e já tinha sido concedido o privilégio de delete na tabela em questão, mas mesmo assim não estava conseguindo.  Depois de entender a situação, achei interessante compartilhar o conteúdo porque é um conceito básico de banco de dados. Em um ambiente de testes, repliquei a situação para ficar mais fácil de entender. 1) Criei uma tabela de testes e inseri registros. create table thiago.tb_teste (id number,a varchar2(10)); insert into thiago.tb_teste values (1,'Thiago'); insert into thiago.tb_teste values (2,'Thiago'); insert into thiago.tb_teste values (3,'Thiago'); insert into thiago.tb_teste values (4,'Thiago'); insert into thiago.tb_teste values (5,'Thiago'); commit; 2) Criei o usuário user_delete e dei permissão para deletar na tabela tb_teste create user user_delete identified by "user"; grant create session to user_delete; grant delete on th...

Replace disk Oracle ASM

 A partir da versão 12.1 tem um comando bem mais eficiente para substituir os discos que estão com algum problema dentro dos diskgroups ASM é replace_disk_clause Mas para minha situação ele não funcionou. Pelos testes e leitura na documentação, ele só vai funcionar se o seu disco antigo estiver defeituoso.  No meu caso, o disco não estava com problemas eu só precisava substituir. Então vejam o erro que me retornou: SQL> alter diskgroup TESTE REPLACE DISK TESTE01 with '/dev/oracleasm/disks/TESTE05' force; alter diskgroup TESTE REPLACE DISK TESTE01 with '/dev/oracleasm/disks/TESTE05' force * ERROR at line 1: ORA-15032: not all alterations performed ORA-15145: ASM disk 'TESTE01' is online and cannot be replaced. Repare que tentei até usar o force , mas mesmo assim ele retornou o erro pois o disco que estava tentando substituir , TESTE01, não estava com problema. Então a solução foi o usar o comando anterior a versão 12.1, usar ADD e DROP na me...