Diagnosticar e Solucionar Problemas de Falhas de Atualização
As operações de atualização podem falhar por diversos motivos. Geralmente, uma operação falha porque um nó de banco de dados está desativado, não há espaço suficiente no sistema de arquivos ou o host do banco de dados não pode acessar o armazenamento de objetos.
Este artigo inclui informações para ajudá-lo a determinar a causa da falha e corrigir o problema. As informações são organizadas em várias seções, com base na condição do erro.
Caso já saiba a causa, você pode ignorar o tópico com a solução sugerida. Caso contrário, use o tópico Identificar a Causa da Falha para começar.
Os seguintes tópicos são abordados neste artigo:
- Identificar a Causa da Falha
- Problemas do Agente de Serviço do Banco de Dados
- Problemas de Conectividade do Serviço Object Store
- Problemas do Host
- Problemas do Oracle Clusterware
- Problemas do Banco de Dados
- Obter Ajuda Adicional
Dica:
Você também pode criar conexões de console serial para diagnosticar e solucionar problemas no seu sistema no modo de usuário único. Para obter informações sobre como criar uma conexão de console serial na Console do OCI, consulte Gerenciar a Conexão da Console Serial com o Sistema de Banco de Dados.Identificar a Causa da Falha
Na Console do OCI, você pode identificar uma operação de atualização com falha, exibindo o histórico de atualizações de um sistema de banco de dados ou de um banco de dados individual. Uma atualização que não foi aplicada com sucesso exibe o status Com falha e inclui uma breve descrição do erro que causou a falha. Se a mensagem de erro não contiver informações suficientes para indicar uma solução, use a CLI do banco de dados e os arquivos de log para coletar mais dados. Em seguida, consulte a seção aplicável neste artigo para obter uma solução.
Os seguintes tópicos são abordados:
Identificar a Causa-Raiz da Falha da Operação de Atualização
-
Faça log-in no host como o usuário-raiz e navegue até o diretório
/opt/oracle/dcs/bin/
. -
Determine a sequência de operações executadas no banco de dados.
dbcli list-jobs
Observe o ID do último job listado com status diferente de Sucesso.
-
Com o ID do job que você observou da etapa anterior, use o seguinte comando para verificar os detalhes desse job:
dbcli describe-job -i <job_ID> -j
Geralmente, a execução deste comando é suficiente para revelar a origem da falha.
-
Se você precisar de mais informações, verifique o arquivo
/opt/oracle/dcs/log/dcs-agent.log
.Você pode localizar o ID do job neste arquivo usando o timestamp retornado pelo relatório de jobs na etapa 2.
- Se a falha na atualização estiver em um banco de dados RAC de 2 nós, execute as etapas 3 e 4 em ambos os nós.
Problemas do Agente de Serviço do Banco de Dados
Seu banco de dados faz uso de uma estrutura de agentes para permitir que você o gerencie por meio da plataforma do Oracle Cloud.
Os seguintes tópicos são abordados:
Resolver Falhas de Atualização Causadas por um Agente Interrompido
Às vezes, pode ser necessário reiniciar o programa dcsagent
se ele tiver o status de interromper/em espera para resolver uma falha de atualização.
Reiniciar o Database Service Agent
-
Em um prompt de comando, verifique o status do agente:
initctl status initdcsagent
-
Se o agente estiver no estado interromper/aguardando, tente reiniciá-lo:
initctl start initdcsagent
-
Verifique o status do agente novamente para confirmar se ele tem o status de início/execução:
initctl status initdcsagent
Resolver Falhas de Atualização Causadas por um Agente que Precisa ser Atualizado
A operação de atualização também poderá falhar se o agente precisar ser atualizado. O sistema fornece a seguinte mensagem de erro para esta falha:
Current DcsAgent version is less than or equal to minimum required version.
Para resolver esse problema, execute as etapas na seção a seguir.
Entre em contato com o Suporte Técnico da Oracle para Atualizar o Agente do OCI Database Service
-
Verifique se o agente (dcsagent) e o programa DCS Admin (dcsadmin) estão sendo executados usando os seguintes comandos:
initctl status initdcsagent
initctl status initdcsadmin
-
Se esses programas não estiverem sendo executados, use os seguintes comandos para reiniciá-los:
initctl start initdcsagent
initctl start initdcsadmin
- Siga as instruções em Obter Ajuda Adicional para coletar os arquivos de log do seu agente DCS.
- Consulte o Suporte Técnico da Oracle para obter assistência com a atualização do agente.
Problemas de Conectividade do Serviço Object Store
As atualizações do sistema de banco de dados e do banco de dados são armazenadas no OCI Object Storage. Portanto, as operações de atualização bem-sucedidas requerem conectividade entre o host do sistema de banco de dados e o local do Object Storage do qual as atualizações são baixadas.
Os seguintes tópicos são abordados:
Certifique-se de que o Host do Banco de Dados Pode Estabelecer Conexão com o OCI Object Storage
-
Use o seguinte comando para verificar se o host pode acessar o OCI Object Storage:
dbcli describe-latestpatch
Exemplo de saída indicando sucesso:
componentType availableVersion -------------- -------------- gi 12.2.0.1.180417 gi 12.1.0.2.180417 db 11.2.0.4.180417 db 12.2.0.1.180417 db 12.1.0.2.180417 oak 12.1.2.11.3 oak 12.2.1.1.0
Exemplo de saída indicando falha:
DCS-10032:Resource patch metadata is not found.Failed to download patchmetadata from objectstore
-
Se não for possível estabelecer conexão com o Armazenamento de Objetos, consulte Backup de um Banco de Dados Usando a Console para saber como configurar a conectividade do Armazenamento de Objetos.
Problemas do Host
Uma ou mais das seguintes condições no host do banco de dados pode fazer com que as operações de atualização falhem:
Os seguintes tópicos são abordados:
O Nó do Banco de Dados não está Sendo Executado Durante a Operação de Atualização
Todos os nós do banco de dados devem estar ativos e em execução enquanto uma operação de atualização estiver em andamento, se você estiver atualizando o sistema de Banco de Dados ou o home do banco de dados. Use a Console do OCI para verificar se o status de cada nó é AVAILABLE, e inicie o nó, se necessário.
O Sistema de Arquivos Está Cheio
As operações de atualização requerem um mínimo de 15 GB de espaço livre no diretório /u01
no sistema de arquivos do host. Use o comando df -h
no host para verificar o espaço disponível. Se o espaço do sistema de arquivos for insuficiente, você poderá remover os arquivos antigos de log e rastreamento para liberar espaço.
Problemas do Oracle Clusterware
Os seguintes tópicos são abordados:
O Oracle Clusterware Não Está Sendo Executado
O Oracle Clusterware permite que os servidores se comuniquem uns com os outros de modo que possam funcionar como unidade coletiva. O programa de software do cluster deve estar ativo e em execução no sistema de Banco de Dados para que as operações de atualização sejam concluídas. Às vezes, pode ser necessário reiniciar o Oracle Clusterware para resolver uma falha de atualização.
Reiniciar o Oracle Clusterware
-
No prompt de comando, verifique o status do Oracle Clusterware:
crsctl check crs
Saída:
CRS-4638: Oracle High Availability Services is online CRS-4537: Cluster Ready Services is online CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online
Para obter informações mais detalhadas sobre o status, você pode executar
crsctl stat res -t
. -
Se o Oracle Clusterware não estiver on-line, tente reiniciar o programa:
crsctl start crs
-
Verifique o status do Oracle Clusterware para confirmar se ele está on-line:
crsctl check crs
O Oracle GI (Grid Infrastructure) Não Está Atualizado
Esse problema ocorre quando você tenta atualizar um banco de dados antes de atualizar o sistema de Banco de Dados desse banco de dados. A descrição do erro indica que o Oracle Grid Infrastructure deve ser atualizado primeiro. Para resolver esse problema, atualize o sistema de Banco de Dados para a versão mais recente disponível. Depois de atualizar o sistema de banco de dados, você poderá repetir a operação de atualização do banco de dados.
Para obter as versões do GI atuais e mais recentes disponíveis para o sistema de banco de dados, use o seguinte comando:
dbcli describe-component
Problemas do Banco de Dados
Um estado de banco de dados incorreto pode levar a falhas de atualização.
Os seguintes tópicos são abordados:
O Banco de Dados não está Sendo Executado Durante a Operação de Atualização
O banco de dados deve estar ativo e em execução para que todas as tarefas de atualização sejam concluídas. Caso contrário, execute a tarefa datapatch manualmente.
Verificar se o Banco de Dados está Ativo e em Execução
Use o seguinte comando para verificar o estado do banco de dados e verifique se foram resolvidos quaisquer problemas que possam ter colocado o banco de dados em um estado incorreto:
srvctl status database -d <db_unique_name> -verbose
O sistema retorna uma mensagem incluindo o status da instância do banco de dados. O status da instância deve ser Aberto para que a operação de atualização seja bem-sucedida.
Se o banco de dados não estiver em execução, use este comando para iniciá-lo:
srvctl start database -d <db_unique_name> -o open
Se o banco de dados estiver montado, mas não tiver o status Abrir, use os seguintes comandos para acessar o prompt de comando do SQL*Plus e defina o status como Abrir:
sqlplus / as sysdba
alter database open;
Execute a Tarefa datapatch
Antes de executar o comando datapatch
, verifique se todos os PDBs (bancos de dados plugáveis) estão abertos. Para abrir um PDB, você pode usá-lo para executar ALTER PLUGGABLE DATABASE <pdb_name> OPEN READ WRITE;
no PDB.
$ORACLE_HOME/OPatch/datapatch
O comando datapatch
deve ser executado em cada home do banco de dados.
Obter Ajuda Adicional
Se não foi possível resolver o problema usando as informações deste artigo, siga os procedimentos abaixo para coletar informações relevantes sobre diagnóstico e banco de dados. Depois de obter essas informações, entre em contato com o Suporte Técnico da Oracle.
Os seguintes tópicos são abordados:
Coletar Informações de Diagnóstico sobre Jobs com Falha
-
Faça log-in no host como o usuário-raiz e navegue até o diretório
/opt/oracle/dcs/bin/
. -
Execute os dois comandos a seguir para gerar informações sobre o job com falha:
dbcli list-jobs | grep -i <dbname>
dbcli describe-job -i <job_ID> -j
O <job_ID> no segundo comando deve ser o ID do job com falha mais recente reportado no primeiro comando.
-
Execute o script do coletor de diagnósticos para criar um arquivo zip com as informações de diagnóstico para o Oracle Support Services.
diagcollector.py
Esse comando cria um arquivo chamado
diagLogs-<timestamp>.zip
no diretório/tmp
.
Coletar Arquivos de Log do Agente DCS
Para coletar arquivos de log do agente DCS, faça o seguinte:
- Faça log-in como usuário opc.
-
Execute o seguinte comando:
sudo /opt/oracle/dcs/bin/diagcollector.py
-
O sistema retorna uma mensagem indicando que os logs do agente estão disponíveis em um arquivo zip em um diretório especificado. Por exemplo:
Log files collected to :/tmp/dcsdiag/diagLogs-1234567890.zip Logs are being collected to: /tmp/dcsdiag/diagLogs-1234567890.zip
Coletar Arquivos de Log do Oracle Grid Infrastructure e do Banco de Dados
Se uma atualização do Oracle Grid Infrastructure ou do Oracle Database falhou, você poderá localizar arquivos de log para essas falhas nos seguintes locais:
Oracle Grid Infrastructure
$GI_HOME/cfgtoollogs/
Oracle Database
$ORACLE_HOME/cfgtoollogs/