Implante Clusters MySQL InnoDB para alta disponibilidade

Implante Clusters MySQL InnoDB para alta disponibilidade

MySQL InnoDB Cluster: Change mysqld.cnf file


Neste artigo, vou explicar como podemos implantar o cluster do MySQL InnoDB. O InnoDB Cluster é um alto
    solução de disponibilidade fornecida pelo MySQL que possui recursos únicos e multimestres e detecção de failover.

O MySQL InnoDB possui três componentes principais:

  1. Replicação de grupo MySQL – É um grupo de servidores de banco de dados. Ele replica os bancos de dados MySQL
            nos vários nós e possui tolerância a falhas. Quando mudanças nos dados ocorrem nos bancos de dados MySQL,
            replica automaticamente para os nós secundários do servidor. O conceito de replicação de grupo do MySQL é
            semelhante ao conceito do grupo de disponibilidade AlwaysOn
  2. Roteador MySQL – Quando ocorre um failover, o aplicativo cliente deve estar ciente do PRIMARY
            topologia de instância e cluster. Essa funcionalidade é gerenciada pelo MySQL Router. Ele roteia que redireciona o
            solicitações de dados para a instância disponível do MySQL Server. O MySQL Router atua como um proxy usado para ocultar o
            vários servidores de banco de dados MySQL. O conceito do roteador MySQL é semelhante ao Rede virtual
                nome
    do cluster de failover do Windows Server
  3. MySQL Shell – É uma ferramenta de configuração que pode ser usada para conectar, implantar e gerenciar o
            Cluster MySQL InnoDB. O MySQL Shell contém uma API Admin que possui um dba global
            variável. o dba A variável é usada para implantar e gerenciar o cluster InnoDB

Para demonstrar o processo de implantação, criei três máquinas virtuais em minha estação de trabalho. Eu instalei
ubuntu 18.04 e MySQL Server 8.0 nas máquinas virtuais. Neste artigo, eu sou
    não vai explicar o processo de instalação do servidor MySQL no Linux. Você pode ler o artigo Como instalar o MySQL no Ubuntu para entender o passo a passo
    etapa do processo de instalação do MySQL Server no Ubuntu 18.04.

A seguir está a configuração das máquinas virtuais.

Nome de anfitrião

Endereço de IP

Versão do sistema operacional e do servidor MySQL

SQLLinux01

192.168.0.107

Ubuntu 18.04, MySQL Server 8.0

SQLLinux02

192.168.0.101

Ubuntu 18.04, MySQL Server 8.0

SQLLinux03

192.168.0.105

Ubuntu 18.04, MySQL Server 8.0

Eu também instalei o seguinte software.

  1. Editor Vi: Esta ferramenta é usada para configurar ou editar o arquivo de configuração. Você pode instalá-lo executando o seguinte comando:

    nisarg @ LinuxSQL01: ~ $ sudo apt-get install vi

  2. Ferramentas de rede: é uma ferramenta de rede que pode ser usada para testar a conectividade entre os nós / servidores. Você pode instalá-lo executando o seguinte comando:

    nisarg @ LinuxSQL01: ~ $ sudo apt-get instala ferramentas de rede

Leia Também  Diversão com a compactação (columnstore) em uma tabela muito grande - parte 1

Dividi todo o processo de implantação do cluster do MySQL InnoDB nas seguintes etapas:

  1. Mapear endereço de domínio com endereço IP

  2. Configure o MySQL Server para permitir conexões remotas

  3. Crie um usuário administrador do MySQL e conceda privilégios

  4. Configure a replicação de grupo usando o MySQL Shell

  5. Crie um cluster do MySQL InnoDB usando o MySQL Shell

  6. Configure o MySQL Router usando o MySQL Shell

  7. Monitore, gerencie e dimensione o cluster do MySQL InnoDB

Mapear endereço de domínio com endereço IP

Para mapear o endereço de domínio com Endereço IP, precisamos editar o anfitriões Arquivo. No Linux, o arquivo está em
/ etc diretório. O caminho completo é / etc / hosts. As entradas no
    O arquivo hosts está no seguinte formato:

Endereços IP DomainName [DomainAliase]

Vou usar o editor vi para editar o arquivo hosts. Para editar o arquivo, pressione o botão Chave ‘eu’ e insira os endereços IP e os nomes de hosts no seguinte formato.

192.168.0.107 LinuxSQL01

192.168.0.101 LinuxSQL02

192.168.0.105 LinuxSQL03

Veja a seguinte imagem:

