답변:
어떤 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
아래 단계를 사용하여 이진 로그에서 데이터를 복원하거나이 링크를 사용하여 복원 프로세스를 이해 하십시오 . 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