Windows-Umgebung: MySQL vollständige und inkrementelle Sicherung und Wiederherstellung von Datenbankdaten in der Praxis

1. Umweltvorbereitung

1. Installation der MySQL-Umgebung

Bei der Durchführung von Sicherungs- und Wiederherstellungsvorgängen für MySQL-Datenbanken muss die MySQL-Umgebung im Voraus installiert und der MySQL-Dienst erfolgreich gestartet werden

(1) Wenn die MySQL-Umgebung nicht installiert ist, können Sie auf das Blog verweisen: https://blog.csdn.net/weixin_43184774/article/details/106020174
(2) Wenn die MySQL-Umgebung erfolgreich installiert wurde, öffnen Sie den Lauf Fenster und geben Sie Folgendes ein: services.msc, um das Windows-Dienstfenster zu öffnen. Überprüfen Sie, ob MySQL aktiviert ist. Wenn es nicht aktiviert ist, lesen Sie das Dokument in Schritt (1), um den MySQL-Dienst zu aktivieren


 

2. Fügen Sie die Log-Bin- Log-Konfiguration hinzu

(1) Suchen Sie die Konfigurationsdatei my.ini in Ihrem MySQL-Installationsverzeichnis.

(2) Öffnen Sie die Konfigurationsdatei my.ini und fügen Sie in der Datei my.ini eine Zeile unter [mysqld] hinzu

log-bin = mysql-bin 

(3) Durch einen Neustart des MySQL-Dienstes wird eine Protokolldatei mysql-bin.000001 im Datenverzeichnis des MySQL-Installationsverzeichnisses generiert

Anmerkungen: Die Protokolldatei mysql-bin.00000X wird für nachfolgende inkrementelle Datenbankwiederherstellungsvorgänge verwendet. Diese Datei kann automatisch gemäß geplanten Aufgaben generiert werden

(4) Öffnen Sie die MySQL-Betriebsumgebung und führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Protokollbereich aktiviert ist. Wenn der Status EIN ist, bedeutet dies, dass er normal aktiviert ist

show variables like 'log_bin';

Zweitens erstellen Sie eine Testdatenbank und eine Tabelle

1. Erstellen Sie eine Testdatenbank

(1) Melden Sie sich bei der MySQL-Umgebung an und erstellen Sie eine Klassendatenbank. Der Befehl lautet wie folgt:

create database class character set gbk;

(2) Geben Sie das Datenverzeichnis des MySQL-Installationsverzeichnisses ein. Sie sehen die erfolgreich erstellte Datenbankdatei

(3) Führen Sie nach dem Erstellen der Klassendatenbank den Befehl aus, um diese Datenbank zu verwenden

use class


2. Erstellen Sie eine Testdatentabelle
 

(1) Geben Sie den folgenden Befehl ein, um eine Schülertabelle zu erstellen

CREATE TABLE student

(

  id INT unsigned not null auto_increment primary key,

  username VARCHAR(8) not null

);



(2) Führen Sie den folgenden Befehl aus, um die neu erstellte Schülertabelle anzuzeigen. Zu diesem Zeitpunkt ist der Schüler eine leere Tabelle ohne Daten

SELECT *FROM student;

(3) Führen Sie den folgenden Befehl aus, um Daten in die Schülertabelle einzufügen

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

(4) Die Schülertabelle nach Ausführung des Befehls zum Einfügen der Daten. Zu diesem Zeitpunkt enthält die Schülertabelle zwei Daten

SELECT *FROM student;


 

Drei, vollständige Sicherung und Wiederherstellung der Datenbank

1. Vollständige Sicherungsdatenbank

(1) Öffnen Sie das cmd-Fenster cd in das bin-Verzeichnis des MySQL-Installationsverzeichnisses

(2) Führen Sie den folgenden Befehl im Verzeichnis bin aus, um eine vollständige Sicherung der gerade erstellten Klassendatenbank durchzuführen

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"