MySQL InnoDB Cluster: Mapeie o Endereço IP com o nome do host

Depois que o arquivo for atualizado, pressione ‘: wq‘Para salvar as alterações no arquivo hosts.

Depois que os endereços IP forem mapeados, execute o comando ping para testar a conectividade usando o nome do host. Execute o seguinte
    comando:

nisarg @ LinuxSQL01: ~ $ ping LinuxSQL02

Veja a seguinte imagem:

MySQL InnoDB Cluster: Verifique a conectividade

As definições de configuração acima devem ser executadas em LinuxSQL02 e LinuxSQL03.

Configure o MySQL Server para permitir conexões remotas

Quando instalamos o servidor de banco de dados MySQL, ele não permite conexão remota. Para conectar ao controle remoto
    conexões, devemos especificar os endereços IP no arquivo de configuração mysqld.cnf usando um
    editor de texto. O arquivo de configuração está localizado em /etc/mysql/mysql.conf.d/mysqld.cnf. Vocês
    deve especificar a lista de endereços IP no endereço de ligação parâmetro. O formato é
bind-address = ‘Endereço IP do servidor’. Especifique os endereços IP na configuração
    Arquivo. Deve ter a seguinte aparência:

MySQL InnoDB Cluster: Altere o arquivo mysqld.cnf

  • Nota: Se você deseja permitir todas as conexões de entrada, o valor do
    endereço de ligação parâmetro deve ser 0.0.0.0

Depois que as alterações forem aplicadas, salve o arquivo de configuração pressionando ‘: wq

As definições de configuração acima devem ser executadas em LinuxSQL02 e LinuxSQL03.

Crie um usuário administrador do MySQL e conceda privilégios

Agora, vamos criar um usuário MySQL e conceder permissão apropriada a ele. Para criar um usuário, primeiro, conecte-se ao MySQL
    usando o seguinte comando:

root @ LinuxSQL01: ~ # mysql

Uma vez conectado, execute o seguinte comando para criar um usuário.

Mysql> criar usuário ‘nisarg’ identificado por ‘N ***** @ ****’;

Depois que o usuário for criado, execute o seguinte comando para conceder a permissão apropriada.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

CONCEDE TODOS OS PRIVILEGIOS EM *. * Para ‘nisarg’

Se você não estiver usando o usuário raiz para configurar a replicação de grupo, deverá conceder o seguinte conjunto de
    permissões nos bancos de dados de metadados para o usuário.

Banco de dados de metadados

Lista de permissões a serem atribuídas.

Todos os bancos de dados

CRIAR USUÁRIO, ARQUIVO, PROCESSO, RELOAD, CLIENTE DE REPLICAÇÃO, ESCRAVO DE REPLICAÇÃO, SELECT, SHUTDOWN, SUPER

Todos os bancos de dados que começam com mysql

EXCLUIR, INSERIR, ATUALIZAR

Todos os bancos de dados que começam com mysql_innodb_cluster_metadata

ALTER, ALTER ROTINA, CRIAR, CRIAR ROTINA, CRIAR TABELAS TEMPORÁRIAS, CRIAR VISTA, EXCLUIR, GOTA, EVENTO,
                EXECUTAR, ÍNDICE, INSERIR, TABELAS DE BLOQUEIO, REFERÊNCIAS, EXIBIR VISUALIZAÇÃO, DISPARADOR, ATUALIZAÇÃO

Todos os bancos de dados que começam com mysql_innodb_cluster_metadata_bkp

ALTER, ALTER ROTINA, CRIAR, CRIAR ROTINA, CRIAR TABELAS TEMPORÁRIAS, CRIAR VISTA, EXCLUIR, GOTA, EVENTO,
                EXECUTAR, ÍNDICE, INSERIR, TABELAS DE BLOQUEIO, REFERÊNCIAS, EXIBIR VISUALIZAÇÃO, DISPARADOR, ATUALIZAÇÃO

Todos os bancos de dados que começam com mysql_innodb_cluster_metadata_previous

ALTER, ALTER ROTINA, CRIAR, CRIAR ROTINA, CRIAR TABELAS TEMPORÁRIAS, CRIAR VISTA, EXCLUIR, GOTA, EVENTO,
                EXECUTAR, ÍNDICE, INSERIR, TABELAS DE BLOQUEIO, REFERÊNCIAS, EXIBIR VISUALIZAÇÃO, DISPARADOR, ATUALIZAÇÃO

Execute o seguinte comando para conceder permissão ao usuário.

