이진 로그에서 데이터를 복원하는 방법


11

이진 파일에서 파일과 사진을 어떻게 복원 할 수 있습니까?

답변:


7

어떤 binlog 파일을 복원해야하는지 그리고 얼마나 많은 binlog 파일이 있는지 알고 있습니까?

mysqlbinlog유틸리티를 사용 하여 binlog 파일 내용을 볼 수 있습니다.

단일 파일 인 경우 다음을 사용하여 복구 할 수 있습니다.

mysqlbinlog /var/lib/mysql-bin.000016 | mysql uroot pReset123

파일이 여러 개인 경우 모든 컨텐츠를 하나의 .sql 파일로 추출하여 직접 복원하십시오.

mysqlbinlog /var/lib/mysql-bin.000016 > /logs/allbinlog.sql

allbinlof.sql 파일에 두 번째 binlog 컨텐츠를 추가하려면 아래 명령을 사용하십시오.

mysqlbinlog /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql

mysqlbinlog 옵션을 사용하여 특정 명령문을 제외 할 수도 있습니다. 옵션에 대해서는 아래를 시도하십시오.

mysqlbinlog --help

4

아래 단계를 사용하여 이진 로그에서 데이터를 복원하거나이 링크를 사용하여 복원 프로세스를 이해 하십시오 . MySQL Binary Log Restoration

먼저 최신 백업에서 데이터베이스를 복원하십시오.

mysql -u username -ppassword database_name < dump.sql

그런 다음 중 하나를 수행하십시오.

  • 이진 로그에서 나머지 데이터를 복원하십시오.

    MySQL 서버에서 실행할 이진 로그가 둘 이상인 경우 안전한 방법은 서버에 대한 단일 연결을 사용하여 모두 처리하는 것입니다.

    mysqlbinlog mysql_bin.000001 | mysql -u root -ppassword database_name
    mysqlbinlog mysql_bin.000002 | mysql -u root -ppassword database_name

    또는:

    mysqlbinlog mysql_bin.000001 mysql_bin.000002 | mysql -u root -ppassword database_name
  • 시간을 기준으로 데이터 복원

    mysqlbinlog --start-datetime="2005-04-20 10:01:00" \
                --stop-datetime="2005-04-20 9:59:59" mysql_bin.000001 \
                | mysql -u root -ppassword database_name
  • 위치를 기준으로 데이터 복원

    mysqlbinlog --start-position=368315 \
                --stop-position=368312 mysql_bin.000001 \
                | mysql -u root -ppassword database_name

2
하나 이상의 이진 로그를 복원하는 첫 번째 예는 설명서에 명시된 바와 같이 안전하지 않습니다.
Reuben

2

-v 옵션을 사용하여 .sql 파일을 READABLE 형식으로 만들 수 있습니다 .

예를 들어

mysqlbinlog -v /var/lib/mysql-bin.000016 > /logs/allbinlog.sql

mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.