Erläuterung:
--host = 127.0.0.1 ist die IP - Adresse der Datenbank , die Sie wollen sichern
--port = 3306 Datenbank - Portnummer
D : \ beifen20201119.sql Sichern der vollständigen Klassen Datenbank in das Stammverzeichnis von Datenträger D, und nennen Sie es beifen20201119.sql
class student ist der Name der Datenbank und Tabelle, die Sie sichern möchten. Sie können die vollständige Datenbank der Klasse oder die Schülertabelle separat sichern . Hinweis : Der Buchstabe des Sicherungslaufwerks muss sich auf derselben Festplatte wie das MySQL-Installationsverzeichnis befinden. Andernfalls wird im Zeichen Folgendes angezeigt: Zugriff verweigert 

(3) Tabellenoperationen, die für die Sicherung nicht erforderlich sind:
Syntax:

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


Beispiele:

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) Nach Abschluss der Sicherung wird automatisch eine SQL-Datei im entsprechenden Verzeichnis generiert, geben Sie das Verzeichnis ein und zeigen Sie die vollständige Sicherungsdatenbank an

(5) Wir können die obigen Schritte in eine .bat-Batch-Skriptdatei kapseln und dann doppelklicken, um die Batch-Datei auszuführen, um die vollständige Sicherungsdatenbank auszuführen. Das vollständige Sicherungsdatenbank-
Skript lautet wie folgt. Hinweis: Sie müssen dies entsprechend konfigurieren zu Ihren tatsächlichen Einstellungen Skriptdatei

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. Stellen Sie die Datenbank vollständig wieder her 

(1) Führen Sie den folgenden Befehl aus, um die zuvor erstellte Klassendatenbank zu löschen

drop database class;

(2) Führen Sie den folgenden Befehl aus, um die Schülertabelle abzufragen. Sie werden feststellen, dass die Klassendatenbank nicht gefunden werden kann

SELECT *FROM student;

(3) Da der Befehl drop im vorherigen Schritt ausgeführt wurde, entspricht dies dem Löschen aller Datenbankdaten und -strukturen. Zu diesem Zeitpunkt muss die Datenbankstruktur neu erstellt werden, bevor der Wiederherstellungsvorgang ausgeführt werden kann. Führen Sie den Befehl create database erneut aus, und verwenden Sie dann diese Klassendatenbank, dh class

create database class character set gbk; 
use class

(4) Führen Sie den folgenden Befehl aus, um die gelöschte Klassendatenbank wiederherzustellen

source D:\beifen20201119.sql

(5) Führen Sie den folgenden Befehl erneut aus, um die Schülertabelle abzufragen. Sie werden feststellen, dass die vorherigen Schülertabellendaten zurück sind 

SELECT *FROM student;

Viertens inkrementelle Sicherung und Wiederherstellung der Datenbank

1. Inkrementelle Sicherungsdatenbank

(1) Führen Sie den folgenden Befehl aus und fügen Sie 2 weitere Daten in die Schülertabelle ein

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

 

(2) Führen Sie den Abfragebefehl aus, um die Schülertabelle abzufragen. Zu diesem Zeitpunkt finden Sie zwei weitere Daten

SELECT *FROM student;

 

(3) Führen Sie den Befehl "Schüler abschneiden" aus, um die Daten in der Schülertabelle zu löschen.
Besondere Aufmerksamkeit: Wenn der Befehl drop student; ausgeführt wird, werden die gesamte Struktur und die Daten der Schülertabelle gelöscht, und zu diesem Zeitpunkt kann nur der gesamte Betrag wiederhergestellt werden

truncate student;

 

(4) Führen Sie den Abfragebefehl erneut aus, um die Schülertabelle abzufragen. Sie werden feststellen, dass die Schülertabelle keine Daten enthält

SELECT *FROM student;

