Was ist die Protokollsequenznummer? Wie wird es in MySQL verwendet?

7

Kann jemand ein Beispiel oder Szenario für die in MySQL verwendete Protokollsequenznummer (LSN) angeben?

Siva
quelle

Antworten:

5

Aus dem mysqlperformanceblog

Protokollsequenznummer (LSN): Die Protokollsequenznummern entsprechen der angegebenen Position in den Protokolldateien und werden normalerweise für jeden Protokolldatensatz erhöht. Innodb verwendet die Anzahl der Bytes, die jemals in die Protokolldateien geschrieben wurden. Dies kann jedoch auch anders sein. LSNs werden häufig in großem Umfang bei Zeige- und Pufferverwaltungsvorgängen für Wiederherstellungsprüfungen verwendet. Wenn ein Checkpoint (sowohl unscharf als auch nicht) auftritt, wird Folgendes angezeigt: "Alle Änderungen bis zu LSN = X werden jetzt in den Datenbereich übertragen." Dies bedeutet, dass Sie Protokolle für LSN früher verwerfen oder archivieren können. Bei der Überprüfung der Protokollwiederherstellung kann die LSN im Protokolldatensatz feststellen, ob diese Änderung angewendet werden muss oder bereits angewendet wurde (bei der Wiederherstellung wissen Sie nicht, welche fehlerhaften Seiten aus dem Pufferpool gelöscht wurden).

Die LSN beziehen sich nicht viel auf Transaktionen - Änderungen aus verschiedenen Transaktionen werden in den Protokolldateien gemischt, und viele LSNs können Änderungen aus derselben Transaktion entsprechen.

Weitere Referenzen finden Sie unter

1 Wie Sie die aktuelle Protokollsequenznummer in 5.0.X kennen .

2 So überprüfen Sie, ob Innodb-Protokolldateien groß genug sind

Abdul Manaf
quelle
Warum sind die LSN-Werte größer als 'Innodb_os_log_written'?
Siva