마스터포유(Master4U)
Monday, 17 of January
 

로그인 Category
mysql 디비 데이터 복구방법
김인호  2006-03-09 12:03:45 Hit:1813
링크 #1: http://www.koreaphp.co.kr/tip_board/board_read.php?page=2&block=1&no=32&cate=33&parent=3


글쓴이 : 오렌지블루
  저작권자 이메일 :

출처 : 아주 특별한 웹데이터베이스 MySQL
  작성일 : 2002/04/24 13:33:55



글내용

  
[팁] MySQL 의 isamchk 와 myisamchk


일단 지금 제가 작성하는 이 내용은 순전히 200%....

"아주 특별한 웹데이터베이스 MySQL" 이란 책을...

100% 도 아닌 200% 그대로 배껴 적어놓은 것임을 말씀드리겠습니다....

저기 돌 던지려고 짱돌 찾은시는 분들.....

그냥.. 좋은 내용이라서 소개한다고 생각하고...

살포시 집어들던 짱돌을 도로 내려 놓아주셨으면 대단히 감사하겠습니다.

일단.....

Mysql 이 안정적이긴 하지만..... 기타 자잘하게 생길수 있는

오류들을 바로잡고.. 테이블의 유지..보수를 위한 것입니다.

isamchk 와 myisamchk.. 요 두놈은 테이블의 정의, 데이터, 인덱스를

저장하는 .frm, .MYI, .MYD 파일을 체크합니다.

아참.... mysql 데몬이 실행중일때에는 절대 위의 프로그램을 이용하시면

안됩니다... 제가 테스트 한다고 실행했다가... ㅠ.ㅠ....

1. isamchk/myisamchk 을 이용한 테이블 검사

]# myisamchk table_name // /usr/local/mysql/bin ....

일단 요렇게만 해주면 기본적인 검사를 합니다.

에러 메세지가 없으면 테이블에 오류가 없다는 것이니 다행이라고

생각하세요. 하지만..... 거시기.... 좀 문제가 있더군요...

문제가 있는데도 문제를 찾지 못하는 경우가 종종....ㅠ.ㅠ...

이럴때... 정확히 검사를 하기 위해서..

]# myisamchk --extend-check table_name

이렇게 하시면.. 시간은 좀 오래 걸리지만... 정확한 검사를 하죠...

그리고 될수있는한.. 테이블에 락을 걸고 하시기 바랍니다...

또한.... 테이블에 락을 걸었을때..

그 명령을 준 창을(예를 들어서 한텀에서 실행했으면) 절대로

닫으시면 안된다는 것입니다...

그리고 검사를 하시고.. 다시 언락을 해주시면 됩니다...

"으악...... 난 오류가 있는데......."

그럼 복구를 하셔야죠...

1. isamchk/myisamchk 을 이용한 테이블 복구

]# myisamchk --recover --quick table_name

하시면 복구가 됩니다... 단 --quick 옵션을 준 것이기 때문에

이건 인덱스 파일만 복구가 되므로 빠르게 복구할 수 있지만...

이걸로 잘 되지 않는경우가 있습니다.. 정말 재수가 없는 경우..

그럴땐...

]# myisamchk --recover table_name ... 그냥 이렇게 하세요....

"빌어먹을.... x됐다.... 이렇게 해도 안된다....."

그렇습니다... 님은 진짜로 x됐습니다....

마지막으로 희망을 걸어보세요...

]# myisamchk --safe-recover table_name

이건 정말 속도는 느려터졌지만... 왠만한 오류는 거의 복구를 하더

군요....

아참.. 복구할때에도 가능한 테이블 락을 걸어주고 하세요...

뭐.... 이것저것 귀찮으면... 확실히 하기 위해서.. 그냥

데몬을 죽여버리고 하시면 되겠죠????

음냐~~~.. 다 아시는 내용이거나 별로 도움이 안되었으면...

죄송합니다... 하지만... 저 같은 경우는...

일단..... 제가 밑에 올린 대용량 싸이트 같은데서는 ...

위의 것이 필수입니다.... 워낙에 레코드가 많아서...

아무 이유없이.... 정말.. 아무이유없이.... ㅠ.ㅠ...

테이블이 맛이 갈때가 자주 있더군요...

레코드 수가 700만개가 넘어가면서 그런 현상이 자주 발생합니다..

왜 그렇죠??? 누가 좀 가르쳐주세요...

그럴때마다 무척 당황했었는데....

그런일이 생길때마다 위의 방법으로 하니.... 정말 편하더군요...

여러분들도 부디 유용하게 사용하셨으면 좋겠습니다...  
본문인쇄본문메일발송
MySQL을 위한 하드웨어 최적화
mysql 디비 백업하는 법
Copyright 1999-2019 Zeroboard / skin by ChanBi