aglomerado Disponibilidade MySQL alta de MHA
Vantagens sobre o MMM: salvar recursos, como MMM ainda precisa ser um servidor principal, o servidor pode diretamente do servidor primário para o backup
Instalação de Configuração MHA ambiente de alta disponibilidade (ambiente mostrado abaixo)
Só precisa de um servidor para gerenciar, quando o servidor primário falhar vip Mestre mudou automaticamente para o IP virtual do servidor, a partir do servidor se o topo servidor primário
MHA funciona de : 1. Salve o log de eventos binário (eventos log binário) para baixo a partir do colapso do mestre
2. Identificar as últimas atualizações contêm escravo
3. Aplicação relé log diferença (relay log) para outro escravo
4. Aplicar para salvar o evento do registro de mestre binário (eventos log binário)
5. elevar um escravo como o novo mestre
6. Faça a outra escravo conectado à nova replicação mestre
pacote de instalação vem com ferramentas
Gerente Kit inclui as seguintes ferramentas:
masterha_check_ssh : exame de saúde configuração SSH de MHA
masterha_check_repl : Verifique o status da replicação do MySQL
masterha_manger : Iniciar MHA
masterha_check_status : MHA detectar o estado de funcionamento actual
masterha_master_monitor : detectar se o mestre é baixo
masterha_master_switch : controlo failover (automática ou manual)
masterha_conf_host : Adicionar ou remover as informações de configuração do servidor
Nó Kit (Estas ferramentas são geralmente desencadeada por scripts MHA Manager sem operação manual) inclui as seguintes ferramentas:
save_binary_logs : Saving e log binário cópia mestre
apply_diff_relay_logs : Evento log relé reconhecimento caso da diferença ea diferença é aplicada para o outro escravo
filter_mysqlbinlog : remover evento ROLLBACK desnecessário (MHA não usar essa ferramenta)
purge_relay_logs : relay log Clear (não bloqueia thread SQL)
configuração de compilação MHA
1. Baixe e instale o banco de dados de três servidores
yum -y install mysql mysql-server mysql-devel
2. Modifique o arquivo de configuração /etc/my.cnf
vim /etc/my.cnf
Nota : 3 servidores server-id Este parâmetro não pode ser o mesmo que o outro, lembre-se que você configurar o serviço para reiniciar
3. Criar um utilizador do banco de dados de login, respectivamente, são o servidor de autorização principal, para os dados de sincronização a partir do servidor para alcançar replicação mestre-escravo
mysqladmin -u raiz -h localhost -p'123456'
mysql -uroot -p123456
master:
Consulta binários e variáveis localização: mysql> SHOW MASTER STATUS;
Licenciamento do Servidor principal: MySQL> Grant * a * All ON 'test'@'192.168.0.%' identificado por '123456' ;.
Dois do servidor: MySQL> Change Master para MASTER_HOST = '192.168.0.101', MASTER_USER = 'Test', master_password = '123456', MASTER_LOG_FILE = 'MySQL-bin.000018', MASTER_LOG_POS = 107;
mysql> começar escravo;
Na autorização fim MHA dispostas atrás da detecção dois principais do teste a partir do servidor
mysql> GRANT ALL ON * * a 'test'@'192.168.0.%' identificado por '123456'.;
Ver condição de escravo, e testar, em seguida, se o sucesso replicação mestre-escravo
4. Defina a comunicação sem chave de encriptação
Em quatro servidores você tem que fazer três outros servidores sem comunicação chave criptográfica, de modo que cada host não pode se conectar remotamente a cada outras chaves criptográficas
MHA-manger Abaixo está um exemplo do host 192.168.0.110
keygen -t rsa-SSH (Continue pressionando Enter)
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
Cada vez que digitar a senha raiz da máquina, três outros semelhantes
Suplementares : as seguintes soluções de erro
ssh -o StrictHostKeyChecking = nenhuma 192.168.0.101
Após este problema ou pretende modificar o arquivo de configuração / etc não aparecer / ssh / ssh_config
Finalmente, adicione
não StrictHostKeyChecking
UserKnownHostsFile / dev / null
5. Instalação nó conjunto
MHA dependem do ambiente são instalados em todos os servidores, é o módulo perl (primeira necessidade de instalar EPEL fonte)
Epel baixar fonte e instalar
wget http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm ivh EPEL-libertação-6-8.noarch.rpm
Instalação do módulo dependências perl
yum install -y perl-DBD-MySQL perl-Config-minúsculo perl-Log-Dispatch perl-Parallel-ForkManager perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN
Todos (quatro) componente de servidor está instalado nó
Nota : componentes do nó dependentes gerente, CentOS7.3 deve escolher a versão 0.57
compilação de descompressão e instale o conjunto do nó
tar zxvf mha4mysql-nó 0.56.tar.gz " cd mha4mysql-node-0,56 " perl Makefile.PL " make && make install
6. O conjunto é montado sobre um hospedeiro manjedoura MHA-manjedoura
Sobre os componentes do gerenciador de instalação do compilador de host manjedoura
tar zxvf mha4mysql-manger 0.56.tar.gz " cd mha4mysql-manger-0,56 " perl Makefile.PL " make && make install
Configurando o anfitrião 7.MHA-manger MHA
Cópia do pacote extrato relevante dentro do script para / usr / local / bin diretório
cp -ra amostras / scripts / usr / local / bin /
Quando você copia os acima de comutação automática scripts de gerenciamento VIP para / usr / / bin local de diretório, onde Scripting VIP, e recomendou uma forma que o ambiente de produção não é recomendado keepalived, e, em seguida, fazer alterações
cp / usr / local / bin / scripts / master_ip_failover / usr / local / bin
vim / usr / local / bin / master_ip_failover
添加以下部分
my $ vip = '192.168.100.200/24';
my $ key = "1";
my $ ssh_start_vip = "/ sbin / ifconfig eth1: $ key $ vip";
my $ ssh_stop_vip = "/ sbin / ifconfig eth1: $ pressionada a tecla";
my $ exit_code = 0;
Criar diretórios, copie o arquivo de configuração de um modelo usando um modificado descompactar o saco
Mkdir / etc / masterha
amostras cp / conf / app1.cnf / etc / / masterha
vim /etc/masterha/app1.cnf
8. A utilização da ferramenta de configuração de detecção de estado ligado
Teste nenhuma senha SSH, se o normal, como mostrado abaixo
masterha_check_ssh -conf = / etc / masterha / app1.cnf
Teste mysql ligação mestre-escravo: masterha_check_repl -conf = / etc / masterha / app1.cnf
A figura abaixo mostra o sucesso
Suplementar : erro pode ocorrer Solution
★ SSH teste sem erro de senha
Verifique se cada máquina deu a chave para enviar a três outro host
★ teste determinado a partir da conexão MySQ mestre
Se todas as permissões não são dadas a atenção para três banco de dados mysql deve ser dada autorização para operar esses bancos de dados, operando permissões não são dados o suficiente, o que pouca autoridade
Preste atenção para verificar se o seu arquivo de configuração /etc/masterha/app1.cnf são inconsistentes com a autorização das configurações de usuário e senha
9. Ligue o serviço para ver o sucesso teste de sopro molhado estado
开启MHA服务: nohup masterha_manager --conf = / etc / masterha / app1.cnf --remove_dead_master_conf --ignore_last_failover </ dev / null> /var/log/masterha/app1/manager.log 2> & 1 &
--remove_dead_master_conf: Este parâmetro representa a principal ocorre quando, ip antiga biblioteca principal será removido do arquivo de configuração do switch.
--manger_log: Definir o local de armazenamento de logs
--ignore_last_failover: Por padrão, o tempo de inatividade se o MHA é detectado ocorre de forma contínua, e o tempo de inatividade dois espaçados menos do que 8 horas, seguida de Failover não proceder, a razão para esta limitação é evitar o efeito de pingue-pongue. Este parâmetro é ignorado último arquivo em nome da geração gatilho MHA, por padrão, irá ocorrer após o diretório de registro de comutação MHA, que é ajustado acima do app1.failover.complete arquivo de log, da próxima vez novamente para mudar se o diretório constatada o arquivo não vai permitir a presença de gatilho a menos que receba após a primeira opção para excluir o arquivo, por conveniência, aqui está definido para -ignore_last_failover
Verifique se um estado de sucesso: masterha_check_status --conf = / etc / masterha / app1.cnf
Fechar fora do principal teste para ver se o servidor é movido para o servidor mestre de espera (ver logs de consulta de status)
/var/log/masterha/app1/manager.log gato
Descrição experimento foi um sucesso