Ambiente Windows: backup completo e incremental do MySQL e restauração de dados do banco de dados na prática

1. Preparação ambiental

1. Instalação do ambiente MySQL

Ao realizar operações de backup e restauração do banco de dados MySQL, o ambiente MySQL deve ser instalado com antecedência e o serviço MySQL foi iniciado com sucesso

(1) Se o ambiente MySQL não estiver instalado, você pode consultar o blog: https://blog.csdn.net/weixin_43184774/article/details/106020174
(2) Se o ambiente MySQL foi instalado com sucesso, abra a execução janela e digite: services.msc para abrir a janela de serviço do Windows, verifique se o MySQL está ligado. Se não estiver habilitado, consulte o documento na etapa (1) para habilitar o serviço MySQL


 

2. Adicionar configuração de registro log-bin

(1) Encontre o arquivo de configuração my.ini no diretório de instalação do MySQL

(2) Abra o arquivo de configuração my.ini e adicione uma linha em [mysqld] no arquivo my.ini

log-bin = mysql-bin 

(3) Reiniciar o serviço MySQL irá gerar um arquivo de log mysql-bin.000001 no diretório de dados do diretório de instalação do MySQL

Observações: O arquivo de log mysql-bin.00000X é usado para subsequentes operações incrementais de restauração do banco de dados. Este arquivo pode ser gerado automaticamente de acordo com as tarefas agendadas

(4) Abra o ambiente operacional MySQL, execute o seguinte comando para verificar se o log-bin está ligado, se o status estiver ON, significa que está ligado normalmente

show variables like 'log_bin';

Dois, crie um banco de dados e uma tabela de teste

1. Crie um banco de dados de teste

(1) Faça login no ambiente MySQL e crie um banco de dados de classe. O comando é o seguinte:

create database class character set gbk;

(2) Entre no diretório de dados do diretório de instalação do MySQL, você verá o arquivo de banco de dados criado com sucesso

(3) Depois de criar o banco de dados da classe, para usar este banco de dados, execute o comando

use class


2. Crie uma tabela de dados de teste
 

(1) Digite o seguinte comando para criar uma mesa de aluno

CREATE TABLE student

(

  id INT unsigned not null auto_increment primary key,

  username VARCHAR(8) not null

);



(2) Execute o seguinte comando para visualizar a tabela do aluno recém-criada. Neste momento, o aluno é uma tabela vazia sem quaisquer dados

SELECT *FROM student;

(3) Execute o seguinte comando para inserir dados na tabela do aluno

insert into student values(1,'张学友');
insert into student values(2,'刘德华');

(4) A tabela do aluno após a execução do comando para inserir os dados. Neste momento, a tabela do aluno possui dois dados

SELECT *FROM student;


 

Três, backup completo e restauração do banco de dados

1. Banco de dados de backup completo

(1) Abra a janela cmd, faça cd no diretório bin do diretório de instalação do MySQL

(2) Execute o seguinte comando no diretório bin para realizar um backup completo do banco de dados de classe recém-criado

mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=123456 class student > "D:\beifen20201119.sql"

Explicação:
--host = 127.0.0.1 é o endereço IP do banco de dados do qual deseja fazer backup
--port = 3306 número da porta do banco de dados
" D : \ beifen20201119.sql " Faça backup do banco de dados de classe completo no diretório raiz do Disco D e nomeie-o Called beifen20201119.sql
class student é o nome do banco de dados e da tabela que deseja fazer backup. Você pode fazer backup do banco de dados completo da classe ou pode fazer backup da tabela do aluno separadamente. Observação : A letra da unidade de backup deve estar no mesmo disco que o diretório de instalação do MySQL. No caractere, caso contrário, aparecerá: Acesso negado 

(3) Operações de tabela que não são necessárias para backup:
Sintaxe:

mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=123456 dbname --ignore-table=dbname.table1 --ignore-table=dbname.table2 > ./db_files/test.sql


Exemplos:

mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=123456 class --ignore-table=class.student > "D:\beifen20201124.sql

(4) Após a conclusão do backup, um arquivo sql será gerado automaticamente no diretório correspondente, entre no diretório e visualize o banco de dados de backup completo

(5) Podemos encapsular as etapas acima em um arquivo de script em lote .bat e, em seguida, clicar duas vezes para executar o arquivo em lote para executar o banco de dados de backup completo, o
script de banco de dados de backup completo é o seguinte, nota: você deve configurar isso de acordo para o seu arquivo de script de configurações reais

rem Auther By Anker
rem date:20201119
rem ******Backup MySQL Start******
@echo off
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"

::创建存储的文件夹
if not exist "D:\mysql_backup" md "D:\mysql_backup"

::执行备份操作
"D:\software\MySQL\mysql-8.0.22-winx64\bin\mysqldump" --opt --user=root --password=123456 --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "class" >D:\software\beifen_%Ymd%.sql

::删除90天前的备份数据
forfiles /p "C:\mysql_backup" /m backup_*.sql -d -90 /c "cmd /c del /f @path"

