Alura > Cursos de Inteligência Artificial > Cursos de IA para Dados > Conteúdos de IA para Dados > Primeiras aulas do curso MySQL com IA: alta disponibilidade do ambiente

MySQL com IA: alta disponibilidade do ambiente

Criando backup no MySQL - Apresentação

Olá! Meu nome é Victorino Vila e é um prazer ter você aqui conosco para mais um curso da formação MySQL com Inteligência Artificial.

Audiodescrição: Vitorino é um homem branco, de cabelos e barba grisalha. Usa uma camiseta preta e à sua frente há um microfone de mesa. Ao fundo, uma parede lisa com iluminação degradê suave do azul-claro ao azul-escuro.

Hoje, vamos iniciar o último curso dessa formação que, ao longo de todos os outros cursos, combinou MySQL com inteligência artificial para otimizar a gestão de dados.

Para encerrar com chave de ouro, vamos tratar de um tema muito importante, não somente para o nosso estudo de caso, mas para qualquer banco de dados: a alta disponibilidade.

Nos cursos anteriores, finalizamos a implementação do banco de dados da escola BitByte. Ao longo da formação, construímos o banco do zero, realizamos a importação dos dados legados, estruturamos os processos operacionais, criamos relatórios gerenciais e implementamos camadas de segurança. Agora, chegou o momento de garantir que os dados estejam sempre disponíveis, minimizando o risco de perda e falhas operacionais.

O que aprenderemos

Sendo assim, abordaremos dois temas muito importantes nesse curso: backups e replicação. Vamos explorar os backups completos e incrementais e aprender como realizar a recuperação a partir desses backups que geraremos durante o curso.

Discutiremos políticas eficientes de backup, combinando estratégias de backups completos e diferenciais. Em seguida, aprenderemos a recuperar os dados dos backups obtidos através dessas políticas.

Na segunda parte do curso, abordaremos o tema replicação. Vamos criar, na mesma máquina em que estamos trabalhando, uma segunda instância de MySQL para simular a replicação entre dois servidores. Implementaremos a replicação do banco de dados da escola BitByte e, por fim, aprenderemos a monitorar essa replicação, criando um programa que automatizará a verificação dos parâmetros da replicação, alertando-nos em caso de problemas.

Neste curso, não trabalharemos apenas com MySQL, também usaremos a IA, afinal, isso acelera o desenvolvimento e a implementação do banco de dados. Nesse caso, usaremos a a IA Gemini, do Google.

Um profissional que alia o poder da IA com seu conhecimento em MySQL, além de utilizar tecnologias complementares como Python para automatizações, terá um diferencial enorme no mercado.

Estamos muito animados para começar este curso e temos certeza de que ele será um grande diferencial na sua trajetória profissional. Seja bem-vindo ao curso MySQL com IA: alta disponibilidade do ambiente.

Um abraço, até o próximo vídeo!

Criando backup no MySQL - Realizando backup completo no MySQL

Vamos começar o curso de MySQL com IA. Agora, vamos falar sobre a alta disponibilidade do banco de dados. Estamos implementando o banco de dados no MySQL da escola BitByte. Fomos contratados para implementar este projeto, mas como não temos muita experiência no assunto, estamos utilizando a IA da Gemini para nos auxiliar.

No decorrer da formação, já projetamos e criamos o banco, carregamos o histórico, implementamos os processos de atualização do banco, criamos relatórios e programamos a segurança. Agora, chegou a hora de garantir a alta disponibilidade do banco.

O banco não pode deixar de funcionar, e se houver um problema e o banco ficar indisponível, precisamos ter como recuperar o ambiente o mais rápido possível. Quando falamos de salvar o banco de dados e recuperá-lo, não podemos deixar de mencionar o backup, especialmente quando falamos de alta disponibilidade.

Backup significa fazer uma cópia da base para recuperá-la mais à frente. Precisamos proteger o banco de dados contra falhas ou perdas.

Criando um backup completo do banco de dados

Queremos saber como podemos criar um backup total do banco de dados de forma eficiente, garantindo que todas as informações estejam salvas e prontas para serem restauradas em caso de necessidade. Sendo assim, começaremos perguntando para a IA. Usaremos o seguinte prompt:

Preciso criar um backup completo do banco de dados escolabb no MySQL, incluindo todas as tabelas, dados, procedures e funções. Quero realizar esse backup usando a linha de comando no sistema operacional Windows. Por favor, forneça os comandos necessários, especificando o formato do arquivo gerado e o caminho correto para executá-lo no Windows. Inclua orientações sobre como ajustar o comando caso eu precise alterar o local de destino do backup.

Copiamos o prompt, depois, abrimos o Gemini no navegador, colamos e enviamos. Assim, temos a seguinte resposta.

