본문 바로가기
Database/MYSQL

Innodb tableapsce error & 테이블 삭제 안될경우

by 반화넬 2021. 10. 18.
반응형

동일 테이블 구조를 알고 있는 상태에서 테이블 백업본을 이용하여 복구하는건 

 

1. 로그 반영

2. 테이블스페이스 DISCARD

3. 테이블스페이스 IMPORT

 

이렇게하면 되지만 갑자기 테이블스페이스 연결을 못하고 테이블도 drop이 안될경우가 있는데

이때 테이블을 삭제하고 싶다면 아래 방식으로 하면됩니다. 

 

 

#  mysql -uroot -p --skip-auto-rehash
# drop table 삭제할테이블명;
# rm -f 삭제할테이블명.*
> 해당 DB .ibd 파일 등 테이블 정보 삭제 

 

# 참고 내용

  • --auto-rehashTo complete a name, enter the first part and press Tab. If the name is unambiguous, mysql completes it. Otherwise, you can press Tab again to see the possible names that begin with what you have typed so far. Completion does not occur if there is no default database.
  • Note
  • This feature requires a MySQL client that is compiled with the readline library. Typically, the readline library is not available on Windows.
  • Enable automatic rehashing. This option is on by default, which enables database, table, and column name completion. Use --disable-auto-rehash to disable rehashing. That causes mysql to start faster, but you must issue the rehash command or its \# shortcut if you want to use name completion.

# 참고내용 번역(구글번역)

  • --auto-rehash이름을 완성하려면 첫 번째 부분을 입력하고 Tab 키를 누릅니다. 이름이 모호하지 않으면 mysql 이 이름을 완성합니다. 그렇지 않으면 Tab 키를 다시 눌러 지금까지 입력한 이름으로 시작하는 가능한 이름을 볼 수 있습니다. 기본 데이터베이스가 없으면 완료되지 않습니다.
  • 메모
  • 이 기능을 사용하려면 readline 라이브러리로 컴파일된 MySQL 클라이언트가 필요합니다 . 일반적으로 Windows 에서는 readline 라이브러리를 사용할 수 없습니다.
  • 자동 재해싱을 활성화합니다. 이 옵션은 기본적으로 켜져 있으며 데이터베이스, 테이블 및 열 이름 완성을 활성화합니다. 사용 --disable-auto-rehash 하지 않도록 재해 싱 (rehashing)에. 그러면 mysql 이 더 빨리 시작되지만 이름 완성을 사용 하려면 rehash명령이나 \#바로 가기를 실행 해야 합니다 .

 

 

 

비부분을 고아 테이블(Orphan Table) 인한 CREATE TABLE 오류라고 합니다.

동기화되지 않은 데이터 사전의 증상은 CREATE TABLE 문이 실패한다는 것입니다.  경우 서버의 오류 로그를 확인합니다. 로그에 테이블이 InnoDB 내부 데이터 사전 내에 이미 존재한다고 표시되면 InnoDB 테이블 스페이스 파일 내에 해당 .frm 파일이 없는 고아 테이블이있는 것입니다. 

-skip-auto-rehash

오류 메시지에 제공된 지시 사항에 따라 고아 테이블(Orphan Table) 삭제할  있습니다. 여전히 DROP TABLE 사용할  없다면, mysql 클라이언트에서 이름이 완성되어 문제가 발생한 것일  있습니다.  문제를 해결하려면 --skip-auto-rehash 옵션으로 mysql 클라이언트를 시작하고 DROP TABLE 다시 시도합니다.

 

DROP TABLE 처리이후 해당 테이블의 Data 파일을 삭제하고 해당 테이블을 재생성하면 정상 이용 가능합니다.

이후 필요한 data는 재등록해주거나 구조에 맞게 복원하면 최종 완료됩니다. 

 

#mysql #innodb #percona #Orphan #auto-rehash  #skip-auto-rehash

반응형