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

Verwenden von HTML+CSS zum Verfolgen von Mausbewegungen

Da Benutzer immer datenschutzbewusster werden und...

Vue implementiert die richtige Slide-Out-Layer-Animation

In diesem Artikelbeispiel wird der spezifische Co...

Probleme mit Join-Abfragen und Unterabfragen in MySQL

Inhaltsverzeichnis Grundlegende Syntax für Multi-...

Detaillierte Erläuterung der Konzepte und Verwendung von Docker Swarm

Docker Swarm ist ein von Docker entwickelter Cont...

Eine kurze Analyse der asynchronen DOM-Aktualisierung von Vue

Inhaltsverzeichnis Das Prinzip der asynchronen DO...

Verwenden Sie in JS nicht mehr überall Operatoren für absolute Gleichheit.

Inhaltsverzeichnis Überblick 1. Test auf Nullwert...

Beispielcode zur Implementierung einer schwebenden Seitenbox basierend auf JS

Wenn die Bildlaufleiste nach unten gezogen wird, ...

So stellen Sie eine Verbindung zum MySQL-Visualisierungstool Navicat her

Nach der Installation von Navicat Der folgende Fe...

Detaillierte Erklärung der Lösung für das Nginx-Panikproblem

In Bezug auf das Nginx-Panikproblem müssen wir zu...

MySQL implementiert den Vorgang zum Festlegen mehrerer Primärschlüssel

Benutzertabelle, ID-Nummer muss eindeutig sein, M...