Criando um Backup completo do banco de dados escolabb no MySQL via linha de comando no Windows

Entendendo o Comando mysqldump

O comando mysqldump é a ferramenta padrão do MySQL para gerar backups de bancos de dados. Ele cria um arquivo SQL que contém todas as instruções necessárias para reconstruir o banco de dados.

Comando Básico para Criar um Backup Completo

mysqldump -u seu_usuario -p escolabb > C:\caminho\para\o\backup\escolabb_backup.sql

Explicação:

Incluindo Procedures e Funções

Para incluir procedures e funções no backup, utilize a opção --routines:

Incluindo Procedures e Funções

Para incluir procedures e funções no backup, utilize a opção --routines:

mysqldump -u seu_usuario -p --routines escolabb > C:\caminho\para\o\backup\escolabb_backup.sql

Formato do Arquivo Gerado

O arquivo gerado será um arquivo SQL padrão. Ele conterá todas as instruções CREATE TABLE, INSERT INTO, CREATE PROCEDURE, CREATE FUNCTION, etc., necessárias para reconstruir o banco de dados.

Executando o Backup no Windows

  1. Abra o prompt de comando: Pressione a tecla do Windows + R, digite cmd e pressione Enter.

  2. Navegue até o diretório onde está o MySQL: Por exemplo, se o MySQL está instalado emC:\Program Files\MySQL\MySQL Server 8.0\bin, digite:

    cd C:\Program Files\MySQL\MySQL Server 8.0\bin
    
  3. Execute o comando de backup: Cole o comando completo e pressione Enter.

//Resposta omitida

Para incluir as procedures e funções no backup, utilizamos a opção --routines. O formato do arquivo gerado será um SQL padrão com as instruções para serem executadas. Para executar esse backup, abrimos o prompt de comando do Windows. Navegamos até o diretório onde o MySQL está instalado. No nosso caso, está em Program Files, mas pode ser que no diretório onde você instalou o MySQL, esse diretório seja diferente. Colamos o seguinte código:

cd C:\Program Files\MySQL\MySQL Server 8.0\bin

Depois, copiamos o código dara incluir procedures e funções no backup e colamos no terminal e alteramos com as informações corretas. Criamos um diretório no computador. Em outros cursos da formação, utilizamos o diretório "MYSQL_IA". Criamos um subdiretório chamado "BKP", é nele onde vamos salvar.

mysqldump -u seu_usuario -p --routines escolabb > C:\caminho\para\o\backup\escolabb_backup.sql

Ao pressionar "Enter", solicita a senha, a inserimos e pronto. Aparentemente, deu certo sem nenhum erro. Se analisarmos a basta temos o backup completo.

Vamos verificar o conteúdo desse arquivo, para isso o abrimos com o editor de texto. Temos a criação das tabelas, exclusão e criação da tabela alunos, inserção dos alunos, a criação das tabelas, índices e a inclusão dos dados. No final, verificamos se as procedures também estão prontas para serem criadas e sim. Então, já temos o backup completo pronto.

No vídeo seguinte daremos continuidade. Até lá!

Criando backup no MySQL - Entendendo o uso do backup incremental

Existe um tipo de backup chamado backup incremental, ideal para ambientes que geram grandes volumes de dados ou que possuem atualizações frequentes. Essa opção permite salvar apenas as alterações realizadas desde o último backup, otimizando espaço e tempo na execução do backup.

Por exemplo, quando a base de dados da escola BitByte crescer muito, manter apenas backups completos pode ser problemático. Precisamos incluir backups incrementais que salvam o banco de dados até um determinado ponto. Nos cursos de MySQL na escola, aprendemos sobre isso, mas para recordarmos, vamos perguntar para a IA.

Entendendo o Backup Incremental

Usaremos o seguinte prompt:

Quero configurar e executar um backup incremental no MySQL para o banco de dados escolabb usando linha de comando em ambiente Windows.

Preciso que você forneça os comandos necessários para configurar e habilitar os logs binários, que são essenciais para realizar backups incrementais.

Primeiro os comandos para configurar os logs no my.ini.

Além disso, explique como gerenciar os arquivos gerados e como executar um backup incremental passo a passo, garantindo a segurança e integridade dos dados.

É fundamental trabalhar com IA em áreas que dominamos. Isso porque, ao utilizá-la em temas desconhecidos, pode ser mais difícil avaliar a relevância das informações sugeridas, tornando essencial um olhar crítico para filtrar o que realmente faz sentido.

No prompt, mencionamos a habilitação dos logs binários, algo que reconhecemos dos cursos anteriores como essencial para o backup incremental. No entanto, não lembramos exatamente como fazer isso. Por isso, vamos consultar a IA.

Após copiar o prompt e enviar no Gemini, temos a seguinte resposta:

