Heim  >  Artikel  >  Datenbank  >  So stellen Sie MySQL-Daten über Protokolldateien wieder her

So stellen Sie MySQL-Daten über Protokolldateien wieder her

王林
王林nach vorne
2023-05-26 15:49:063451Durchsuche

    1. Suchen Sie die neueste Binlog-Datei. Geben Sie die MySQL-Befehlszeile ein und führen Sie den folgenden Befehl aus Ich möchte die Start- und Endpositionen in der Protokolldatei wiederherstellen

    Es gibt zwei Möglichkeiten, die Start- und Endposition zu bestimmen: Eine besteht darin, die Zeit als Start und Ende zu verwenden, die andere darin, die Position des Protokolls als zu verwenden die Start- und Endposition

    2.1, verwenden Sie den Zeitbereich

    bis mysqlbinlog Verwenden Sie den Befehl mysql-bin.000002, um den Protokollinhalt anzuzeigen, und suchen Sie dann den Zeitpunkt des Löschens:

    mysql> show master status;
    +------------------+-----------+
    | Log_name         | File_size |
    +------------------+-----------+
    | binlog.000001 |       967 |
    | binlog.000002 |       965 |
    +------------------+-----------+

    Bestimmen Sie dann den Zeitpunkt des letzte Sicherung. Wenn Sie den Zeitpunkt der letzten Sicherung nicht im Protokoll finden können, können Sie einen Zeitpunkt eingeben, von dem Sie wissen, dass er kleiner als der vorherige in Ihrem Speicher ist. Den Zeitpunkt der Sicherung verwenden Sie Positionsbereich: Verwenden Sie den folgenden Befehl, um die Position des Protokollereignisses anzuzeigen. * vom Server generiert */ /* xid=11790691 */

    Das heißt, die gelöschte Position ist 820474948

    oder ersetzen Sie mit dem obigen Befehl das Schlüsselwort, um den Positionspunkt der letzten Sicherung zu finden

    3

    3.1 Wiederherstellung nach Zeit

    # at 131708213
    #210610 11:27:01 server id 1  end_log_pos 131708311 CRC32 0x0fc755e2     Table_map: `loongwind_base`.`xxxx` mapped to number 139
    # at 131708311
    #210610 11:27:01 server id 1  end_log_pos 131708411 CRC32 0xa91616b9     Write_rows: table id 139 flags: STMT_END_F
    
    BINLOG '
    BffBYBMBAAAAYgAAAJe12QcAAIsAAAAAAAEADmR4bWhfYmFzZV9oenN5ABpkeF9zeV9hc3NldHNf
    ZXh0ZW5kc19jb3B5MQAICAgIDwgSCBIEAAgAAPgBAQACA/z/AOJVxw8=
    BffBYB4BAAAAZAAAAPu12QcAAIsAAAAAAAMAAgAI/wDRAwAAm1M8AUIAAADRUjwBCgAAAFYL5gAM
    AOWFrOWuieacuuWFs7EBAADbwZkAmama6E+xAQAA28GZAJmpmuhPuRYWqQ==
    '/*!*/;

    wobei dxmh_base_hzsy der Datenbankname ist

    3.2 Wiederherstellung nach Position

    mysql -uroot -p'password' -e "show binlog events in 'binlog.000002'"|grep -i 'DROP TABLE'
    Wenn Sie die Startzeit oder Startposition wirklich nicht finden können, müssen Sie nicht --start-datetime oder schreiben --start-position, also verwenden Sie dies Die Protokolldatei wird vom Anfang bis zum Ende wiederhergestellt. Um Konflikte mit vorhandenen Daten zu vermeiden, müssen Sie -f hinzufügen, dh erzwingen, Fehler zu überspringen und die Ausführung fortzusetzen.

    Das obige ist der detaillierte Inhalt vonSo stellen Sie MySQL-Daten über Protokolldateien wieder her. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen