Replicação entre servidores
Como transformar um SLAVE em MASTER?
RTREPLICATOR.FAQ-82317
Cenário: O servidor MASTER foi perdido e um SLAVE terá de ser promovido a MASTER.
Será necessário:
- Alterar as sequencias para garantir que o NEXT_VALUE seja maior que todas as sequences já usadas (isso deve ser feito sequencia por sequencia)
- Alterar a configuração para que ele fique apontando para o MASTER
Se o MASTER ainda puder ser consultado, pode-se copiar a sequencias que estão cadastradas nele para o novo master.
Pode-se utilizar, por exemplo, o comando:
DML-SAVE SEQUENCES;
Comando sql para PK_SEQUENCES
select max(id)+100000 as id from (
select max(id) as id from saldos_mensais_estoques
union all
select max(id) as id from itens_doc_entradas_saidas
union all
select max(id) as id from itens_pedidos
union all
select max(id) as id from movimentos_financeiros
union all
select max(id) as id from lancamentos
union all
select max(id) as id from movimentos_estoques
union all
select max(id) as id from chaves_produtos
union all
select max(id) as id from doc_entradas_saidas
union all
select max(id) as id from produtos
union all
select max(id) as id from historicos_produtos
) as q
Também é necessário ver os ranges já baixados nos slaves. O NEXT_VALUE de cada sequencia deve ser maior que os valores já utilizados nas entidades e maior que todos os ranges já baixados.
Ex:
Para SEQ_PEDIDO
Zerar Max Value, Next range min value e Next range max value.
select max (pedido) from pedidos;
Para SEQ_PESSOA
select max(pessoa::numeric)
from pessoas
where pessoa ~ '^[0-9]+$';
- Consultar o Ronnie para descobrir o nome de todas as outras sequences, pois os nomes são diferentes.
- Obter o número resultante e aumentar. Ex: 1000 para 1100 no Next Value.
- Copiar as Jobs do servidor master NO CASO DE TER ACESSO AO MASTER!!!!!