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:
|
Vorwort In diesem Artikel wird erklärt, wie Vue-K...
Inhaltsverzeichnis Offizielle Einführung in Node....
Vorwort Das Tag <router-link> ist ein großa...
/***************** * proc-Dateisystem************...
Mysql mehrere unabhängige Tabellen Abfragedaten u...
WebRTC steht für Web Real-Time Communication und ...
In diesem Artikelbeispiel erfahren Sie den spezif...
1. Einführung in nmon Nmon (Nigel's Monitor) ...
Inhaltsverzeichnis 1. Passen Sie den Inhalt der S...
(1) Einleitung: clipboard.js ist ein leichtes Jav...
Privot ist die Zwischentabelle von Viele-zu-viele...
<br />Das Internet verändert sich ständig un...
1. Einführung in LVM Bei der Verwaltung von Linux...
Vorwort Hallo zusammen, hier ist der CSS-Assisten...
Laden Sie die offizielle Website herunter Gehen S...