@echo on
rem ******Backup MySQL End******

2. Restaure o banco de dados por completo 

(1) Execute o seguinte comando para excluir o banco de dados da classe criado com antecedência

drop database class;

(2) Execute o seguinte comando para consultar a tabela do aluno, você verá que o banco de dados da classe não pode ser encontrado

SELECT *FROM student;

(3) Como o comando drop foi executado na etapa anterior, é equivalente a excluir todos os dados e estrutura do banco de dados.Neste momento, a estrutura do banco de dados precisa ser recriada antes que a operação de restauração possa ser realizada. Então, execute o comando create database novamente e, em seguida, use este banco de dados de classe, ou seja, use a classe

create database class character set gbk; 
use class

(4) Execute o seguinte comando para restaurar o banco de dados da classe excluída

source D:\beifen20201119.sql

(5) Execute o seguinte comando novamente para consultar a tabela do aluno, você verá que os dados da tabela do aluno anterior estão de volta 

SELECT *FROM student;

Quatro, backup incremental e restauração do banco de dados

1. Banco de dados de backup incremental

(1) Execute o seguinte comando, insira mais 2 dados na tabela do aluno

insert into student values(3,'郭富城');
insert into student values(4,'黎明');

 

(2) Execute o comando de consulta para consultar a tabela do aluno, neste momento você encontrará mais dois dados

SELECT *FROM student;

 

(3) Execute o comando truncar aluno; para excluir os dados da tabela do aluno.
Atenção especial: se o comando drop student; for executado, toda a estrutura da tabela do aluno e os dados são excluídos, e apenas a quantidade total pode ser restaurada neste momento

truncate student;

 

(4) Execute o comando de consulta novamente para consultar a tabela do aluno, você verá que não há dados na tabela do aluno

SELECT *FROM student;

(5) Podemos encapsular as etapas acima em um arquivo de script em lote .bat e, em seguida, clicar duas vezes para executar o arquivo em lote para realizar o backup incremental do banco de dados. O
script de backup incremental do banco de dados é o seguinte. Observação: você deve configurá-lo de acordo com suas próprias configurações reais. Configure este arquivo de script

rem Auther By Anker
rem date:20201119
rem ******Backup MySQL Start******
@echo off
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"

::执行增量备份操作
mysqladmin -u root -p123456 flush-logs

@echo on
rem ******Backup MySQL End******

2. Recuperação incremental do banco de dados 

(1) Antes de realizar a recuperação incremental, você precisa realizar uma recuperação completa primeiro para restaurar os dados do banco de dados para os dados mais recentes em um determinado período de tempo, ou seja, execute o comando: source D: \ beifen20201119.sql

(2) Execute o comando de consulta novamente para consultar a tabela do aluno, e você verá que os dados da tabela do aluno anterior estão de volta, mas os dados na tabela são apenas Jacky Cheung e Andy Lau, e não há Guo Fucheng e Liming depois.

SELECT *FROM student;

 

(3) Se você deseja restaurar os dados de Guo Fucheng e Liming recém-adicionados, você precisa usar o arquivo bin-log. Ou seja, execute o seguinte comando no ambiente mysql

show binlog events in 'mysql-bin.000001';

 

(4) Ver as posições inicial e final dos dados do amanhecer registrados no conteúdo do binlog

(5) Execute o seguinte comando no diretório de dados do diretório de instalação do MySQL para converter o arquivo bin-log que precisa ser copiado no diretório de dados em um arquivo sql

mysqlbinlog --no-defaults mysql-bin.000001 --start-position=3898 --stop-position=4034 > d:\\zengliang.sql

(6) Neste momento, você descobrirá que a unidade D gera automaticamente um arquivo zengliang.sql

(7) Execute o seguinte comando para restaurar os dados do amanhecer excluídos

source d://zengliang.sql

(8) Execute o comando de consulta novamente para consultar a tabela do aluno, e você verá que os dados da tabela anterior do aluno estão de volta

SELECT *FROM student;

Quinto, execute regularmente tarefas de backup

(1) Pesquise "Agendador de tarefas" na lista de pesquisa do programa de início e abra

(2) Após abrir o agendador de tarefas, clique em "Criar Tarefa Básica" à direita e escreva o nome e a descrição da tarefa agendada

(3) Escolha um nome arbitrariamente e clique em "Avançar"

(4) De acordo com suas necessidades, clique para selecionar o período de execução do tempo e clique em "Avançar"

(5) Defina o tempo de execução necessário e clique em "Avançar"

(6) Selecione "Iniciar o programa" e clique em "Avançar"

(7) Navegue e selecione o arquivo de script de backup completo e clique em "Avançar"

(8) Após confirmar que as informações estão corretas, clique em "Concluir"

(9) Depois que a tarefa cronometrada é criada, a tarefa que criamos pode ser vista na lista de tarefas, e a tarefa pode ser excluída clicando com o botão direito do mouse na tarefa

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Acho que você gosta

Origin blog.csdn.net/weixin_43184774/article/details/109830081
Recomendado
Clasificación