Innobackupex:So extrahieren Sie einzelne Dateien aus xbstream-komprimierten Backups
-
28-09-2020 - |
Frage
Wir erstellen ein Skript für eine Mischung aus vollständigem und inkrementellem Backup-Setup für unser Produkt-Backend, wobei der Sonntag an allen verbleibenden Tagen ein vollständiges Backup und ein inkrementelles Backup auslöst.
In diesem Prozess sollten wir in der Lage sein, die LSN-Nummer einer Datei aus der vollständigen Sicherungsdatei zu lesen.
Wir haben das Skript so eingerichtet, dass es die Sicherung in das xbstream-Format komprimiert, sodass eine einzige Datei alle Daten komprimiert.
Nun stellt sich die Frage, wie man die LSN oder eine einzelne Infodatei aus der kompletten xbstream-Datei extrahiert bzw. liest.
Obwohl wir hierfür eine Protokolldatei verwenden können, wollten wir eine zuverlässigere Lösung.
Danke schön.
Lösung
XtraBackup protokolliert nicht nur die aktuellste LSN xtrabackup_info
was Sie extrahieren müssen, aber auch nach STDERR:
150731 16:33:28 innobackupex: Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...
150731 16:33:28 innobackupex: Waiting for log copying to finish
xtrabackup: The latest check point (for incremental): '1948062848'
xtrabackup: Stopping log copying thread.
.>> log scanned up to (1948062848)
Die LSN wäre 1948062848
.Zeichenfolge finden xtrabackup: The latest check point (for incremental):
in der Ausgabe.Sehen http://bazaar.launchpad.net/~twindb-dev/twindb-agent/trunk/view/head:/twindb.py#L1888 Zum Beispiel:
def grep_lsn(output):
"""
Finds LSN in XtraBackup output
:param output: string with Xtrabackup output
:return: LSN
"""
lsn = None
for line in output.split("\n"):
if line.startswith("xtrabackup: The latest check point (for incremental):"):
lsn = line.split("'")[1]
return lsn
Dann pass 1948062848
mit --incremental-lsn=
Option, wenn Sie eine inkrementelle Kopie erstellen.Beispiel: http://bazaar.launchpad.net/~twindb-dev/twindb-agent/trunk/view/head:/twindb.py#L1429
if backup_type == 'incremental':
last_lsn = job["params"]["lsn"]
xtrabackup_cmd.append("--incremental")
xtrabackup_cmd.append(".")
xtrabackup_cmd.append("--incremental-lsn=%s" % last_lsn)