문제

MySQL 5.0에서 실수로 삭제된 데이터베이스를 복원해야 합니다.백업 파일을 확인해 보니 데이터베이스 데이터를 보관하는 데 .FRM 파일만 있는 것 같습니다.

이것이 백업에서 데이터베이스 복원/가져오기를 수행하는 데 필요한 전부인지 아니면 이 작업을 완료하기 위해 손으로 처리해야 하는 다른 파일이 있는지 조언해 줄 수 있는 사람이 있습니까?

도움이 되었습니까?

해결책

.frm 파일은 데이터 파일이 아니며 단지 "데이터 사전 정보"만 저장합니다(참조: MySQL 매뉴얼).InnoDB는 데이터를 ib_logfile* 파일에 저장합니다.이것이 백업/복원을 수행하기 위해 필요한 것입니다.자세한 내용은 다음을 참조하세요. 여기.

다른 팁

innodb 복원 중:(데이터 폴더가 C:\ProgramData\MySQL\MySQL Server 5.5\data라고 가정)

  1. 복원하려는 데이터베이스 폴더(데이터베이스 이름을 따라 명명됨)를 C:\ProgramData\MySQL\MySQL Server 5.5\data에 복사합니다.
  2. 3개의 ibdata 파일을 데이터 폴더에 복사합니다.(C:\ProgramData\MySQL\MySQL 서버 5.5\데이터)

    _ib_logfile0
    _ib_logfile1
    _ibdata1
    
  3. 파일 마우스 오른쪽 버튼 클릭 -> 속성을 ​​통해 _ib_logfile0의 크기를 MB 단위로 가져옵니다(_ib_logfile1과 동일해야 함).

  4. innodb_log_file_size=343M에 대한 mysql 구성 파일(mysql\bin\my.ini)을 ibdata 파일 크기와 정확히 일치하도록 편집합니다.

  5. 달리다

    mysqld-defaults-file = mysql bin bin my.ini-standalone-console-innodb_force_recovery = 6

  6. 이제 데이터가 데이터베이스에 다시 저장되어야 합니다.phpmysql 또는 기타 도구를 사용하여 내보내기

어머...당신은 어려움에 처해있다.데이터베이스를 종료합니다.innodb 파일을 백업합니다.데이터베이스를 삭제한 후에는 아무 것도 하지 않기를 기도하십시오.

Percona 직원(MySQL 성능 블로그 작성자 포함)이 도움을 드릴 수 있습니다. 페르코나 긴급지원.

혼자서 모험을 한다면 다음을 가지고 가십시오: Innodb용 데이터 복구 툴킷.

그것의 물류?모든 페이지를 읽어야 합니다(컴퓨터 용어 페이지...Innodb의 경우 16k 블록)을 넣고 그런 식으로 데이터를 다시 빌드하세요.이는 매우 낮은 수준의 작업입니다(툴킷이 이를 수행하지 않으면 16진수 편집기를 열고 바이트 계산을 시작하는 것입니다). 경험이 풍부한 프로그래머가 아니라면 상처를 입을 것입니다. .

자세한 솔루션은 여기에서 찾을 수 있습니다:

http://www.unilogica.com/mysql-innodb-recovery/ (포르투갈어로 된 기사)

국기 외에도 innodb_force_recovery, 다른 해결책을 찾았습니다. innodb_file_per_table, 이는 MyISAM 테이블처럼 각 파일에서 InnoDB 테이블을 분할합니다.

충돌 복구에서는 단일 파일보다 손실되는 데이터가 적습니다. ibdata1.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top