2017-02-02 3 views
1

최근에 우리 서버가 예기치 않게 종료되었고 다음에 MySQL을 시작하려고 할 때 오류가 발생했습니다. 데이터 백업이 없었기 때문에 데이터 폴더를 안전한 위치로 복사했습니다. 나는 ib 로그 파일과 ib 데이터 파일을 frm 및 ibd 파일과 함께 모든 데이터베이스 이름과 함께 가지고 있습니다. 데이터베이스를 복원하려면 어떻게해야합니까?INNODB로 MySQL 데이터 복구

내 데이터베이스와 테이블 이름을 MySQL Workbench에서 볼 수 있지만 테이블을 쿼리 할 때 테이블이 존재하지 않는다고 표시됩니다.

+1

서버 또는 Linux입니까? – Adrian

+1

SO에 오신 것을 환영합니다. 좀 더 자세한 정보를 제공해주세요 (질문 편집) : 충돌 전후에 파일을 복사 했습니까? 같은 PC에요? Windows/Linux? 어떤 오류가 발생합니까 (로그 참조)? Btw :이 질문이 http://dba.stackexchange.com에 더 적합한 지 확실하지 않습니다. – agold

+0

Windows를 사용하고 있습니다. 충돌 후 파일을 복사했습니다. 또한 mysql을 시작할 때 다음과 같은 오류가 발생합니다. ibdata 파일의 로그 시퀀스 번호 39493811412 및 39493811412가 ib_log 파일의 로그 시퀀스 번호 39493811432와 일치하지 않습니다. –

답변

1

이 단계는 매우 유사한 경우에 저를 도왔다 :

  1. 설정 innodb_force_recovery = 1을 my.cnf의 구성에 강제 이노을 시작합니다. 실제로 (다시) 서비스를 시작하는 것을 잊지 마십시오. MySQL이 지금 실행되고 있어야합니다.
  2. 사용 mysqldump는 SQL 덤프
  3. (선택적) 데이터베이스를 다시 추가 보조금
  4. 를 덤프 pt-show-grants를 사용하거나 ibdata을 삭제하고 ib_logfile 파일 (https://dba.stackexchange.com/questions/23361/innodb-force-recovery-when-innodb-corruption 참조)
  5. 가져 오기 모두 SQL 덤프를 만들려면 실제 데이터베이스를 덤프 및 보조금 덤프