[Datenbank] Prüfpunkt in der Datenbank, ein wichtiger Moment für die Speicherung von Daten auf der Festplatte

Kontrollpunkt

Ihr Inhalt:

  • Handschriftliche Datenbank-Toadb
    In dieser Kolumne werden hauptsächlich die Entwicklung von Grund auf, die Entwicklungsschritte, die Prinzipien des Entwicklungsprozesses, aufgetretene Probleme usw. vorgestellt, damit jeder es kann Mithalten. Und gemeinsam weiterentwickelt werden, sodass jeder, der es braucht, zum Teilnehmer werden kann.
    Diese Spalte wird regelmäßig aktualisiert, und der entsprechende Code wird ebenfalls regelmäßig aktualisiert. Der Code in jeder Phase wird mit Tags versehen, um das Lernen in jeder Phase zu erleichtern.

Open-Source-Beitrag

Persönliche Homepage:Meine Homepage
Community verwalten: < /span>Motto: Wenn der Himmel stark ist, wird ein Gentleman danach streben, sich selbst zu verbessern; wenn das Gelände schwach ist, wird ein Gentleman sein Bestes tun Reichtum mit Freundlichkeit.Open-Source-Datenbank


Fügen Sie hier eine Bildbeschreibung ein

Vorwort

Mit der rasanten Entwicklung der Informationstechnologie sind Daten in verschiedene Bereiche vorgedrungen und zu einem der wichtigsten Vermögenswerte der modernen Gesellschaft geworden. Im Zeitalter von Big Data spielt die Datenbanktheorie eine entscheidende Rolle bei der Datenverwaltung, -speicherung und -verarbeitung. Viele Leser sind jedoch möglicherweise verwirrt über die Datenbanktheorie und wissen nicht, wie sie eine geeignete Datenbank auswählen, eine effektive Datenbankstruktur entwerfen und große Datenmengen verarbeiten und verwalten. Ziel dieser Kolumne ist es daher, den Lesern einen umfassenden und ausführlichen Leitfaden zur Datenbanktheorie zu bieten, der ihnen hilft, die Datenbanktechnologie besser zu verstehen und anzuwenden.

Die Datenbanktheorie befasst sich mit der effektiven Verwaltung, Speicherung und dem Abruf von Daten. In der modernen Informationsgesellschaft wächst die Datenmenge exponentiell und die effiziente Verarbeitung und Verwaltung dieser Daten ist zu einem wichtigen Thema geworden. Gleichzeitig ist mit der kontinuierlichen Entwicklung neuer Technologien wie Cloud Computing, Internet der Dinge und Big Data die Bedeutung der Datenbanktheorie immer wichtiger geworden.

Daher soll durch das Teilen dieser Kolumne das Wissen und Verständnis aller über die Datenbanktheorie verbessert und interessierten Freunden geholfen werden.

Überblick

In diesem Artikel wird anhand einer Frage erläutert, was Kontrollpunkte sind und welche Vorteile sie mit sich bringen können.

Frage

Im vorherigen Datenprotokoll dieser Spalte wurde eingeführt, dass bei einem Systemausfall die fehlerhaften Daten im Puffer verloren gehen und durch Redo- und Undo-Protokolle wiederhergestellt werden können, um Datenkonsistenz und -integrität zu erreichen.

Dann kommt das Problem:
Die Redo- und Undo-Logs beginnen mit der Aufzeichnung, wenn sie aus der Datenbank erstellt werden. Die Datenbank läuft im Allgemeinen über einen langen Zeitraum, gegebenenfalls sogar über mehrere Jahre so viele Das Protokoll ist möglicherweise größer als die Daten selbst. In einer Datenbank, die häufig aktualisiert wird, kann das Protokoll leicht die Festplatte sprengen. Wie kann dieses Problem gelöst werden?

Lösung

In Protokollen von vor langer Zeit wurden einige Transaktionen übermittelt und die Daten auf die Festplatte gelegt. Tatsächlich sind diese Protokolle nicht mehr nützlich. Selbst wenn ein Systemfehler auftritt, müssen die diesen Protokollen entsprechenden Daten nicht sein wiederhergestellt, weil ihre entsprechenden Daten Es ist dauerhaft geworden.

Wir müssen also einen Zeitpunkt finden. Schmutzige Seiten und alle Protokolle, die vor diesem Zeitpunkt aufgetreten sind, müssen auf die Festplatte geleert werden. Nach diesem Zeitpunkt ist es nicht mehr erforderlich, das Leeren auf die Festplatte zu erzwingen. Dann die Protokolle vor diesem Zeitpunkt können bereinigt werden. .

Dieser Zeitpunkt wird als Prüfpunkt bezeichnet, der einen Trennpunkt hinzufügt, um den Protokollspeicherzeitraum und den Wiederherstellungsumfang zu verkürzen.

