Vor Kurzem musste das Projekt die Datenbankdaten sichern. Durch Konsultation verschiedener Materialien wurde eine Strategie zur Datenbanksicherung entwickelt. Nach einer Woche Fehlerbehebung und Betrieb befindet sie sich nun in einem stabilen Betriebszustand. Jetzt möchte ich meine Ideen teilen und gredn danken. Entwurfsszenario 1) Die inkrementelle Sicherung wird von Montag bis Samstag um 3:00 Uhr morgens durchgeführt, wobei mysql-bin.00000* in das angegebene Verzeichnis kopiert wird. Technische PunkteMysqldump, mysqlbinlog, crontab ServerinformationenHost: centos7; Datenbank: mysql5.7 VorbereitungAktivieren Sie die Binlog-Protokollierung. (1) Erstellen Sie ein neues Verzeichnis und führen Sie aus: #mkdir /home/mysql #cd /home/mysql #mkdir mysql-bin. #Inkrementelles Protokolldateiverzeichnis (2) Ändern Sie den Benutzer/die Gruppe, zu der es gehört: (Wenn es nicht geändert wird, kann MySQL nicht neu gestartet werden) #chown -R mysql.mysql mysql-bin (3) Ändern Sie die MySQL-Konfigurationsdatei und führen Sie Folgendes aus: #vim /etc/meine.cnf Dabei stellt die Server-ID die ID eines einzelnen Knotens dar. Da es hier nur einen Knoten gibt, kann der ID zufällig eine Nummer zugewiesen werden. Hier wird die ID auf 1 gesetzt. Wenn der Cluster mehrere Knoten enthält, dürfen die IDs nicht identisch sein (bei Versionen unter 5.7 müssen Sie keine Server-ID angeben). (4) Starten Sie MySQL neu und führen Sie aus: #systemctl mysqld.service neu starten (5) Zeigen Sie die Protokolldatei an: #cd /home/mysql/mysql-bin (6) Rufen Sie die Datenbank auf und überprüfen Sie den Starteffekt: #Variablen wie „%log_bin%“ anzeigen; Schreiben Sie ein vollständiges Backup-Skript (Mysql-FullyBak.sh). Wechseln Sie in das Verzeichnis /home/mysql und erstellen Sie ein neues Verzeichnis: mkdir backup #vim Mysql-FullyBak.sh Parameterbeschreibung: Schreiben von inkrementellen Backup-SkriptenWechseln Sie in das Verzeichnis /home/mysql und führen Sie aus: #vim Mysql-DailyBak.sh Crontab für geplante Aufgaben einrichten(1) Installieren Sie crontab (in centos7 bereits standardmäßig installiert): #yum crontabs installieren Service-Bedienungsanleitung: #/bin/systemctl start crond.service //Dienst starten#/bin/systemctl stop crond.service //Dienst herunterfahren#/bin/systemctl restart crond.service //Dienst neu starten#/bin/systemctl reload crond.service //Neu laden Konfiguration: #/bin/systemctl status crond.service //Dienststatus Automatischen Start hinzufügen: #chkconfig –level 35 crond ein (2) Geben Sie in der Kommandozeile ein: #crontab -e Entsprechende Task hinzufügen, speichern und mit wq beenden #Führen Sie das vollständige Backup-Skript jeden Sonntag um 3:00 Uhr aus 0 3 * * 0 /bin/bash -x /home/mysql/Mysql-FullyBak.sh >/dev/null 2>&1 #Machen Sie inkrementelle Backups von Montag bis Samstag um 3:00 Uhr morgens. 0 3 * * 1-6 /bin/bash -x /home/mysql/Mysql-DailyBak.sh >/dev/null 2>&1 Hinweis: Standardmäßig benachrichtigt crontab den Benutzer per E-Mail, nachdem eine Aufgabe ausgeführt wurde. Um zu vermeiden, dass jedes Mal Nachrichten gesendet werden, fügen Sie /dev/null 2>&1 hinzu. (3) Geplante Aufgaben anzeigen: #crontab -l Parameter und Beschreibung: Wiederherstellungsvorgang Der Wiederherstellungsprozess schreibt auch Protokolldateien. Wenn die Datenmenge groß ist, wird empfohlen, zuerst die Binlog-Funktion zu deaktivieren. (1) Dekomprimieren Sie zunächst die letzte vollständige Sicherungsdatei, geben Sie das Sicherungsdateiverzeichnis ein und führen Sie Folgendes aus: #tar -zxvf XXX.sql.tgz (2) Um die neu hinzugefügten Binärprotokolldateien nach der vollständigen Sicherung anzuzeigen, führen Sie Folgendes aus: #grep ÄNDERN XXX.sql Wie aus der Abbildung ersichtlich ist, ist dies die Position der Binlog-Datei zum Zeitpunkt der vollständigen Vorbereitung, also Zeile 154 von mysql-bin.000003. Daher sind die Daten in den Binlog-Dateien vor dieser Datei bereits in dieser vollständig vorbereiteten SQL-Datei enthalten. (3) Stellen Sie die Informationen nach Zeile 154 der Datei mysql-bin.000003 wieder her Wechseln Sie in das Verzeichnis mysql-bin.000003 und führen Sie es aus (sysecokit ist der Datenbankname). #mysqlbinlog --start-position=154 --database=sysecokit mysql-bin.000003 | mysql -uroot -p -v sysecokit (4) Exportieren Sie andere Binlog-Dateien (außer mysql-bin.000003) in SQL-Dateien und führen Sie sie aus (-d gibt die Datenbank an): #mysqlbinlog -d sysecokit mysql-bin.00000X >00Xbin.sql (5) Bearbeiten Sie die neueste 00Xbin.sql mit vim und löschen Sie die Drop-Anweisung #mysql -uroot -p < XXX.sql Beispiel: #mysql -uroot -p < 20180716.sql #mysql -uroot -p syseco<00Xbin.sql Beispiel: #mysql -uroot -p syseco<004bin.sql Dies ist das Ende dieses Artikels über die Implementierung der MySQL-Sicherungsstrategie (vollständige Sicherung + inkrementelle Sicherung). Weitere relevante Inhalte zur MySQL-Sicherungsstrategie finden Sie in den vorherigen Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: CSS-Implementierungscode für horizontale und vertikale Fortschrittsbalken
>>: Das Laufschriftelement implementiert Effekte wie scrollende Schriften und Bilder
Eines Tages stellte der Leiter die Anforderung, e...
Inhaltsverzeichnis 1. Docker erstellen 2. Betrete...
In diesem Artikel wird der spezifische Code des W...
Inhaltsverzeichnis 1. Hintergrund zur Umsetzung 2...
Inhaltsverzeichnis 1. JDK installieren Manuelle I...
Inhaltsverzeichnis Docker-Bereitstellung Always o...
Nachdem die Anwendung in einen Container verpackt...
Einfache Anwendungsbereitstellung 1. Verzeichniss...
Inhaltsverzeichnis Aktuelle Themen Lösungsprozess...
1. Kompatibilität Wie unten dargestellt: Die Komp...
Inhaltsverzeichnis 1. Kapselungs-API 2. Globale T...
01. VMware Workstation Pro 15 herunterladen Herun...
einführen In diesem Kapitel wird hauptsächlich de...
1. Gehen Sie zur offiziellen Website, um das JDK-...