Resumo das Informações Relacionadas à Replicação MySQL
Olá. Aqui é a Komiya.
Hoje em dia, frequentemente me perguntam sobre mysql, então
Esta é uma tentativa de compilar links que expliquem o que as pessoas tendem a perguntar para que possam copiar e colar quando solicitadas.
Por favor, note que você não saberá muito só lendo este artigo.
(Parece ser útil quando você esquece completamente dele.) )
・Basic
Replicação Orientada a Campo Caminho Detalhado do Computador: 10 Técnicas para Usar Replicação MySQL com Segurança. Arte da replicação MySQL.
O que está escrito no log binário é uma consulta de atualização.
Como observação, erros de E/S podem ser discos fisicamente quebrados, falha de rede, IDs de usuário e senhas de replicação incorretas, além de duplicação de servidores_id
Pode acontecer por motivos como. A principal causa dos erros de SQL é mencionada no primeiro link acima, mas tenho a impressão de que há principalmente erros duplicados.
Para referência, as configurações atuais de replicação são mais ou menos assim.
[shell]## replicação (mestre/escravo) log-bin=mysql-bin log-bin-index=mysql-bin.index binlog_format=misto server-id = 133 relay-log=mysqld-relay-bin relay-log-index=mysql-relay-bin.index log_slave_updates=1 replicate-ignore-db=mysql,information_schema,performance_schema binlog-ignore-db=mysql,information_schema,performance_schema skip_slave_start read_only slave_net_timeout=120
## replicação (para 5.6) gtid-mode = OFF enforce_gtid_consistency=false-master-info-repository=TABLE relay-log-info-repository=TABLE relay_log_recovery=ON #sync-master-info=1 slave-parallel-workers=0 binlog-checksum=CRC32 #master-verify-checksum=1 #slave-sql-verify-checksum=1 binlog-rows-query-log_events=1 #log_bin_use_v1_row_events=ON #sync_binlog=1 report-port=3306 report-host=192.168.1.133[/shell]
Bem, o mestre e o escravo são HA e há a possibilidade de os papéis serem trocados.
Log_slave_updates e ambos os outros parâmetros (exceto server_id e report host) e têm as mesmas especificações.
Replicação não está relacionada, mas já postei alguns parâmetros, então vou mencionar.
Se você tiver vários discos, pode dividir a área do sistema e a área de dados para distribuir a carga de E/S.
Se for AWS, acho que seria uma boa ideia especificar o disco efêmero como tmpdir.
・Replicação de bancos de dados e tabelas específicas, ou não
MySQL :: Manual de Referência MySQL 5.1 :: 5.5.6 Avaliação de Regras de Replicação de Servidores
Parece que isso não pode ser alterado online (parece que eles poderão mudar a partir de cerca de 5.7).
・Sobre as especificações do registro de relé
MySQL :: Manual de Referência MySQL 5.1 :: 5.5.5.1 Logs de Relé Escravo Aprenda Especificações do Log de Relé MySQL - OpenGroove
Quando verifiquei o MHA, precisei deixar um registro de retransmissões, então procurei.
・Contramedidas de atraso
O Caminho Computacional da Dinastia Han: Tendências e Contramedidas de Atraso de Replicação em MySQL MySQL Curado com ALTER - Diário de Takami_hiroki
Na verdade, o Created_tmp_disk_tables aumentou e uma tabela temporária foi criada no disco, então está atrasado.
Houve momentos em que aumentei o tmp_table_size e o máximo_heap_table_size para resolver o problema.
・Atrasar intencionalmente
Use mk-slave-delay para atrasar intencionalmente o slaveDB no ambiente de desenvolvimento por 3 segundos daemontools shell Procedimento para reproduzir localmente o atraso de replicação MySQL Parte 2 - Blog Tomorrow Style da CFlat Inc. MySQL :: Manual de Referência MySQL 5.6 :: 16.3.9 Replicação Retardada
*A partir de 5.6, MUDAR MESTRE PARA MESTRE_DELAY = N; OK. Antes de 5.5, é necessário o atraso pt-slave.
Erro duplicado
Solução de Problemas de Erros de Replicação MySQL 1062 - OpenGroove O que fazer quando um erro de entrada duplicado aparece em um escravo MySQL | DEVLAB
Se parecer sobrepor demais, pode ser melhor fazer dump do master e carregar no slave para igualar a consistência.
・Verificação de integridade
pt-table-checksum — Documentação do Percona Toolkit
[Referência OSS: [MySQL] Integridade de Replicação com Maatkit] (http://infraref.blogspot.jp/2011/02/mysqlmaatkit.html)
Nunca usei, mas parece que existe algo assim.
- GTID na versão 5.6
Um pouco sobre MySQL 5.6 - Armadilhas de Mamebata para se lembrar ao usar o novo recurso "GTID" do MySQL-5.6.5 - Limitações ao usar o Y-KenStudio Global Transaction ID para configuração de replicação - diário do hiroi10
Aliás, nunca vi um ambiente onde o GTID seja ativado e s-in. (Em abril de 2014)
Replicação ・5.6 em geral
Yakst - Como tornar escravos seguros contra travamentos no MySQL 5.6 Melhorias do MySQL 5.6 (Parte 3) - Replicação Popular Recebe Mais Melhorias | Pense no Memorando Diário de TI: Escravo como Rumor_parallel_workers
Replicação 5.5 e 5.6
Memorando Diário: Pendurar escravos do MySQL 5.5 (e anteriores) no mestre do MySQL 5.6 faz você se sentir irritado. Conte a história assustadora sobre o "RESET SLAVE" para usuários de replicação do MySQL-5.5/5.6 - Y-Ken Studio Hatebro Branch Memorandum Diário: MySQL 5.6 e MySQL 5.0 replicação tem threads de E/S Erro: 2049
・semi-sincronização
Han's Computer Road: O Método MySQL HA Mais Forte - Replicação Semi-SíncronaVersão MySQL 5.5 GA já saiu, então tentei usar Replicação Semi-Síncrona - Como Futurista... Replicação Semi-Síncrona MySQL. Veja a Magia. Tente a Magia. « Ronen Baram
Conexão SSL
suz-lab - blog: Conexão SSL com MySQL suz-lab - blog: Replicação MySQL com conexão SSL
Aliás, não ouço muito sobre querer SSL. Pode ser como querer sincronizar parcialmente os dados e analisá-los.
Em primeiro lugar, é raro o banco de dados entrar em contato com a segmentação frontal, e acho comum sentir que ela não é global, mas via VPN.
・Hall da Fama N:1 cara (Eu não quero fazer isso sozinho, mas tem gente assim)
Como fazer a replicação de Master n vs. Slave 1 - fazer_aki
Acho que vou mudar o datadir, porta e nomes dos arquivos de log. Bem, em outras palavras, você não pode fazer n:1 normalmente na mesma instância.
Ouvi dizer que a replicação multi-fonte pode estar disponível no MySQL 5.7, mas está em desenvolvimento e não tenho certeza.
・Sobre a configuração de replicação em múltiplos estágios
Não podemos responder a falhas em múltiplos estágios. Isso ocorre porque se torna mais complicado responder a falhas de nós intermediários.
Crie um escravo neto que seja aceitável mesmo que ele desapareça para análise (ou se for restaurado durante o horário comercial)
Se sim, acho aceitável. Não acho possível se estiver diretamente ligado à suspensão de serviço, caso seja parado.
Se existe uma estrutura assim na empresa agora, parece que vou verificar em detalhes por que ela era tão estruturada.
Se o número de escravos aumentar demais e a largura de banda da CPU master ou da NIC for insuficiente, não há mais nada a fazer
Mas, felizmente, nunca vi um ambiente assim até agora.
Se você olhar por esse lado, a replicação sozinha já é surpreendentemente informativa.
A seguir são informações que não são uma réplica em si, mas vou postá-las.
・MHA
MHA para MySQL e DeNA História Open Source mysql-master-ha - MHA para MySQL: Master High Availability Manager e ferramentas para MySQL - Google ProjectHosting Experimente MySQL-MHA - DRY (Diário de um Engenheiro Trabalhando no Japão e nos Estados Unidos) Tentei usar MySQL-MHA para conseguir failover automático do MySQL - FAT47 Infraestrutura Subjacente Minutos Tentei adicionar mysql-mha! Parte 2MHA, Murakumo & MeMHA (MasterHigh Availability Manager) Configurações de Implantação | Verificação de Operação e Verificação de Mudança do DEVLABMHA | DEVLAB
・MySQLFAILOVER
mysqlfailover --exec-antes e --exec-depois - diário do hiroi10 Eu tentei mysqlfailover depois de me tornar um daemon | DEVLAB
Outros HA
Plano de recuperação no caso de falha de mestre ou escravo no MySQL que seja replicada - (h) Memorando Sobre a configuração ha do MySQL
・ALTER TABELA
Caminho do Computador de Han: Vamos dominar bem a ALTER TABLE. Falando sobre travar colunas e índices ao adicionar e deletar colunas e índices no MySQL - (゚∀゚)o blog de sasata299Veja o progresso das instruções ALTER TABLE no MySQL - Notas do Diário do SH2 ao criar um ÍNDICE no ALTER TABLE no MySQL | DEVLAB
・Backup
Notas sobre backup de ambientes com misto de MySQL e MyISAM | mysqldump em um ambiente usando o gtid do DEVLAB - diário do hiroi10
Se você importar para uma versão do MySQL anterior à 5.6, ou se quiser despejar usando mysqldump na 5.6 a partir de um servidor remoto 5.5, você deve adicionar --set-gtid-purged=OFF ao mysqldump
Se o GTID for válido, você receberá um erro se não adicionar --triggers --rotinas --eventos ao mysqldump
mysqldump --- opção order-by-primary - Operação de backup MySQL do Diário SH2
・Havia uma diferença
Absorva diferenciais mestre e escravo em mysql com pt-table-sync - Qiita
Ajuste de parâmetros
5.6 Artigos contendo similares
Revisão de Parâmetros MySQL 5.6 - Diário SH2 Memorando Diário: Novos Padrões Implícitos no MySQL 5.6 Ajuste de Desempenho InnoDB e Novos Recursos - ORACLESessão de Revisão de Parâmetros MySQL 5.6 (slide) Yakst - (Versar) Fundamentos de Otimização de Desempenho do InnoDB Erros de opções desconhecidas do MySQL podem ser evitados prefixando opções frouxas - Kamipowaru
[[D14] Ajuste de Performance para a Era MySQL 5.6 *Showcase de tecnologia db 2013 Tóquio] (http://www.slideshare.net/yoyamasaki/20131110-tuning-onmysql56)
MySQL 5.1→5.6 my.cnf diff - (h) nota
Fora isso
Ajuste MySQL (Detectando Gargalos): Descubra! - Blog do Engenheiro Drecom Ajuste MySQL DSAS Sala do Desenvolvedor: Ajustando a Memória MySQL em 5 minutos! Notas de Estudo MySQL (Item de Configuração do Servidor) | Kinurogu
Relacionado a Numa
【Note】Ocorrência de Troca em MySQL e Arquitetura NUMA - FAT47 Minutos Subjacentes da Infraestrutura MySQL Otimização do Motor de Armazenamento InnoDB (Parte 2) (goo News ×EnterpriseZine) - goo News Arquitetura MySQL e NUMA e Swap Insanity | Blog dos Engenheiros COLOPL Dias de Revolução! Como Usar o Numactl
Referência Innotop
Memorando diário: innotop é muito útil para exibir o status do MySQL em um estilo top com o innotop (em grupos!) - MySQL do Diário da Mikeda - dicas do innotop - Qiitainnotop - Um clone poderoso "top" para MySQL - Google Project Hosting
・5.6 Informações
Parte 2 MySQL 5.6 - Recursos Adicionais e NoSQL | Melhorias no Think IT MySQL 5.6 (Parte 1) - Desempenho e Usabilidade Muito Melhorados | Pense em ITMySQL 5.6 Novos Recursos Explanation@dbtechshowcase2012Confira os novos recursos do MySQL 5.6! | Blog do Engenheiro dos Arquitetos Aliados O que fazer se uma declaração SQL que não era um problema na versão anterior do MySQL 5.6 se tornar um erro - Oranie Diary Tente usar o plugin InnoDB memcached no MySQL 5.6 - Sake Diary Hatena Branch MySQL 5.6 Resumo de Informações Relacionadas
・Memórias de problemas
Memórias dos problemas com o mysql HA - blog do smallpalace
Não quero lembrar muito sobre a fonte azul.
・RDS
Comparação da operação MySQL da DeNA e do Amazon RDS vista na NHN Technology Conference. « DebianCDNEC2 - Migrando RDS do MySQL em Ambientes On-premise - Alterando Parâmetros MySQL no Amazon RDS - OpenGrooveMudando o Fuso Horário no Amazon RDS (MySQL) | Developers.IOUsando Replicação para Exportar Dados Amazon RDS MySQL 5.6 - Serviço de Banco de Dados Relacional da AmazonCDP: Padrão de Leitura de Réplica - AWS-CloudDesignPattern
O que eu gosto no RDS é que a recuperação em um momento específico pode ser feita no navegador.
O que eu não gosto é que o tempo de interrupção de F/O não é bom, e o escravo pode ficar do lado de fora a partir do 5.6.13.
・Receita do Chef (Acabei de ver, não experimentei)
Receitas de mestre/escravo do Chef MySQL
・Livros de referência
"MySQL 3ª Edição de Alto Desempenho Prático"
[MySQL[Operações+Administração] Guia de Solução de Problemas para Especialistas] (http://www.amazon.co.jp/exec/obidos/ASIN/4774142948)
"MySQL para uso em campo" "Dicionário MySQL (Referência para desktop)"
Vou deixar por aqui por enquanto.
Se eu pensar em algo, talvez acrescente. Por favor, me avise se tiver alguma recomendação para isso.
Muito obrigado por ler.