Bestimmte Vorgänge der geplanten MySQL-Löschung von Sicherungsdaten

Bestimmte Vorgänge der geplanten MySQL-Löschung von Sicherungsdaten

1|0 Hintergrund

Aufgrund von Projektanforderungen müssen die historischen Bestandsdaten jedes Monats archiviert und gesichert werden. Außerdem müssen die Detailfelder einiger Protokolltabellen gelöscht werden, um Speicherplatz auf der MySQL-Datenbankfestplatte zu sparen. Um diese Daten regelmäßig zu bereinigen, sind einige geplante Aufgaben erforderlich.

2|0 Technologieauswahl

  • Java kann den auf Quartz/Timer basierenden Mechanismus für geplante Aufgaben verwenden, um geplante Aufgaben zu schreiben, was die Verwendung von Java-Programmen erfordert
  • Um ein geplantes Aufgabendokument basierend auf Cron-Ausdrücken basierend auf Crontab unter Linux zu erstellen, müssen Sie ein entsprechendes Skript schreiben. Da dieses Skript jedoch für den Betrieb der Datenbank erforderlich ist, werden zwangsläufig Daten wie Klartextkennwörter einbezogen, was nicht sehr sicher ist.
  • Da die MySQL-Datenbank verwendet wird und MySQL geplante Aufgaben unterstützt, können Sie die in MySQL integrierten geplanten Aufgaben verwenden.

3|0 Spezifische Operationen

3|1mysql-Konfiguration

Da die Option für geplante Aufgaben in der Standardkonfiguration von MySQL deaktiviert ist, prüfen wir sicherheitshalber zunächst, ob die Option aktiviert ist.

Variablen wie „%event_scheduler%“ anzeigen;

Wenn die Option „Aus“ angezeigt wird, gibt es zwei Möglichkeiten, sie zu ändern:

1. Anweisungsmethode (gültig für die aktuell gestartete Instanz, ungültig nach Neustart)

setze globalen event_scheduler=1;

​ 2. Konfigurieren Sie my.cnf (my.ini in Windows) und fügen Sie die folgenden Optionen hinzu

[mysqld]
event_scheduler=EIN 


Dann speichern Sie es und starten Sie MySQL neu

3|2SQL-Schreiben

Erstellen Sie eine gespeicherte Prozedur (Prozedur) [Optional: Wenn es sich nur um ein einfaches SQL handelt, können Sie es direkt in der geplanten Aufgabe angeben]

Gespeicherte Prozedur: Eine gespeicherte Prozedur, auch als gespeicherte Prozedur (englisch: Stored Procedure) bezeichnet, ist ein Datenbankobjekt, das komplexe Programme in einer Datenbank speichert, damit externe Programme sie aufrufen können. Es kann als Funktion oder Unterroutine der Datenbank betrachtet werden.

PROZEDUR erstellen sched_clean() --name BEGIN
-- Parameter definieren DECLARE begin_time BIGINT DEFAULT UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE(),interval 31 DAY))*1000;
DECLARE Endzeit BIGINT DEFAULT UNIX_TIMESTAMP (DATE_SUB (CURRENT_DATE (), Intervall 30 Tage)) * 1000;
-- Daten aktualisieren UPDATE test_table SET rule_cost=null WHERE start_time>begin_time und start_time<end_time;
ENDE

Erstellen einer geplanten Aufgabe

Sobald die gespeicherte Prozedur erstellt ist, können wir sie regelmäßig aufrufen.

EREIGNIS ERSTELLEN `demo`.`day_of_clean_event`
GEMÄSS ZEITPLAN BEGINNT JEDER '1' TAG MIT DATE_ADD(DATE_ADD(CURDATE(), INTERVALL 1 TAG), INTERVALL 1 STUNDE)
Bei Abschluss beibehalten deaktivieren
Rufen Sie sched_clean() auf;

Code-Erklärung:

  • CREATE EVENT demo.day_of_clean_event erstellt ein Ereignis mit dem Namen day_of_clean_event in der Demo-Datenbank
  • Gibt den Erstellungszeitzyklus und die Startzeit an. Dies bedeutet, dass die Aufgabe ab morgen 1 Uhr einmal täglich ausgeführt wird.
  • Die dritte Zeile gibt an, dass sie nach der Erstellung nicht wirksam wird
  • Die vierte Zeile gibt die auszuführende Aufgabe an (Sie können hier auch direkt SQL-Anweisungen schreiben).

Verwandte Suchanfragen

Alle Ereignisse dieser Maschine abfragen

SELECT Ereignisname, Ereignisdefinition, Intervallwert, Intervallfeld, Status FROM Informationsschema.EVENTS;

