Isenção de responsabilidade : nunca trabalhei com replicação antes, mas estou fazendo toda a minha pesquisa. Na verdade, não ter um conhecimento profundo sobre o MySQL dificulta o entendimento de grande parte da documentação.
Temos um servidor remoto e muitos servidores 'no local'. Este aplicativo é de missão crítica e, devido às conexões de internet não confiáveis no local, as máquinas no local têm instâncias totalmente funcionais do aplicativo. As máquinas no local estão protegidas por vários firewalls e geralmente não conseguem acessar umas às outras. Podemos configurar túneis SSH para permitir que o banco de dados na nuvem se comunique com os bancos de dados locais.
Aqui está um diagrama simples:
A replicação multimestre assíncrona parece ser a melhor aposta para nós, mas a maior parte da documentação parece implicar que a replicação multifonte funciona apenas para escravos e/ou a replicação multimestre funciona apenas circularmente e um único mestre (neste caso, o servidor de nuvem) não pode replicar diretamente para vários outros mestres.
Estou interpretando isso incorretamente (simplesmente incapaz de encontrar documentação sobre como fazer isso) ou é esse o caso? Se for o caso, existem pacotes de terceiros como Tungsten ou Galera que podemos usar? No entanto, preferimos usar o MySQL mais simples possível.
Editar para esclarecer: Aqui está uma seção my.cnf que encontrei descrevendo uma configuração de 2 mestres. Eu gostaria de definir N número deles no servidor de nuvem e apenas um de cada (o servidor de nuvem) nos servidores locais. Gostaríamos de fazer tudo através de my.cnf e evitar usar/criar scripts de comandos shell do mysql.
master-host = 192.168.16.4
master-user = replication
master-password = slave
master-port = 3306
REPLICAÇÃO MULTIMASTER
Se você quiser usar o Galera, basta obter o Percona XtraDB Cluster. Ele vem pronto para uso com bibliotecas Galera embrulhadas dentro. Basta colocar as opções wsrep em my.cnf para habilitar o Galera. Consulte a documentação do PXC para obter mais informações.
Se você tiver o EC2, também poderá usar o PXC Setup Guide no EC2 .
REPLICAÇÃO MULTIFONTE
Isto está certo. A terminologia se encaixa no que diz. É um escravo que pode replicar a partir de vários mestres. Isso é possível com MariaDB e MySQL 5.7
Se você deseja executar a replicação de várias fontes com o MySQL 5.1/5.5/5.6 vanilla (mais como sem açúcar), será necessário configurar o como round robin. Página 227.228 do Livro (ISBN 0596807309)
tem o algoritmo para fazer a replicação de várias origens robin robin
Escrevi um post sobre essa técnica antes de ler o livro
Apr 26, 2011
: MySQL em topologia em estrela (StackOverflow)Apr 28, 2011
: MySQL em topologia em estrela (ServerFault)A propósito, as páginas 228.229 do livro têm código de amostra em Python
REPLICAÇÃO do MySQL
Por favor, não coloque as opções para conectar a replicação em
my.cnf
.Eles estão obsoletos desde o MySQL 5.5
Diz isso na documentação do MySQL 5.6 sob o título
Para qualquer pessoa com um problema semelhante, acabei optando pelo MariaDB, que oferece suporte a vários mestres por nó (variável connection_name ao especificar CHANGE MASTER TO). O MySQL suporta isso supostamente começando em 5.7, mas não queremos esperar por esse lançamento.