CONCEDER CRIAR USUÁRIO, ARQUIVO, PROCESSO, RELOAD, CLIENTE DE REPLICAÇÃO, ESCRAVO DE REPLICAÇÃO, SELECIONAR, DESLIGAMENTO, SUPER LIGADO *. * PARA ‘nisarg’ @ ‘%’ COM OPÇÃO DE CONCESSÃO;
SUBSTITUIR, INSERIR, ATUALIZAR NO mysql. * PARA ‘nisarg’ @ ‘%’ COM OPÇÃO DE SUBSTITUIÇÃO;

SUBSTITUIR ALTER, ALTER ROTINA, CRIAR, CRIAR ROTINA, CRIAR TABELAS TEMPORÁRIAS, CRIAR VISUALIZAÇÃO, EXCLUIR, GOTA, EVENTO, EXECUTAR, ÍNDICE, INSERIR, TABELAS DE BLOQUEIO, REFERÊNCIAS, MOSTRAR VISUALIZAR, TRIGGER, ATUALIZAR NO mysql_innodb_cluster * nadat ”. ‘%’ COM OPÇÃO DE CONCESSÃO;

SUBSTITUIR ALTER, ALTER ROTINA, CRIAR, CRIAR ROTINA, CRIAR TABELAS TEMPORÁRIAS, CRIAR VISUALIZAÇÃO, EXCLUIR, GOTA, EVENTO, EXECUTE, ÍNDICE, INSERIR, TABELAS DE BLOQUEIO, REFERÊNCIAS, MOSTRAR VISUALIZAÇÃO, TRIGGER, ATUALIZAR NO mysql_innodb_cluster_metad ‘ ‘%’ COM OPÇÃO DE CONCESSÃO;

GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TABELES TEMPORÁRIOS, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLE, REFERENCES, SHOW VIEW, TRIGGER, UPDATE NO mysql_innodb_cluster ‘ ‘%’ COM OPÇÃO DE CONCESSÃO;

Configurar a replicação de grupo

Para configurar a replicação de grupo, vamos usar o MySQL Shell. Vamos configurar a replicação de grupo usando
    o usuário root.

nisarg @ LinuxSQL01: ~ # Sudo -s

[sudo] senha para nisarg:

Forneça a senha correta do usuário nisarg e aperte enter.

Quando estivermos conectados ao usuário root, nos conectaremos ao shell do MySQL. Para fazer isso, execute o seguinte
    comando no terminal

root @ LinuxSQL01: ~ # mysqlsh LinuxSQL01 -u nisarg

Veja a seguinte imagem:

MySQL InnoDB Cluster: conecte-se ao MySQL Shell

Realizamos uma nova instalação do MySQL Server; portanto, devemos alterar algumas configurações. A configuração
    mudanças são executadas usando dba.ConfigureLocalInstance () comando. Este comando é usado
    para configurar a administração do cluster do InnoDB. Este comando pode ser usado local e remotamente.

A sintaxe do comando é dba.configurelocalinstance (nome de usuário @ MySQLServer: Portnumber);

Execute o seguinte comando no MySQL Shell para configurar a replicação de grupo:

JS do MySQL> dba.configureLocalInstance (“nisarg @ LinuxSQL01: 3306”);

O comando mostra a lista de parâmetros de configuração que precisam ser corrigidos. Veja a seguinte imagem:

MySQL InnoDB Cluster: Configurar replicação de grupo

Quando você executa o comando, ele solicita a confirmação das alterações no mysqld.cnf

arquivo de configuração. O local padrão do arquivo é
/etc/mysql/mysql.conf.d/mysqld.cnf. Depois de revisar e confirmar as alterações, ele atualiza
    a mysqld.cnf Arquivo.

As etapas acima devem ser executadas em LinuxSQL02 e LinuxSQL03.

No meu próximo artigo, pretendo explicar o seguinte:

  1. Crie um cluster do MySQL InnoDB usando o MySQL Shell

  2. Configure o MySQL Router usando o MySQL Shell e teste o failover

  3. Como monitorar, gerenciar e dimensionar o cluster do MySQL InnoDB

Sumário

Neste artigo, abordamos como podemos:

  1. Mapear endereço de domínio com endereço IP

  2. Configure o MySQL Server para permitir conexões remotas

  3. Crie um usuário administrador do MySQL e conceda privilégios

  4. Configure a replicação de grupo usando o MySQL Shell

Nisarg Upadhyay
Últimas mensagens de Nisarg Upadhyay (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br