Backup e restauração de bancos de dados MySQL para Windows
Ambiente de confirmação de operação
- O MySQL
-
- MySQL 8.0 Community Edition
- Windows
-
- janelas 11
Ambiente necessário
- O MySQL
-
- MySQL 8.0
- Windows
-
- janelas 11
- janelas 10
- Servidor Windows
-
- Servidor Windows 2022
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
pré-condição
- O banco de dados MySQL deve ser instalado
- O banco de dados para backup já existe
- Configure variáveis de ambiente e permita que você execute o MySQL a partir do prompt de comando
Sobre os tipos de backup
Não vou entrar em detalhes aqui, mas o MySQL tem os seguintes tipos de backups:
Comando de backup | Comentários sobre o tipo de dados de backup | |
---|---|---|
mysqldump | Backup lógico | Um método de backup antigo. A GUI também usa isso |
mysqlpump | Backup lógico | Versão melhorada do mysqldump |
Utilitário de despejo de instância do MySQL Shell e utilitário de carregamento de despejo | Backup lógico | Como um backup lógico, é o mais recente no momento |
Percona XtraBackup | Backup físico | Produtos de terceiros que permitem backup físico |
PLUG-IN DE CLONE | Backup físico | Backup físico oficial do MySQL. No entanto, plug-ins adicionais são necessários |
Fazendo backup de um banco de dados com uma GUI (MySQL Workbench)
Se você deseja operar com segurança na GUI sem usar comandos, pode executar um backup no MySQL Workbench. O tipo de backup executado no MySQL Workbench é "mysqldump".
Inicie o MySQL Workbench.
Selecione a conexão com o banco de dados do qual você deseja fazer backup.
Com o banco de dados a ser copiado, selecione a guia Administração no Navegador à esquerda e selecione Exportação de Dados.
A tela Exportação de dados é aberta. A tela é bem grande, então expanda a janela até ver o botão "Iniciar exportação" no canto inferior direito.
Primeiro, selecione o banco de dados do qual deseja fazer backup. Você também pode selecionar mais de um.
Em "Objetos a serem exportados", você também pode escolher se deseja fazer backup de procedimentos, gatilhos, etc. Este item é opcional.
Em "Opções de exportação", você pode escolher entre as duas opções a seguir:
Descrição dos tipos | |
---|---|
Exportar para a pasta do projeto de despejo | Saída como uma tabela ou arquivo procedimento por procedimento em uma determinada pasta. |
Exportar para arquivo independente | Incorpore tudo em um único arquivo e produza-o. |
Não importa qual você produz. Se você escolher acima, é fácil porque você pode removê-lo facilmente se quiser restaurar apenas uma tabela específica. As seleções a seguir são enviadas para um único arquivo, facilitando a movimentação e o gerenciamento de arquivos como uma unidade de banco de dados. Desta vez, selecionei o seguinte.
Uma vez configurado, clique no botão Iniciar exportação no canto inferior direito para iniciar a exportação.
A exportação é iniciada e concluída.
Se você gerar um único arquivo, ele ficará assim:
Se você exportar para uma pasta, ela ficará assim:
Restaurando um banco de dados com uma GUI (MySQL Workbench)
Abra o MySQL Workbench, selecione suas conexões, selecione a guia Administração no Navegador à esquerda e selecione Importação/Restauração de Dados. Como diz "Importar/Restaurar", você pode criar um novo banco de dados a partir do arquivo exportado ou substituir o banco de dados original.
Expanda a janela até ver o botão "Iniciar importação" no canto inferior direito.
Selecione "Opções de importação" de acordo com o formato de arquivo exportado. Como exportei como um único arquivo desta vez, selecionei "Importar do arquivo independente" abaixo e especifiquei o arquivo exportado.
Selecione o esquema (banco de dados) a ser restaurado. Você pode restaurar para um banco de dados existente ou restaurá-lo como um novo banco de dados no botão "novo" à direita.
Após especificar, clique no botão "Iniciar importação" no canto inferior direito para iniciar a recuperação.
Certifique-se de que seus dados estejam de volta quando a restauração for concluída.
Criar uma conta para backup de banco de dados via comando
Não há problema se você quiser executar um comando para fazer backup uma única vez, mas, por exemplo, se você preparar um comando como um arquivo com antecedência e executá-lo, precisará escrever a senha em texto simples, portanto, é mais seguro criar uma conta separada para executar o backup.
As permissões necessárias para backup são as seguintes, mas podem aumentar ou diminuir dependendo das informações necessárias.
- ACONTECIMENTO
- TABELAS DE BLOQUEIO
- SELECIONAR
- MOSTRAR VISTA
Se você criá-lo com um comando, ele ficará assim: Execute-o com a ferramenta de linha de comando MySQL.
create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;
exemplo
create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;
Permissões de pasta para destino de backup
As permissões para a pasta onde o arquivo de backup está armazenado devem ser definidas com a mesma permissão que a permissão para executar o comando. Se você quiser executar comandos com a permissão Administradores, não precisará definir nenhuma permissão adicional para a pasta.
Fazendo backup de um banco de dados com o comando (mysqldump)
Existem vários backups de comandos, mas desta vez vou fazer backup com o antigo e estável "mysqldump".
Clique com o botão direito do mouse no menu Iniciar e inicie o Terminal (Prompt de Comando). Observe que não é um "Cliente de Linha de Comando MySQL 8.0".
Você pode fazer backup com o seguinte comando:
mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"
exemplo
mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"
--default-character-set=utf8
terá o mesmo código de caractere de quando o backup na GUI. Isso permite que você os importe para a GUI também.- Não coloque um espaço entre o campo
-p
de senha e a senha.- Se você também deseja gerar informações de espaço de tabela,
--no-tablespaces
desmarque . Nesse caso, as permissões do usuário dePROCESS
execução são necessárias.
Um arquivo de backup será criado no local especificado.
Restaurando um banco de dados com o comando (mysqldump)
Os arquivos de backup com mysqldump estão em um formato que pode ser executado em SQL, portanto, você só precisa executar o SQL de destino. Acho que a restauração geralmente é feita manualmente, então não há problema em executá-la na conta root.
Se você quiser executá-lo a partir de um comando, execute-o no prompt de comando em vez do PowerShell. Isso ocorre <
porque o PowerShell não permite símbolos.
Execute o seguinte comando:
mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>
exemplo
mysql -u root -ppassword test_database < C:\Temporary\Backup.sql
Backup automático de banco de dados
Para Windows, é comum usar um agendador de tarefas. Comece criando um arquivo em lote. Crie um arquivo bat, insira o conteúdo conforme foi feito backup com comandos e salve-o. Salve códigos de caracteres com Shift-JIS. O local e o nome do arquivo em lotes podem ser arbitrários.
Registre-se com o agendador de tarefas. Clique com o botão direito do mouse no menu Iniciar e selecione "Gerenciar computador".
No menu à esquerda, selecione Gerenciamento do Computador > Ferramentas do Sistema > Agendador de Tarefas > Biblioteca do Agendador de Tarefas. Selecione Criar tarefa no menu à direita.
Defina a guia Geral. O "nome" será exibido na lista de tarefas, portanto, coloque um nome que seja fácil de entender. Nas opções de segurança, marque "Executar se o usuário está conectado ou não".
A guia Gatilhos define quando o backup deve ser executado. Esta configuração deve ser definida de acordo com sua operação.
Na guia Operações, defina o arquivo em lotes que você acabou de criar para iniciar.
Depois de definir cada um deles, confirme-os com o botão OK.
Digite sua senha para se registrar para executar na conta especificada.
Agora verifique se o backup será executado no horário especificado.