Ideen Eigentlich ist es ganz einfach Schreiben Sie ein Shell-Skript, um die Daten über mysqldump von mysql in die entsprechende SQL-Datei zu exportieren; verwenden Sie Linux-Crontab, um das entsprechende Skript regelmäßig auszuführen und die SQL-Datei im entsprechenden Verzeichnis zu speichern; es ist denkbar, dass mit zunehmendem Datenvolumen und zunehmender Sicherungshäufigkeit auch die Auslastung der Festplattenressourcen des Sicherungsservers stark ansteigt; um dieses Problem zu lösen, müssen wir den Sicherungsinhalt regelmäßig bereinigen; ich verwende einfach ein Shell-Skript, um regelmäßig über Crontab zu bereinigen; Hinweis Hier sind einige Punkte zu beachten: Das Exportieren des SQL der entsprechenden Bibliothekstabelle über mysqldump führt zwangsläufig zu einem Ressourcenverbrauch des MySQL-Servers (CUP, Speicher, E/A usw.). Die Standardmethode von mysqldump führt zu Tabellensperren, was schrecklich ist und zu Unterbrechungen des Onlinedienstes führt. Dies ist möglicherweise nur von kurzer Dauer, aber fatal. (Sie können es über die Konfiguration in den Transaktionsmodus ändern, ohne die Tabelle zu sperren.) Mit zunehmender Datenmenge erhöht sich auch die Zeit, die mysqldump zum Exportieren von SQL benötigt. Natürlich können Sie für die Datensicherung den entsprechenden Zeitraum auswählen und den Sicherungszyklus entsprechend der jeweiligen Geschäftssituation definieren. Oder wenn sich auf dem MySQL-Server viele Datenbanken befinden, können Sie je nach Geschäft zu unterschiedlichen Zeitpunkten sichern; das ist auch möglich. . . Es kommt auf die konkrete Unternehmenssituation an! Da ich es nur für Entwicklung und Tests verwende, ist die Datenmenge nicht sehr groß, sodass die Auswirkungen vernachlässigt werden können. Es spielt keine Rolle, solange ich es sichere, nachdem alle Feierabend haben (also habe ich es so eingestellt: jeden Abend um 12 Uhr sichern und die Daten des letzten Monats nach einem Monat bereinigen). 1.mysqldump-Berechtigungen Beschreibung der für mysqldump erforderlichen Berechtigungen: mysqldump muss mindestens über die Auswahlberechtigung für die Tabelle verfügen. Für Ansichten muss mysqldump über die Berechtigung zum Anzeigen der Ansicht verfügen. Für Trigger muss mysqldump über Trigger-Berechtigungen verfügen. Um ein konsistentes Backup zu erstellen, benötigt mysqldump das Privileg, Tabellen zu sperren. Nachfolgend sehen Sie die Schätzung zur Benutzererstellung (wenn Sie sie nicht verstehen, können Sie separat googeln, ich werde nicht ins Detail gehen): Benutzer dumper@'127.0.0.1' erstellen; gewähre dumper@'127.0.0.1' die Auswahl von tempdb.*; Gewähren Sie dumper@'127.0.0.1' die Berechtigung, die Ansicht von tempdb.* anzuzeigen. Gewähren Sie Sperrtabellen für tempdb.* für dumper@'127.0.0.1'. Gewähre Trigger für tempdb.* an dumper@'127.0.0.1'; 2. Shell-Skript (Daten exportieren SQL) #!/bin/sh # Datenbankinfo DB_USER="Dumper" DB_PASS="…" DB_HOST="…" # Datenbank-Array DB_NAME=("Hotel" "Essen" "Foodweb") # Andere Variablen BIN_DIR="/usr/bin" #der MySQL-Bin-Pfad BCK_DIR="/home/mysql-backups" #das Verzeichnis der Sicherungsdateien DATE=`Datum +%F` # Datei erstellen mkdir $BCK_DIR/$DATE # ZU TUN # /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql für var in ${DB_NAME[@]}; Tun $BIN_DIR/mysqldump --opt --single-transaction --master-data=2 -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/$DATE/db_$var.sql Erledigt Parameterbeschreibung: --master-data[=#] Hängen Sie den Speicherort und den Namen der binären Binlog-Datei an die Backup-Exportdatei an. Wenn der Wert gleich 1 ist, wird eine CHANGE MASTER-Anweisung hinzugefügt. Wenn der Wert gleich 2 ist, wird vor der CHANGE MASTER-Anweisung ein Kommentar hinzugefügt (funktioniert nicht~) --single-transaction Als Transaktion ausführen 3. Shell-Skript (löscht N Tage alte Skripte planmäßig in Stapeln) #!/bin/sh finde /home/mysql-backups -mtime +30 -name "*.*" -exec rm -Rf {} \; veranschaulichen: /home/lifeccp/dicom/studies: Bereiten Sie ein beliebiges Verzeichnis für die Bereinigung vor. -mtime: Standardanweisungsschreiben +10: Suche nach Dateien von vor 10 Tagen, wobei die Zahlen Tage darstellen, +30 bedeutet, nach Dateien von vor 30 Tagen zu suchen . ": der Datentyp, nach dem Sie suchen möchten. " .jpg" bedeutet, nach allen Dateien mit der Erweiterung jpg zu suchen. " " bedeutet, nach allen Dateien zu suchen. -exec: Schreiben Sie behobenes Schreiben von rm -rf: Erzwingen Sie das Löschen von Dateien, einschließlich Verzeichnissen. {};: Legen Sie die Ergebnisse der Suche in it4.crontab ab. Geplantes Startskript crontab -e 0 0 * * * /home/sh/mysql-backups/dump.sh 0 0 1 * * /home/sh/mysql-backups/del.sh Das könnte Sie auch interessieren:
|
Object.defineProperty verstehen Grammatik: Object...
Vorwort ActiveMQ ist der beliebteste und leistung...
<br />Verwendung des Zeilenumbruch-Tags<b...
Der Anwendungsbereich von CSS ist global. Wenn da...
Frage Vor kurzem bin ich auf die Anforderung gest...
:ist eine dynamische Komponente Verwenden Sie v-b...
Griechische Buchstaben sind eine sehr häufig verw...
Effektvorschau Klicken Sie rechts auf die Schaltf...
Inhaltsverzeichnis Hintergrund Welche Methoden gi...
0 Unterschiede zwischen Symbolen und Bildern Symb...
Seite: Basis: <Vorlage> <div Klasse=&quo...
Suchseite: search.wxml-Seite: <view class=&quo...
Inhaltsverzeichnis Hintergrund erkunden Zusammenf...
1. Umgebungsversion Docker-Version 19.03.12 cento...
Simulationstabellen und Datenskripte Kopieren Sie...