백업 + binlog를 결합하여 데이터를 복원하세요.
시나리오: 어젯밤에 모든 준비를 마친 후 사용자가 오늘 아침에 실수로 테이블을 삭제했습니다.
해결 방법: 원래 프로덕션 환경에서 직접 복원하는 것은 권장되지 않습니다. 전체 데이터베이스 + 로그를 다른 머신에서 복원한 다음 프로덕션 환경으로 가져오는 것이 좋습니다.
1) 테이블 생성
select now(); create table itpuxfg1 ( `id` int(10) unsigned not null auto_increment, `name` varchar(16) not null, `sex` enum('m','w') not null default 'm', `age` tinyint(3) unsigned not null, primary key (`id`) ) engine=innodb default charset=utf8; insert into itpux.itpuxfg1(`name`,`sex`,`age`) values ('itpux1','w',21), ('itpux2','m',22), ('itpux3','w',23), ('itpux4','m',24), ('itpux5','w',25); commit; select * from itpux.itpuxfg1;
2) 백업 논리적 백업 만들기
mysqldump -uroot -p -F -R --all-databases > alldb_bak.sql
3) 아침에 비즈니스 운영 시뮬레이션
show master status; -- 154 select now(); -- 2018-04-27 06:27:40 update itpux.itpuxfg1 set name='itpux04' where id=4; commit; select * from itpux.itpuxfg1; select now(); -- 2018-04-27 06:28:03 update itpux.itpuxfg1 set name='itpux05' where id=5; commit; select * from itpux.itpuxfg1; show master status; -- 890
4) 정오에 실수로 삭제
select now(); -- 2018-04-27 06:29:00 drop table itpuxfg1; select * from itpux.itpuxfg1; show master status; -- 1078
5) 다른 머신에 복원 (제 경우는 로컬이므로 프로덕션은 로컬이 아니어야 합니다.)
show master status; 필요한 binlog를 백업하려면 이 파일 이름을 사용하세요
--binlog 로그를 복사하는 것을 기억하세요
'itpuxdb-binlog. 000003';
mysqlbinlog itpuxdb-binlog.000003 |grep "DROP TABLE"
mysqlbinlog itpuxdb-binlog.000003 |grep "itpuxfg1" (로그에는 두 가지 다른 버전이 있다는 점에 유의하세요. )
데모:
itpux 라이브러리 삭제 itpux;
복원:
먼저 데이터베이스 만들기:
mysql> 데이터베이스 itpux 기본 문자 집합 utf8을 만듭니다. 원래 데이터베이스에서 show create Database mysql;을 쿼리하는 것이 좋습니다.
mysql -uroot -p -o itpux
-- 복구 후 오늘 아침에 업데이트된 기록을 찾을 수 없습니다. ; 테이블 표시;
-- binlog 로그를 통한 증분 복구 테이블 삭제 전
[root@mysqldb binlog]# mysqlbinlog -vv --start-position=219 --stop-position=913 --database=itpux itpuxdb-binlog.000001 >sa.sql
-- 복원 테이블을 원래 데이터베이스에 넣습니다
먼저 다른 데이터베이스에서 테이블을 백업하세요
mysqldump -uroot -p itpux itpuxfg1 > 프로덕션 데이터베이스를 직접 복원합니다(원본 데이터베이스의 테이블이 삭제되었습니다)
mysql -uroot -p itpux
mysql> select * from itpuxfg1;
1) 이 테이블을 소스 데이터베이스로 복원하세요
mysqldump -uroot -p itpux itpuxfg1 > ;sa.sql
관련 권장 사항:
백업 없이 삭제된 mysql 데이터베이스를 복원하는 방법MySQL 복제 + 스냅샷 복구 실수로 삭제된 작업 실험 테스트
위 내용은 Mysql은 백업과 binlog를 결합하여 실수로 삭제된 작업 데이터를 복원합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!