(5) Wir können die obigen Schritte in eine .bat-Batch-Skriptdatei kapseln und dann doppelklicken, um die Batch-Datei auszuführen, um eine inkrementelle Sicherung der Datenbank durchzuführen. Das
inkrementelle Sicherungsdatenbankskript lautet wie folgt: Hinweis: Sie müssen es festlegen Konfigurieren Sie diese Skriptdatei gemäß Ihren tatsächlichen Einstellungen

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. Inkrementelle Wiederherstellung der Datenbank 

(1) Bevor Sie eine inkrementelle Wiederherstellung durchführen, müssen Sie zuerst eine vollständige Wiederherstellung durchführen, um die Datenbankdaten in einem bestimmten Zeitraum auf die neuesten Daten zurückzusetzen. Führen Sie daher den folgenden Befehl aus: source D: \ beifen20201119.sql

(2) Führen Sie den Abfragebefehl erneut aus, um die Schülertabelle abzufragen, und Sie werden feststellen, dass die vorherigen Schülertabellendaten wieder verfügbar sind. Die Daten in der Tabelle sind jedoch nur Jacky Cheung und Andy Lau, und es wurden keine Guo Fucheng und hinzugefügt Liming später.

SELECT *FROM student;

 

(3) Wenn Sie die neu hinzugefügten Guo Fucheng- und Liming-Daten wiederherstellen möchten, müssen Sie die Bin-Log-Datei verwenden. Führen Sie den folgenden Befehl in der MySQL-Umgebung aus

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

 

(4) Zeigen Sie die Start- und Endpositionen der im Binlog-Inhalt aufgezeichneten Dämmerungsdaten an

(5) Führen Sie den folgenden Befehl im Datenverzeichnis des MySQL-Installationsverzeichnisses aus, um die Bin-Log-Datei, die im Datenverzeichnis gesichert werden soll, in eine SQL-Datei zu konvertieren

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

(6) Zu diesem Zeitpunkt werden Sie feststellen, dass das Laufwerk D automatisch eine zengliang.sql-Datei generiert

(7) Führen Sie den folgenden Befehl aus, um die gelöschten Dämmerungsdaten wiederherzustellen

source d://zengliang.sql

(8) Führen Sie den Abfragebefehl erneut aus, um die Schülertabelle abzufragen, und Sie werden feststellen, dass die Daten aus der vorherigen Morgendämmerung der Schülertabelle wieder zurück sind

SELECT *FROM student;

Fünf, führen Sie regelmäßig Sicherungsaufgaben

(1) Suchen Sie in der Suchliste des Startprogramms nach "Task Scheduler" und öffnen Sie ihn

(2) Klicken Sie nach dem Öffnen des Aufgabenplaners rechts auf "Basisaufgabe erstellen" und schreiben Sie den Namen und die Beschreibung der geplanten Aufgabe

(3) Wählen Sie einen beliebigen Namen und klicken Sie auf "Weiter".

(4) Klicken Sie entsprechend Ihren Anforderungen auf, um den Zeitraum für die Ausführung auszuwählen, und klicken Sie auf "Weiter".

(5) Stellen Sie die erforderliche Ausführungszeit ein und klicken Sie auf "Weiter".

(6) Wählen Sie "Programm starten" und klicken Sie auf "Weiter".

(7) Durchsuchen und wählen Sie die fertige Sicherungsskriptdatei aus und klicken Sie auf "Weiter".

(8) Nachdem Sie bestätigt haben, dass die Informationen korrekt sind, klicken Sie auf "Fertig stellen".

(9) Nachdem die zeitgesteuerte Aufgabe erstellt wurde, wird die von uns erstellte Aufgabe in der Aufgabenliste angezeigt und die Aufgabe kann durch Klicken mit der rechten Maustaste auf die Aufgabe gelöscht werden

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ich denke du magst

Origin blog.csdn.net/weixin_43184774/article/details/109830081
Empfohlen
Rangfolge