묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
db가 자꾸 깨집니다...
2005.06.06 23:09
가끔씩 서버에 에러 메세제가 뜨면서
db가 깨지네요.. 왜 그런지, 스페이스 태그 쪽에 물어봐야겠네요;
아무튼 랜덤하게(?) 몇몇 테이블이 깨지는데,
그 안의 데이터는 phpmyadmin으로 보면 그대로 있는 것 같은데요
홈페이지에서 보면
Got error 127 from table handler
어쩌구 fetch_array() 어쩌구
등의 에러가 뜨네요.
검색해보니 db와의 연결이 잘 안되서라는데,
phpmyadmin으로 봐서 멀쩡하길래 데이타 하나 추가했더니 완전히 깨져버리네요.
일부분만 손상된 것 같은데...
db가 깨지네요.. 왜 그런지, 스페이스 태그 쪽에 물어봐야겠네요;
아무튼 랜덤하게(?) 몇몇 테이블이 깨지는데,
그 안의 데이터는 phpmyadmin으로 보면 그대로 있는 것 같은데요
홈페이지에서 보면
Got error 127 from table handler
어쩌구 fetch_array() 어쩌구
등의 에러가 뜨네요.
검색해보니 db와의 연결이 잘 안되서라는데,
phpmyadmin으로 봐서 멀쩡하길래 데이타 하나 추가했더니 완전히 깨져버리네요.
일부분만 손상된 것 같은데...
댓글 3
-
emppu
2005.06.06 23:17
-
현원
2005.06.06 23:19
-ㅁ-;; 어 신기하네요.. 가끔씩이라는 부분이 걸리는데요.. 아마 서버 문제일거 같군요 ;; -
티니
2005.06.14 12:18
일단.. db가 깨지는 원인은 많습니다. 깨지는 코드도 127 145 등이 있고요.
우선 복구 하는 방법을 알려드릴께요.
셸프롬프트에서 myisamchk -c 테이블네임.MYI
하시면 해당 테이블의 상태를 체킹 해줍니다.
그리고 myisamchk -r 테이블네임.MYI 하시면 recover (repair가 아닙니다.)가 되죠.
만약에 좀더 안정적이게 복구를 하고 싶다면 myisamchk -ro 옵션을 주면 되겠습니다.
-o는 safe_recover 옵션이거든요.
그런데 위 myisamchk -ro로도 복구가 안되는 테이블이 있습니다.
이런 경우에는 직접 mysql에 접속해서 복구를 하셔야겠지요.
mysql -u ex -p ex
접속하신뒤 use ez; 하시면 자신의 db 이용이 가능합니다.
그 상태에서 repair table 테이블네임; 하시면 복구가 됩니다.
만약에 위 방법으로 안된다면.. 여러가지 삽질을 해봐야 겠지요..
추신. 반드시 복구하기전 백업을 해놓고 복구 시도를 하십시요.
(head부분만 깨진 것 같아요...
phpmyadmin으로 하나라도 건들면 깨져요..보기만 하면 되는데)
db가 깨지는 원인들 좀 알려주세요..