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.

War es hilfreich?

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top