일반적인 파일 복구에 사용하는 덤프파일(db복구) 대신
물리적인 파일인 myTable.frm, myTable.MYD, myTable.MYI 파일 3가지를 이용하여
Table을 복구할 경우의 사용방법.... (물론 이론적인 것이 아닌 몸으로 익힌 방법임.. 문제가 생겨도 책임을 질 수 없음.. 충분히 테스트 해볼 것..do your self..^^)
1. 백업 파일의 위치 확인 (/backup/db/myDB/myTable.frm, myTable.MYD, myTable.MYI)
2. 실제 Table이 존재하는 위치 확인 (/db/myDB/myTable.frm, myTable.MYD, myTable.MYI)
3. 백업 파일을 실제 TABLE파일이 존재하는 곳으로 엎어 씌우기...
(*) 만약을 위해서 MySQL을 중지 시키고 Overwrite를 시키는 것이 좋은... 그러나, MySQL을 정지 시키지 않고 5번 정도 복원작업을 해 보았지만 문제는 없었음...
4. OverWrite를 시킨 후에는 MySQL을 재 기동 시켜야 함..
- mysqladmin -uroot -p shutdown
- mysqladmin -uroot -p start
(*) 그러나.. start 명령어로 실행을 시켰을 경우..
MySQL server through socket '/tmp/mysql.sock'라는 에러가 뜰경우
[root@www bin]# ./mysql
ERROR 2002: Can't connect to local MySQL server through
socket '/tmp/mysql.sock' (2)
다음과 같은 에러가 난다.. 이 경우는 MySQL의 경우 서버에서 기동할 경우
MySQL 데몬이 동작을 해야 서버에 접속을 할 수 있기 때문에 데몬을 동작시켜 접속할 Connection을 활성화 시켜주어야 함..
다음과 같이 해결..
./mysqld_safe --user=root &
또는 RPM으로 설치를 하였을 경우..
/etc/init.d/mysqld start
이상이 *.MYD파일을 이용한 Table복구
참고로
- aaa.MYD 파일은 실제 데이터가 저장되어 있는 파일이고,
- aaa.MYI 파일은 MySQL로 하여금 MYD파일안에 있는 데이터를 빨리 찾을 수 있도록 하는 키에 대한 정보와 다른 내부 데이터들을 저장한다..
이 파일이 MySQL의 성능에 가장 중요한 역할을 하며, 이 파일을 관리하는 isamchk라는 유틸리티가 존재함..
- aaa.frm은 테이블 구조 그 자체의 정보를 가지고 있음.

댓글을 달아 주세요