Configurando e Executando Backups Incrementais no MySQL via Linha de Comando no Windows

Entendendo os Logs Binários

Os logs binários são arquivos que registram todas as alterações feitas no banco de dados. Eles são essenciais para realizar backups incrementais, pois permitem restaurar o banco de dados a partir de um ponto específico no tempo e aplicar apenas as alterações subsequentes.

Configurando os Logs Binários no my.ini

  1. Localize o arquivo my.ini: O arquivo my.ini é o arquivo de configuração do MySQL. Ele geralmente está localizado em C:\ProgramData\MySQL\MySQL Server 5.7\my.ini (o caminho pode variar dependendo da sua instalação).

  2. Edite o arquivo: Abra o arquivo my.ini com um editor de texto.

  3. Adicione ou modifique as seguintes linhas:

[mysqld]
log-bin=C:/var/log/mysql/mysql-bin
server-id=1
binlog_format=ROW
  1. Salve o arquivo e reinicie o serviço do MySQL para que as alterações tenham efeito.

//Resposta omitida

No explorador do Windows, temos a opção de mostrar itens ocultos. Deixamos essa opção habilitados, pois o "programData" é oculto. Caso necessário, você deverá habilitar essa opção.

Acessamos a pasta do MySQL Server 8.0 e encontramos o my.ini. Clicamos nele com o botão direito e depois em "Editar com", selecionando o editor de texto Notepad++.

Lembrando que para salvar o diretório precisamos ter o acesso de administrador.

No my.ini, precisamos adicionar o diretório onde os logs binários serão armazenados e atribuir um ID único para o servidor MySQL. Vamos definir o formato dos logs binários como ROW, que registra cada linha afetada por uma declaração de MySQL. Vamos verificar a seção [mysqld] no my.ini para confirmar essas configurações.

[mysqld]
server_id=1
log_bin="C:/ProgramData/MySQL/MySQL Server 8.0/Data/mysql-bin.log"
binlog_format=ROW
log-bin=mysql-bin

Essas configurações são essenciais para habilitar os logs binários, que são a base para a execução de backups incrementais.

Execução do Backup Incremental

Segundo a resposta da IA, para executar um backup incremental devemos usar o comando SHOW MASTER STATUS para verificar o nome do arquivo binário atual e a posição do último evento registrado. Nisso, em um trecho a IA sugere salvarmos o backup através do mysqldump, mas acreditamos que isso deve ser feito com o msqlbinlog.

Sendo assim, vamos tirar essa dúvida com a IA enviando o seguinte prompt:

Para gerar o backup incremental não devo usar também o comando mysqlbinlog?

Sim, o comando mysqlbinlog é fundamental para realizar backups incrementais de forma eficaz no MySQL.

Por que usar o mysqlbinlog?

Como utilizar o mysqlbinlog em um backup incremental:

  1. Realizar um backup completo inicial:

    • Use o mysqldump para criar um backup completo do banco de dados. Esse backup será a base para todos os backups incrementais futuros.
  2. Identificar os logs binários:

    • Use o comando SHOW MASTER STATUS; para obter o nome do arquivo binário atual e a posição do último evento registrado.
  3. Aplicar os logs binários:

    • Use o mysqlbinlog para aplicar as alterações contidas nos logs binários ao backup completo.
mysqlbinlog --start-position=X --stop-position=Y C:\var\log\mysql\mysql-bin.000

//Resposta omitida

Agora, sim, temos uma resposta referente a como salvamos o log binário. Para isso, pegamos a posição inicial e final, assim, damos o nome do arquivo que vamos trabalhar e a conexão.

Podemos executar esse comando pelo Workbench. Então, o abrimos e em um novo script passamos o comando SHOW MASTES STATUS.

SHOW MASTES STATUS
FilePositionBinlog_Do_DBBinlog_Ignore_DBExecuted_Gtid_Set
mysql-bin.000043157---

Esse comando mostra o nome do arquivo binário atualmente configurado e a posição. Usaremos essa posição nos parâmetros start position e stop position. Se ignorarmos esse parâmetro, estaremos salvando tudo até a posição especificada.

Para testar, vamos adicionar um novo aluno e uma matrícula e salvar o backup binário. Nisso, o backup deve conter todas as modificações desde o último backup completo até o momento do backup incremental. Depois, incluiremos outro aluno, salvaremos outro backup incremental e repetiremos o processo algumas vezes, criando backups incrementais com pequenas diferenças entre eles.

Esse exemplo será feito no próximo vídeo. Até lá!

Sobre o curso MySQL com IA: alta disponibilidade do ambiente

O curso MySQL com IA: alta disponibilidade do ambiente possui 193 minutos de vídeos, em um total de 56 atividades. Gostou? Conheça nossos outros cursos de IA para Dados em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda IA para Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas