MySQL InnoDB 테이블 변경 - 어떤 파일이 관련되어 있고 그 이유는 무엇입니까?
-
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
이 파일 각각에 대해 :
- 파일은 언제 생성됩니까?
- 파일은 언제 작성됩니까?
- 파일은 언제 읽을 수 있습니까?
- 파일이 손상되거나 삭제 된 경우 결과는 무엇입니까?
해결책
/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
다른 데이터베이스에 파일?
제휴하지 않습니다 StackOverflow