Introduction
Este documento descreve um procedimento passo a passo para resolver o problema de replicação ou sincronização de bancos de dados no Prime Network recriando o banco de dados standby do banco de dados principal.
Prerequisites
Requirements
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Use este procedimento para reconstruir o banco de dados secundário somente se SWITCHOVER_STATUS do banco de dados principal estiver em UNRESOLVABLE GAP.
- Verifique se o banco de dados principal está em GRAVAÇÃO DE LEITURA e o banco de dados secundário está em SOMENTE LEITURA ou SOMENTE LEITURA COM modos APPLY.
- Certifique-se de identificar o gateway/banco de dados Prime Central principal e secundário corretos.
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
- Prime Central versão 1.2 e superior
- Versão do Oracle Database 11G
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Informações de Apoio
1. Use este comando para saber switchover_status do banco de dados principal:
SQL> select switchover_status from v$database
SWITCHOVER_STATUS
--------------------
UNRESOLVABLE GAP
Note: O switchover do Prime Central Geo HA falha abruptamente, deixando o sistema Prime Central GEO HA e/ou o status da função do banco de dados corrompido (em primeiro lugar ou em ambos em standby) e você precisará reconstruir o principal ou o secundário, dependendo do último status ativo/em standby.
Note: Para todos os outros casos, abra o SR com o Cisco TAC para resolver o problema de replicação de banco de dados.
2. Use este comando para saber o modo atual do banco de dados principal e secundário:
SQL> select open_mode from v$database;
3. Use este comando para conhecer ORACLE_SID do banco de dados principal e secundário:
No gateway principal do usuário oracle:
echo $ORACLE_SID -> output should be “primedb”
No gateway secundário do usuário oracle:
echo $ORACLE_SID -> output should be “primstdb”
Problema
O switch Prime Central GEO HA e/ou o procedimento de failover/failback falham quando os bancos de dados ativos e em standby ficam fora de sincronia entre si. Isso faz com que os bancos de dados principal e standby se tornem ativos ou em standby ao mesmo tempo.
Troubleshoot
Antes de seguir a solução, você pode executar as etapas básicas de solução de problemas:
1. Verifique a conectividade da rede e/ou os problemas relacionados à latência entre o Prime Network Gateway primário e secundário.
2. Verifique este log do banco de dados no Principal para encontrar erros de ORA relacionados ao banco de dados:
<database_home_directory>/diag/rdbms/anadb/anadb/trace/alert_anadb.log
3. Verifique o status open_mode, current_scn e switchover no banco de dados Principal e Secundário.
SQL> select open_mode from v$database
SQL> select current_scn from v$database
SQL> select switchover_status from v$database;
4. A causa principal da replicação do banco de dados pode ser o problema de comunicação de rede entre o banco de dados Prime Central principal e secundário, o banco de dados corrompido ou erros relacionados ao banco de dados semelhantes.
Solução
Etapa 1. Verifique o ORACLE_SID no gateway/bancos de dados principal e secundário.
No gateway principal/banco de dados ORACLE_SID = primedb
No gateway/banco de dados secundário ORACLE_SID = primdtdb
Se ORACLE_SID em um dos gateways primário ou secundário não for como mencionado anteriormente, use este comando para configurar o SID correto:
setenv ORACLE_SID = <value>
Note: Aqui <value > = primedb ou primstdb é baseado em primário ou secundário.
Etapa 2. No login do banco de dados Ativo e Standby como sysdba e localize o caminho do diretório para o arquivo de dados, os redo logs e os arquivos de log.
Use estes comandos:
Para localizar os arquivos de dados:
SQL> select name from v$datafile;
Para localizar os arquivos de redo log:
SQL> select member from v$logfile;
Para localizar o log de arquivamento:
SQL> show parameter log_archive_dest_1;
Etapa 3. Para reconstruir o banco de dados, execute este script na sintaxe correta depois de identificar o cenário correto descrito na etapa 4.
sh PCoracleADG.ksh [PRIMARY] [STANDBY] [DB_TO_BE_DROPPED] [SYSTEM_PASSWD] [ORACLE_BASE]
[ORACLE_USER] [ARCHIVED_LOG_LOCATION] [ORACLE_DATA_FILES_LOCATION] [REDO_LOG_LOCATION]
Note: O script é copiado na pasta $ORACLE_BASE/standby e precisa ser executado como um usuário oracle.
Etapa 4. Identifique qualquer cenário com o status atual da sua configuração e prossiga de acordo:
Note: Como exemplo, supõe-se que o HA1 é o gateway/banco de dados principal e o HA2 é o gateway/banco de dados secundário
Cenário 1: O HA1 está ativo e precisa reconstruir o banco de dados em standby no HA2. Use esses parâmetros e execute o script mencionado na Etapa 3. em HA2.
PRIMARY = primedb
STANDBY = primstdb
DB_TO_BE_DROPPED = primstdb
SYSTEM_PASSWD = use Step 5
ORACLE_BASE = /orahome/oracle
ORACLE_USER = oracle
ARCHIVED_LOG_LOCATION = output of ‘show parameter log_archive_dest_1;&rsquo
ORACLE_DATA_FILES_LOCATION = output of ‘select name from v$datafile;&rsquo
REDO_LOG_LOCATION = output of ‘select member from v$logfile;’
Cenário 2: O HA2 está ativo e precisa reconstruir o banco de dados em standby no HA1. Use esses parâmetros e execute o script mencionado na Etapa 3. em HA1.
PRIMARY = primedb
STANDBY = primstdb DB_TO_BE_DROPPED = primedb SYSTEM_PASSWD = use a Etapa 5 ORACLE_BASE = /orahome/oracle ORACLE_USER = oracle ARCHIVED_LOG_LOCATION = saída de ‘show parameter log_archive_dest_1;&rsquo ORACLE_DATA_FILES_LOCATION = saída ‘selecionar nome do v$datafile;&rsquo REDO_LOG_LOCATION = saída de ‘selecionar membro do v$logfile;’
Etapa 5. Use este procedimento para descobrir <SYSTEM_PASSWD>:
su - prime em HA1 ou HA2
grep Embedded_SYSTEM_PASS= install/conf/.db.conf
Por exemplo, se ele tiver Embedded_SYSTEM_PASS=90f8006cd6bc0dde, então:
- java -cp install/utils/encryptionUtil.jar EncodeDecode descriptografar 90f8006cd6bc0dde.
- O Prime Central retorna uma string de saída usada como SYSTEM_PASSWD na Etapa 4.
Verificar
Verificação de banco de dados no gateway de rede Prime primária e secundária:
1. Verifique se o número e os nomes dos arquivos de redo log são os mesmos no banco de dados Ativo e Standby.
2. Verifique se o número e o tamanho dos arquivos de dados nos bancos de dados Ativo e Standby são iguais.
3. Use este comando no banco de dados Ativo e Standby para mostrar que o SCN atual no banco de dados Standby pode acompanhar o scn no banco de dados Primário:
sqlplus / as sysdba
SQL>select current_scn from v$database;
4. Verifique se database_roleof Ative database é PRIMARY e Standby database é LOGICAL_STANDBY.
sqlplus / as sysdba
SQL>select database_role from v$database;
5. Verifique se o modo_aberto do banco de dados ativo é LEITURA GRAVAÇÃO e LEITURA SOMENTE COM APLICATIVO no banco de dados em standby.
sqlplus / as sysdba
SQL>select open_mode from v$database;
6. Verifique se switchover_status de Ativo é TO STANDBY e NÃO PERMITIDO no banco de dados de standby:
sqlplus / as sysdba
SQL>select switchover_status from v$database;
7. Valide se os logs de arquivamento foram transferidos:
No banco de dados ativado:
SQL> alter system switch logfile;
No banco de dados em standby:
Verifique se um novo arquivo foi criado em ~/arch