Aktivieren/Deaktivieren eines bereits erstellten Ereignisses

alter event event_name on completion preserve enable; //Geplante Aufgabe öffnen alter event event_name on completion preserve disable; //Geplante Aufgabe schließen

4|0 Bemerkenswerte Punkte

Wenn Ihre globalen Parameter nicht zum Starten der geplanten Aufgabe konfiguriert sind, können Sie in der Tabelle information_schema.EVENTS dennoch keine Datensätze finden, obwohl Sie das erstellte Ereignis gestartet haben.

4|1 Allgemeine Regeln für die Zykluszeit

① Zyklusausführung – Schlüsselwort EVERY

Die Einheiten sind: Sekunde, Minute, Stunde, Tag, Woche, Quartal, Monat, Jahr, wie zum Beispiel:

planmäßig alle 1 Sekunde //Einmal pro Sekunde ausführen planmäßig alle 2 Minuten //Einmal alle zwei Minuten ausführen planmäßig alle 3 Tage //Einmal alle drei Tage ausführen

② Zu einem bestimmten Zeitpunkt ausführen – Schlüsselwort AT, zum Beispiel:

planmäßig um current_timestamp()+Intervall 5 Tage // Ausführung in 5 Tagen planmäßig um current_timestamp()+Intervall 10 Minuten // Ausführung in 10 Minuten planmäßig um '2016-10-01 21:50:00' // Ausführung um 21:50 Uhr am 1. Oktober 2016

③ In einem bestimmten Zeitraum ausführen – Schlüsselwörter STARTS ENDS, wie zum Beispiel:

planmäßig jeden 1 Tag, beginnt mit current_timestamp()+Intervall 5 Tage, endet mit current_timestamp()+Intervall 1 Monat //Beginnt die Ausführung jeden Tag nach 5 Tagen und endet am Ende des nächsten Monats planmäßig jeden 1 Tag, endet mit current_timestamp()+Intervall 5 Tage //Beginnt die Ausführung jeden Tag für 5 Tage

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Linux-Shell zum Implementieren einer täglich geplanten Sicherung der MySQL-Datenbank
  • Verwenden von MySQL unter Windows: Implementieren automatischer zeitgesteuerter Sicherungen
  • MySQL-geplante Sicherung mit Crontab-geplantem Sicherungsbeispiel unter Linux
  • Der beste Weg zum automatischen Sichern der MySQL-Datenbank (Windows-Server)
  • Linux führt jeden Tag eine automatische und geplante Sicherung der MySQL-Datenbank durch
  • Freigabe des Shell-Skripts für die geplante MySQL-Sicherung unter CentOS
  • So sichern Sie MySQL regelmäßig und schneiden das Nginx-Zugriffsprotokoll regelmäßig ab
  • Details zur geplanten Datenbanksicherung und Datenwiederherstellung bei Navicat für MySQL
  • So implementieren Sie eine geplante Sicherung einer MySQL-Datenbank
  • So sichern Sie MySQL regelmäßig und laden es auf Qiniu hoch

<<:  Eine kurze Analyse zum Verständnis von Vue-Komponenten aus einer objektorientierten Perspektive

>>:  Implementierung der Docker-Bereitstellung von ElasticSearch und ElasticSearch-Head

Artikel empfehlen

Zusammenfassung von 10 erweiterten Tipps für Vue Router

Vorwort Vue Router ist der offizielle Routing-Man...

Eine kurze Diskussion über die Anpassung mobiler Endgeräte

Vorwort Beim Schreiben von Front-End-Code kommt m...

Einführung in mögliche Probleme nach der Installation von Tomcat

1. Der Tomcat-Dienst ist nicht geöffnet Geben Sie...

Detaillierte Erklärung des Unterschieds zwischen $router und $route in Vue

Wir verwenden normalerweise Routing in Vue-Projek...

Ein super detailliertes Vue-Router Schritt-für-Schritt-Tutorial

Inhaltsverzeichnis 1. Router-Ansicht 2. Router-Ve...

Details zur Destrukturierungszuweisung in Javascript

Inhaltsverzeichnis 1. Array-Dekonstruktion 2. Obj...

Detailliertes Tutorial zur Installation von Nginx auf CentOS8 (Bild und Text)

Nginx, ausgesprochen „Engine x“, ist ein Open Sou...

Ein Beispiel zum Schreiben eines großen Sonnenwettersymbols in reinem CSS

Wirkung Das Wirkungsdiagramm sieht wie folgt aus ...

CentOS 7.9 Installations- und Konfigurationsprozess von zabbix5.0.14

Inhaltsverzeichnis 1. Grundlegende Umgebungskonfi...