MySQL InnoDB 테이블 변경 - 어떤 파일이 관련되어 있고 그 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1201184

  •  05-07-2019
  •  | 
  •  

문제

InnoDB MySQL 테이블의 내용을 변경할 때 파일 시스템의 다음 파일이 관련/변경된 것으로 보입니다.

  • /path/to/mysql/data/[database]/[table].ibd (때문에 innodb_file_per_table)
  • /path/to/mysql/data/data/ib_logfile0
  • /path/to/mysql/data/data/ib_logfile1
  • /path/to/mysql/data/data/ibdata1

이 파일 각각에 대해 :

  1. 파일은 언제 생성됩니까?
  2. 파일은 언제 작성됩니까?
  3. 파일은 언제 읽을 수 있습니까?
  4. 파일이 손상되거나 삭제 된 경우 결과는 무엇입니까?
도움이 되었습니까?

해결책

/path/to/mysql/data/[database]/[table].ibd (due to innodb_file_per_table)

데이터가 저장되는 곳입니다. 테이블을 만들 때 만들어집니다.

/path/to/mysql/data/data/ib_logfile0
/path/to/mysql/data/data/ib_logfile1

이것들은 logfiles.

모든 데이터 변경 사항은 logfiles 순차적으로 쓰기 가공 로깅을 허용합니다 (트랜잭션에 중요)

/path/to/mysql/data/data/ibdata1

이것은 시스템 데이터와 UNDO 데이터가 저장됩니다.

만약에 ibdata 찾을 수 없습니다. MySQL 그것을 생각할 것입니다 InnoDB 엔진이 초기화되지 않고 새로운 것을 만듭니다 ibdata. 와 같다 logfiles.

쿼리가 테이블에 대해 발행되고 .ibd 파일을 찾을 수 없습니다. MySQL 이 메시지로 실패합니다.

테이블을 찾을 수 없습니다 database/table 내부 데이터 사전에서 InnoDB 그러나 .frm 테이블 파일이 존재합니다. 어쩌면 당신은 삭제하고 재현했을 것입니다 InnoDB 데이터 파일이지만 해당을 삭제하는 것을 잊었습니다 .frm 파일 InnoDB 테이블 또는 이동했습니다 .frm 다른 데이터베이스에 파일?

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