Wie führt man diesen Kontrollpunkt durch? Es gibt zwei Möglichkeiten.

statischer Kontrollpunkt

Beim Durchführen eines Prüfpunkts müssen Sie sicherstellen, dass die aktuellen Protokolle und fehlerhaften Seiten auf die Festplatte geschrieben werden. Um sicherzustellen, dass während des Prüfpunkt-Schreibvorgangs keine fehlerhaften Seiten und Protokolle generiert werden, kann die Datenbank den Prüfpunkt beim Durchführen des Prüfpunkts nicht bereitstellen Checkpoint-Aktion. Service, stellen Sie nach Abschluss des Checkpoints weiterhin Dienste bereit.

Auf diese Weise können während des Checkpoints alle aktuellen fehlerhaften Seiten und Protokolle auf die Festplatte geleert werden, was relativ einfach ist.

Checkpointing ist jedoch auch eine sehr häufige Aktion, wenn das Datenbankgeschäft ausgelastet ist. Wir können das Geschäft nicht häufig unterbrechen. Ist das noch möglich?

nicht statischer Kontrollpunkt

Leider können moderne Datenbanken nach der Entwicklung Checkpoints durchführen, während das Unternehmen läuft. Der Prozess ist wie folgt:

  • Kontrollpunkt starten
  • Zeichnen Sie einen Snapshot der aktuellen Datenbank auf
  • Beginnen Sie damit, fehlerhafte Seiten und Protokolle zu löschen, die älter als der Snapshot sind
  • Der Checkpoint endet

Hier ist ein zusätzlicher Schritt zum Aufzeichnen des Snapshots und zum anschließenden Hinzufügen eines Vergleichs mit dem Snapshot beim Herunterladen, um sicherzustellen, dass alles vor dem Prüfpunkt heruntergeladen wurde.
Das Prinzip ist natürlich das Folgende. Die Implementierung verschiedener Datenbanken ist unterschiedlich. Beispielsweise zeichnet Postgresql Snapshots über die LSN des Protokolls auf. Ältere LSN müssen gelöscht werden;

Zusammenfassen

Der Checkpoint-Mechanismus erzwingt, dass fehlerhafte Seiten regelmäßig auf die Festplatte geleert werden, wodurch die Protokollspeicherdauer verkürzt und auch die Wiederherstellungsdauer verkürzt wird. Natürlich muss dieser Zyklus entsprechend der Geschwindigkeit konfiguriert werden, mit der das Unternehmen Protokolle generiert, wobei Leistung und Speicherplatz ausgeglichen werden müssen, um ein zu schnelles Leeren der Festplatten zu vermeiden.

Um sowohl Gemüse als auch Fleisch zu teilen, fügen Sie unten einen Hallo-Welt-Code ein.
Das Folgende ist ein einfaches Beispiel für ein Startprogramm, das nach dem Einschalten von der angegebenen Ladeadresse aus ausgeführt werden kann. und geben Sie „Hallo“ aus:

ORG 0x7c00    ;指定加载地址为0x7c00

start:
    mov ax, cs   ;将cs寄存器的值加载到ax寄存器中
    mov ds, ax   ;将ds寄存器的值设置为cs寄存器的值

    mov si, msg  ;将消息的地址存储在si寄存器中
    call print   ;调用print函数打印消息

    jmp end     ;跳转到程序结束处

print:
    lodsb         ;将si指向的字符串中的下一个字符加载到al寄存器中
    or al, al   ;判断al寄存器中的值是否为0
    jz end      ;如果是0,跳转到程序结束处
    mov ah, 0x0e ;将0x0e存储在ah寄存器中,表示在屏幕上打印字符
    int 0x10     ;调用BIOS中断,将字符打印到屏幕上
    jmp print   ;继续打印下一个字符

end:
    jmp $         ;无限循环,程序结束处

msg db 'Hello', 0 ;消息以0结尾

Das Programm ist in Assembler geschrieben und kann auf Simulatoren wie Bochs und QEMU ausgeführt werden. Nachdem das Programm geladen wurde, wird es ab der Adresse 0x7c00 ausgeführt, gibt die Zeichenfolge „Hallo“ aus und tritt in eine Endlosschleife ein.

Ende

Vielen Dank für Ihre Unterstützung. Vergessen Sie nicht, beim Stöbern Ihre wertvollen Kommentare zu hinterlassen. Wenn Sie der Meinung sind, dass es eine Ermutigung wert ist, liken Sie es bitte und speichern Sie es. Ich werde härter arbeiten!

E-Mail des Autors: [email protected]
Wenn es Fehler oder Auslassungen gibt, weisen Sie bitte darauf hin und lernen Sie voneinander.

Supongo que te gusta

Origin blog.csdn.net/senllang/article/details/134560804
Recomendado
Clasificación