Quando o dispositivo primário falha, você pode executar um failover de banco de dados. Este tópico descreve o procedimento para os dispositivos que executam versões anteriores à 9.0.0.
Quando o dispositivo primário falha, o banco de dados secundário é somente leitura. Quando ocorrer um failover, realize as seguintes tarefas:
- Ativar as operações de gravação no banco de dados secundário
- Promover permanentemente o dispositivo secundário do provedor de serviços para se tornar o primário
- Promover permanentemente o dispositivo de tenant secundário para que ele se torne o primário
- Reiniciar o dispositivo primário
Ativar as operações de gravação no banco de dados secundário
A meta desse procedimento será alternar o banco de dados principal com o dispositivo secundário (tenant ou provedor de serviços) se o dispositivo principal não estiver disponível. O objetivo é ativar as operações de gravação para que o banco de dados do dispositivo secundário seja a fonte de dados principal.
- Pare o dtService, o av-manager e o serviço de diagnóstico no dispositivo primário (se acessível) e no dispositivo secundário:
sudo service dtService stop sudo service av-manager stop sudo service diagnose stop
- Pare todos os daemons do slony nos dispositivos primários (se acessíveis) e secundários:
sudo killall slon
- No dispositivo secundário, conecte-se ao banco de dados fdb e execute o seguinte comando SQL:
drop schema _slony cascade;
- Repita a etapa 3 para o EDB e AVDB se o dispositivo pertencer a uma organização de tenant.
- Se o banco de dados no dispositivo primário ainda estiver acessível, faça backup do banco de dados, copie os arquivos do banco de dados e restaure o banco de dados no dispositivo secundário (consulte Fazendo Backup e Restaurando Bancos de Dados).
- Abra o arquivo /usr/local/desktone/release/active/conf/fdb.properties para editar e remover o endereço IP do dispositivo primário.
- Repita a etapa 6 para /usr/local/desktone/release/active/edb.properties se o dispositivo pertencer a uma organização de tenant.
- Repita a etapa 6 para /usr/local/desktone/release/active/avdb.properties se o dispositivo pertencer a uma organização de tenant.
- Defina as variáveis de ambiente DB_HOST e DB_PASSWORD:
export DB_HOST=IP_of_TA2_appliance export DB_PASSWORD=database_password
- Execute o script av-setup como sudo:
sudo /usr/local/desktone/scripts/av-setup
- Abra o arquivo applications.properties para edição:
vi /usr/local/xmpms/diagnose/config/application.properties
- No arquivo applications.properties, edite as linhas da seguinte maneira:
db.jdbc.url=jdbc:postgresql://<ip address>:5432/avdb?ssl=true db.fdb.jdbc.url=jdbc:postgresql://<ip address>:5432/fdb?ssl=true
- Inicie o dtService, o av-manager e o serviço de diagnóstico no dispositivo secundário:
service dtService start service av-manager start service diagnose start
Promover o dispositivo secundário do provedor de serviços para primário
Para promover permanentemente o dispositivo secundário do provedor de serviços para ser o dispositivo primário do provedor de serviços, execute as seguintes etapas.
Neste exemplo, o dispositivo primário é “A” e o dispositivo secundário é “B”, e o dispositivo A está acessível (o banco de dados neste dispositivo está acessível).
- Pare o dtService em todos os dispositivos do provedor de serviços:
service dtService stop
- Faça login em todos os dispositivos do provedor de serviços.
- Abra o arquivo /usr/local/desktone/release/active/conf/fdb.properties para editar e remover o endereço IP do dispositivo primário que está com status de falha.
- Pare todos os daemons do slony em todos os dispositivos do provedor de serviços:
killall slon
- Nos dispositivos primário e secundário, conecte-se ao banco de dados FDB e execute o seguinte comando SQL:
drop schema _slony cascade;
- Execute os seguintes comandos SQL no dispositivo secundário do centro de dados (substitua “A” e “B” pelos nomes de seus dispositivos):
fdb=# update appliance set capabilities = (capabilities & 65343) where name='A'; fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
- Inicie o dtService nos dispositivos do provedor de serviços diferentes do dispositivo que falhou:
service dtService start
Confirme se o dispositivo está em execução antes de prosseguir com a próxima etapa.
- Pare o dtService em todos os dispositivos do provedor de serviços, exceto para o dispositivo do provedor de serviços principal (o dispositivo do provedor de serviços secundário é o principal):
service dtService stop
- Inicie os daemons do slon em todos os dispositivos do provedor de serviços:
/usr/local/desktone/scripts/start_slon_fdb.sh
- Faça login no Centro de Serviço do dispositivo do provedor de serviços principal (o dispositivo do provedor de serviços secundário é o principal) com seu navegador e realize a operação de reinicialização do slony:
- Navegue até .
- Na lista suspensa ID da Organização, selecione 1000.
- Clique no botão para reinicializar o Slony.
- Quando a reinicialização do Slony estiver concluída, execute o seguinte comando no FDB do dispositivo secundário no centro de dados:
SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT last_value FROM _slony.sl_local_node_id)THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;
A saída deve ser exibida da seguinte maneira:
set_id | set_comment | local_id | master_node --------+--------------------------+----------+------------- 1 | All tables and Sequences | 1 | t (1 row)
- Inicie o dtService em todos os dispositivos, exceto o dispositivo do provedor de serviços com falha.
service dtService start
Promover o Dispositivo do Tenant Secundário para Primário
Para promover permanentemente o dispositivo secundário do tenant para ser o dispositivo primário do tenant, execute as seguintes etapas.
Neste exemplo, o dispositivo primário é “A” e o dispositivo secundário é “B”, e o dispositivo A está acessível (o banco de dados neste dispositivo está acessível).
- Pare o dtService em todos os dispositivos do tenant na organização:
service dtService stop
- Faça login em todos os dispositivos do tenant na organização.
- Abra o arquivo /usr/local/desktone/release/active/conf/fdb.properties para editar e remover o endereço IP do dispositivo primário que está com status de falha.
- Pare todos os daemons do slony em todos os dispositivos do tenant na organização:
killall slon
- Se necessário, faça backup do banco de dados no dispositivo principal e restaure-o nos dispositivos secundários.
- Nos dispositivos principal e secundário, conecte-se ao banco de dados FDB e execute o seguinte comando SQL:
drop schema _slony cascade;
- Execute os seguintes comandos SQL no dispositivo do provedor de serviços principal (substitua 'A' e 'B' pelos nomes de seus dispositivos):
fdb=# update appliance set capabilities = (capabilities & 65343) where name='A'; fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
- Inicie os daemons do slon em todos os dispositivos do tenant na organização:
/usr/local/desktone/scripts/start_slon_fdb.sh /usr/local/desktone/scripts/start_slon_edb.sh /usr/local/desktone/scripts/start_slon_avdb.sh
- Faça login no Centro de Serviço do dispositivo do provedor de serviços principal com seu navegador e realize a operação de reinicialização do slony:
- Navegue até .
- Selecione ID da organização para o tenant na lista suspensa ID da Organização.
- Selecione Malha para o rótulo de nome da instância do DB.
- Clique no botão para reinicializar o Slony.
- Quando a reinicialização do Slony estiver concluída, execute o seguinte comando no FDB do dispositivo do tenant secundário no centro de dados:
SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT last_value FROM _slony.sl_local_node_id) THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;
A saída deve aparecer da seguinte maneira (se o dispositivo primário tiver falhado no centro de dados inicial):
set_id | set_comment | local_id | master_node --------+--------------------------+----------+------------- 1 | All tables and Sequences | 1 | t (1 row)
- Inicie o dtService em todos os dispositivos do tenant, exceto no dispositivo do tenant que está com o status de falha.
service dtService start
Reiniciar o Dispositivo Primário
Ao reiniciar o dispositivo primário após o failover, execute uma reinicialização do slony no EDB e no AVDB.