Banco de dados MySQL sincronizando com local e remoto com c#

Banco de dados MySQL sincronizando com local e remoto com c#

Eu postei isso aqui porque é mais uma questão de mysql do que c #, eu escrevi um software que executa uma instância local do mysql quando ele é iniciado, agora, quando o mysql estiver ativo, gostaria de sincronizar os dados entre a tabela de banco de dados remota e a tabela do banco de dados local que o software executa (não deve sincronizar nenhum outro banco de dados/tabela, pois há muitos).

Eu tenho uma configuração de replicação para sincronizar todo o banco de dados com outro servidor que funciona, a menos que o servidor fique inativo e nunca mais volte a funcionar, então, com base nisso, não acho que a replicação funcione, pois quando o software é fechado, ele também fecha o MySQL.

Então, qual seria o melhor método para sincronizar os bancos de dados remotos e locais?

Responder1

Você pode fazer com que a replicação mestre/escravo do MySQL funcione ajustando os tempos limite e reemitindo os comandos "STOP SLAVE" e "START SLAVE". No arquivo de configuração do escravo, você pode definir slave-net-timeout para o número de segundos após os quais ele considera a conexão cortada e definir master-connect-retry para o número de segundos que deve pausar entre as tentativas de reconexão. Ambos estão definidos para 86.400 segundos ou 1 dia. Por exemplo, você pode tentar 30 segundos assim:

slave-net-timeout = 30
master-connect-retry = 30

Uma alternativa é tentar uma solução comoSincronização de banco de dados SymmetricDSou tungstênio. Usei o SymmetricDS em situações em que a rede fica lenta ou até mesmo indisponível em alguns momentos, e ela se recupera automaticamente. Ele pode ser executado como um servidor de replicação independente ou pode ser incorporado e controlado a partir de um aplicativo.

informação relacionada