REPAIR TABLE에 대한 MySQL의 문서는MyISAM을 사용하는 MySQL의 REPAIR TABLE 중에 데이터가 손실되는 원인은 무엇입니까?
그것은 테이블 수리를 작업을 수행하기 전에 테이블 의 백업을하는 것이 가장 좋습니다한다고; 일부 상황에서는 작업으로 인해 데이터가 손실 될 수 있습니다. 가능한 원인은 을 포함하지만 파일 시스템 오류로 제한되지 않습니다.
파일 시스템 오류 외에 다른 데이터 손실 원인이 있는지 알고 싶습니다. 이걸 야생에서 본 사람 있어요? 파일 시스템 오류가없는 경우 복구로 인해 데이터가 손실 될 가능성은 얼마나됩니까?
제 구체적인 상황은 다음과 같습니다. Sun T5120 서버에서 Solaris 10 (SPARC)을 실행 중이고 MySQL 5.1.30을 사용 중입니다. 가끔 손상되는 MyISAM 엔진을 사용하는 테이블이 있습니다. 테이블이 손상된 경우는 UPS가없는 개발 시스템의 예기치 않은 정전으로 인한 것입니다. 모든 부패가 정전으로 인한 것인지 확신 할 수 없기 때문에 이러한 일이 발생하는 몇 가지 추가적인 이유가있을 수 있습니다. 같은 원인이 나열된 here.
생산 시스템에서 "추가 원인"이 의심되거나 생산 UPS가 실패 할 경우 자동 복구 솔루션을 설치하고 싶습니다. 내가 this answer에 제안 된 것과 같이 mysqlcheck --auto-recover
을 실행하도록 cron 작업을 설정하거나 손상을 감지했을 때 REPAIR TABLE EXTENDED
명령을 즉시 수행하도록 해당 테이블에 삽입하는 프로세스를 수정할 수 있습니다. 그러나 두 방법 모두 REPAIR TABLE
을 사용하므로 데이터 손실의 위험이 있습니다.
설명서에 나와 있듯이 복구하기 전에 테이블을 백업 할 수는 있지만 테이블이 너무 커서 백업을위한 공간을 확보 할 수 있을지 확신하지 못합니다. 일부 검색을 수행 한 적이 있지만 REPAIR TABLE
이 설명서에 언급 된 것 이외의 데이터 손실을 초래하는 이유에 대한 설명을 찾지 못했습니다. 그래서 당신이 사운드 파일 시스템을 가지고있을 때 수리가 데이터를 잃을 가능성이 있습니까, 아니면 단지 신중한 문서입니까?
오늘 받으시는 모든 답변은 가까운 시일 내에 사실이 될 수 있습니다. –
Heath에게 경고 해 주셔서 감사합니다. 그러나 현재 버전에서 MySQL 설치를 업그레이드 할 것으로 기대하지는 않습니다. 모든 것이 그대로 작동하며 관리는 어떤 변화에도 전혀 저항하지 않습니다. –