집 >데이터 베이스 >MySQL 튜토리얼 >로그 파일을 통해 MySQL 데이터를 복원하는 방법
mysql 명령줄에 입력하고 다음 명령을 실행합니다.
mysql> show master status; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | binlog.000001 | 967 | | binlog.000002 | 965 | +------------------+-----------+
일반적으로 최신 숫자가 더 크며, 위의 최신 숫자는 binlog.000002
시작 위치와 끝 위치를 결정하는 방법에는 두 가지가 있습니다. 하나는 시간을 시작과 끝으로 사용하는 것이고, 다른 하나는 로그의 위치를 다음과 같이 사용하는 것입니다. 시작 및 끝 위치
를 사용합니다. mysql-bin.000002 명령을 사용하여 로그 내용을 확인한 후 삭제 시점을 찾습니다.
# 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== '/*!*/;
그런 다음 삭제 시점을 확인합니다. 마지막 백업 로그를 통해 마지막 백업 시점을 찾을 수 없는 경우 메모리에서 이전 백업 시점보다 작다고 알고 있는 시점을 입력할 수 있습니다. 위치 범위
mysql -uroot -p'password' -e "show binlog events in 'binlog.000002'"|grep -i 'DROP TABLE'
실행 결과는 다음과 같습니다.
binlog.000002 820474948 Query 1 820475111 use `loongwind_ base`; * 서버에서 생성됨 */ /* xid=11790691 */즉, 삭제된 위치는 820474948
이거나 위의 명령을 통해 키워드를 교체하여 마지막 백업의 위치 지점을 찾습니다
3.
3.1 시간별 복원mysqlbinlog --no-defaults --database=loongwind_base --start-datetime="2021-06-07 09:00:00" --stop-datetime="2021-06-10 16:37:58" binlog.000005 | mysql -uroot -p'password' -s -N -f -D loongwind_base
mysqlbinlog --start-position=1178 --stop-position=2751 -d dxmh-sy binlog.000002|mysql -uroot -p'password' -s -N -f -D loongwind_base loongwind_base 为数据库名称정말로 시작 시간이나 시작 위치를 찾을 수 없다면 --start-datetime 또는 쓸 필요가 없습니다. --start-position이므로 이것을 사용합니다. 기존 데이터와의 충돌을 방지하기 위해 로그 파일을 처음부터 끝까지 복원해야 합니다. 즉, 오류를 건너뛰고 계속 실행하도록 -f를 추가해야 합니다.
위 내용은 로그 파일을 통해 MySQL 데이터를 복원하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!