MaxScale: MySQL separado ler e escrever e implementar balanceamento de carga ferramenta de middleware

1,

configurou o MySQL Depois de copiar a partir da estrutura primária, esperamos alcançar separado ler e escrever, a operação de leitura a partir do servidor para a dispersão, e uma pluralidade de balanceamento de carga pode ser alcançado a partir do servidor.

balanceamento de carga e de leitura e escrita em separado MySQL Cluster é a base da demanda, MaxScale estará nos ajudando a implementar facilmente esses recursos.

2, MaxScale constituem a base da

MaxScale é uma empresa irmã desenvolvimento MariaDB MySQL, já desenvolveu muito maduro. MaxScale é um plug-in arquitetura, permitindo que os usuários para desenvolver seus próprios plug-ins.

Plug-in funções actualmente prestados MaxScale divididos em cinco categorias:

  • plugin de autenticação

    Fornecer autenticação de login, MaxScale lê e informações de cache na tabela de usuário de banco de dados, quando uma conexão chega, começando com informações de cache para verificação, se não for esse usuário será atualizado informações do banco de dados back-end, mais uma vez verificação

  • ficha de protocolo

    protocolo de ligação de cliente compreende um protocolo, e a ligação para a base de dados

  • roteamento plugue

    Decidir como encaminhar as solicitações do cliente para o servidor de banco de dados back-end, ler e separação de gravação e funcionalidade de balanceamento de carga é a realização deste módulo

  • monitoramento plug

    Monitorar os vários servidores de banco de dados, por exemplo, encontrar uma resposta do servidor de banco de dados é lenta, então nenhum pedido para encaminhar o

  • plug-ins log e filtros

    recursos de firewall fornecer banco de dados simples pode ser filtrada e SQL tolerante a falhas

3,

3 por exemplo, um servidor de base de dados, um mestre das duas estruturas.

Visão geral do processo

(1) configurado ambiente agrupar

(2) para baixar e instalar MaxScale

(3) disposta MaxScale, cada base de dados de informação adicionada

(4) começar MaxScale, verifique se a conexão com o banco

(5) O conector cliente MaxScale, teste

O processo detalhado

(1) uma configuração do ambiente de agrupamento principal de dois

Preparação 3 servidor, instalar MySQL, uma estrutura replicado dispostas dos dois mestre.

(2) MaxScale Instalação

De preferência em outra instalação do servidor, se os recursos são insuficientes, e uma MySQL podem ser colocados juntos.

Baixe o MaxScale: https: //downloads.mariadb.com/files/MaxScale

De acordo com seu servidor seleciona um pacote de instalação adequada.

No Exemplo 7 centos passos são como se segue:

yum install libaio.x86_64 libaio-devel.x86_64 Novacom-server.x86_64 libedit -yrpm -ivh maxscale-1.4.3-1.centos.7.x86_64.rpm

(3) Configuração MaxScale

Antes de iniciar a configuração, você precisa criar dois MaxScale usuário no mestre, um módulo de monitoramento e encaminhamento módulo.

Criação de monitoramento de usuários

mysql >  criar scalemon user @ '%' identificado por "111111"; mysql >  conceder slave de replicação, cliente de replicação em * * a scalemon @ '%' .;

Os usuários criam uma rota

mysql >  criar maxscale user @ '%' identificado por "111111"; mysql >  . Grant selecionar on * mysql para maxscale @ '%';

Depois que o usuário é criado, iniciar a configuração

vi /etc/maxscale.cnf

encontrar     Parte, modificar o endereço e do Porto, o IP eo ponto mestre porta.

copie 2  Todo o conteúdo de crianças em vez  e , Modificar o mesmo endereço e porta, e apontam para slave1 slave2:

encontrar  Parte, servidores modificação como server1, server2, server3, Modificar usuário e informações passwd para monitorar o usuário criado anteriormente (scalemon, 111111).

encontrar    Parte, servidores modificação como server1, server2, server3, modificar de usuário e informações de roteamento para o usuário passwd criado anteriormente (maxscale, 111111).

Porque nós usamos , Você precisa apagar outro serviço , Você pode excluir todo o conteúdo de crianças.

Configuração estiver concluída, salve e saia do editor.

(4) Iniciar MaxScale

execução do comando Iniciar

maxscale -config = / etc / maxscale.cnf

Verifique se a porta pronto MaxScale resposta

-ntelp netstat

  • 4006 representa a porta de utilizar quando se liga MaxScale

  • 6603 é o gestor porta MaxScale

Entrada MaxScale Manager, verificar o banco de dados do estado da ligação, o nome de usuário e senha padrão é admin / MariaDB.

maxadmin -user = admin -password = MariaDB

MaxScale >  servidores de lista

Você pode ver, MaxScale já ligado ao mestre e escravo.

(5) Teste

Criar um usuário de teste no master

mysql >  . PRIVILÉGIOS GRANT ALL ON * * para rtest @ "%" Identificado por "111111";

cliente mysql para conectar usando MaxScale

mysql -h MaxScale onde IP -P 4006 -u rtest -p111111

Verifique o funcionamento do servidor de banco de dados para executar o nome do banco de dados atual para saber a localização real:

Depois de abrir a transação, ele é automaticamente encaminhado para o mestre, operações de consulta comuns, é no escravo

configuração MaxScale está completa.

4,

Como já foi descrito MaxScale MySQL pode conseguir ler e escrever e ler o balanceamento de carga separada, em seguida, quando o escravo falhar, MaxScale será a forma de lidar com isso?

3, por exemplo, um servidor de banco de dados, um mestre das duas estruturas, os nomes de banco de dados são mestre, slave1, slave2.

Agora vamos testar as duas seguintes condições:

(1) Quando uma falha do servidor (slave1 ou slave2), para ver como lidar com MaxScale, e novamente sobre a situação após a linha servidor falhou

(2) Quando os dois falharam a partir do servidor (slave1 e slave2), consulte MaxScale como lidar com, e o servidor que falhou novamente on-line após

pronto

Para mais visão em profundidade de Estado MaxScale, você precisa se logar MaxScale aberta:

Modificar o arquivo de configuração

vi /etc/maxscale.cnf

 encontrar  Secção aqui para definir globalmente o log ali adicionado.

configuração

LOG_INFO = 1logdir = / tmp /

Ao abrir LOG_INFO nível, você pode ver MaxScale encaminhamento logs.

Após modificar a configuração, reiniciar MaxScale.

experiência

1, Caso de uma única falha do escravo

 O estado inicial é normal.

Slave2 parou cópia da execução de login mysql slave2.

mysql >  parar de escravo;

Ver MaxScale status do servidor

slave2 expirou.

Exibir informações de log

/tmp/maxscale1.log gato

Cauda Show:

2016/08/1512:26:02 aviso: Servidor mudou estado: slave2 : lost_slave

slave2 ponta foi perdida.

Veja os resultados da consulta cliente:

Para consultar toda a slave1.

Pode ser visto, após o escravo tem uma falha, excluem automaticamente MaxScale, nenhum pedido de transmitir.

Aqui, novamente olhar slave2 O caso da linha.

execução de MySQL Entrada slave2

mysql >  iniciar escravo;

Ver MaxScale status do servidor

slave2 expirou.

Exibir informações de log

/tmp/maxscale1.log gato

Cauda Show:

2016/08/1512:26:02 aviso: Servidor mudou estado: slave2 : lost_slave

slave2 ponta foi perdida.

Veja os resultados da consulta cliente:

Para consultar toda a slave1.

Pode ser visto, após o escravo tem uma falha, excluem automaticamente MaxScale, nenhum pedido de transmitir.

Aqui, novamente olhar slave2 O caso da linha.

execução de MySQL Entrada slave2

mysql >  iniciar escravo;

Ver MaxScale status do servidor

Voltou ao estado normal, para voltar a identificar o slave2.

Visualizando informações de log é exibida:

2016/08/1512:32:36 aviso: Servidor mudou estado: slave2 : new_slave

Veja os resultados da consulta cliente:

slave2 eles podem aceitar corretamente as consultas.

Experimentos pode ser visto através, quando a parte escravo falhar, MaxScale automaticamente identificado, e lista de encaminhamento removível, quando a recuperação de volta online, MaxScale podem ser adicionados automaticamente para o processo de encaminhamento transparente.

2, Quando tudo falha escravo

foram desembarcados slave1  e  slave2 O MySQL, um comando de parada para copiar

mysql >  parar de escravo;

Ver MaxScale status do servidor

Descubra o papel cada servidor não irá reconhecer fora.

Ver Log:

Veja a partir do log, MaxScale encontrou dois escravos e mestre são perdidos, então um erro: nenhum mestre de.

Ligações cliente também MaxScale falhou.

Descrição do servidor todos os fracassos, levará mestre não pode identificar, de modo que toda a serviços de banco de dados são ineficazes.

No caso de todas as falhas escravo, ele também pode ser usado para fazer mestre? Isto, pelo menos, fornecer serviços de banco de dados ao normal.

Esta necessidade de modificar a configuração MaxScale, disse MaxScale precisamos de um mestre estável.

processo

Primeiro restaurar os dois escravos, de modo que a parte de trás do cluster ao normal, aterrissando dois escravo do MySQL.

mysql >  iniciar escravo;

MaxScale modificar o arquivo de configuração, adicione uma nova configuração.

vi /etc/maxscale.cnf

encontrar  Seção, acrescentar:

detect_stale_master = true

Salvar e sair, em seguida, reiniciar MaxScale.

verificação

Parou dois escravo, o status do servidor vista MaxScale.

Pode ser visto, embora o escravo não pode ser identificado, mas o mestre é ainda, e prompts em um estado estacionário

Os pedidos de execução de cliente:

cliente MaxScale pode se conectar, e os pedidos transferida no mestre, quando o escravo descrito all-off fracasso, o mestre, todo o pedido de suporte.

Quando a recuperação de dois Slave, estado geral do retorno automático ao normal, quando o pedido de execução do cliente, você pode ir para o escravo.

resumo

Teste constatou que, na falha porção escravo inferior, o cliente é completamente transparente, quando tudo culpa escravo, depois de uma configuração simples, o processamento pode ser bem MaxScale.

lineup imortal! O ator britânico lineup inteiro para participar de um tema de guerra do filme "1917", será outro "Dunkirk" ele?
Anterior
Autopilot pernas difícil caminhar, necessidades de colaboração total de veículos rodoviários
Próximo