sourcecode

mariadb - 테이블 XXX가 엔진에 없습니다.

copyscript 2023. 10. 21. 10:40
반응형

mariadb - 테이블 XXX가 엔진에 없습니다.

그래서 ALTER TABLE ADD COLUMN 이후에 int()가 아닌 10진수()가 되어야 한다는 것을 깨달았습니다.칼럼을 추가하는 것은 저녁 식사가 빨랐습니다.알터테이블 드롭 칼럼(큰 실수, gh-host 사용했어야 함)을 했을 때 테이블이 50GB 정도로 꽤 크고 파티션이 되어 있기 때문에 문제가 될 것이라는 것을 알았습니다(한 달에 한 개).어쨌든 제가 작동 상태로 놔뒀다가 돌아왔을 때 터미널이 시간 초과되어 프로세스가 실패한 것이 분명합니다.테이블은 여전히 "show tables"에 있지만 선택 시 엔진에 존재하지 않는다고 표시됩니다.ibd 파일이 data dir에 있습니다.

enter image description here

select * from SPX_21;

오류 1932 (42S02):테이블 'cellpage_MRA'SPX_21'이(가) 엔진에 없습니다.

ls의 data dir는 다음을 보여줍니다.

enter image description here

오류 로그는 기본적으로 Innodb 엔진과 mariadb 사이에 불일치가 있음을 보여줍니다.

2021-05-01 19:25:58 24 [경고] InnoDB: Table cellpage_MRA/SPX_21#P#p0에는 InnoDB에는 5개의 사용자 정의 열이 있지만 MariaDB에는 6개의 열이 있습니다.INFORMATION_SCHEMA를 확인해주시기 바랍니다.문제 해결 방법은 INNODB_SYS_COLUMNS 및 https://mariadb.com/kb/en/innodb-data-dictionary-troubleshooting/ 에서 확인할 수 있습니다.

링크는 전혀 도움이 되지 않습니다.

ibd 데이터를 mariadb 테이블에 어떻게든 다시 동기화 할 수 있는 방법이 있습니까?

show table status는 단순히 테이블 이름이 표시되지만 해당 테이블에 대한 다른 모든 것은 null입니다.

show table status where Name like '%SPX_21%'

enter image description here

그러나 정보 스키마는 모든 것이 잘되어 있음을 보여 줍니다??? 또는 그것이 정의되어야 할...

SELECT * 
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES 
WHERE NAME LIKE '%SPX_21%';

enter image description here

SELECT * 
FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
WHERE TABLE_ID>=60244 and TABLE_ID<=60253;

For All partitions

열 정의에 스키마의 모든 파티션에 대해 5개의 열이 표시됩니다.

어떤 도움이라도 주시면 감사하겠습니다.

감사해요.

가능한 해결책.https://www.percona.com/blog/2013/04/22/how-to-recover-table-structure-from-innodb-dictionary/

언급URL : https://stackoverflow.com/questions/67352542/mariadb-table-xxx-doesnt-exist-in-engine

반응형