<img src="http://blogimgs.naver.com/nblog/ico_scrap01.gif" class="i_scrap" width="50" height="15" alt="본문스크랩" /> Mysql 백업, 복구, 검사 (mysqldump, myisamchk)
DB 2008. 4. 19. 00:22◘ mysqldump : 백업
: mysqldump 명령어를 이용해서 DB의 내용이나 DB자체를 백업 할 수 있다.
- mysqldump [옵션] DB명 [table명] > 백업파일
- mysqldump [옵션] --databases [옵션] DB명1, DB명2, .... > 백업파일
- mysqldump [옵션] --all-databases [옵션] > 백업파일
▪ 옵션
-A, --all-databases : 모든 DB를 덤프
--add-locks : 덤프 전에 lock 덤프 후에 unlock
--add-drop-table : 덤프 이후에 출력물의 앞에 drop table 명령 추가 (복구할 때 사용)
-B, --databases : 여러 DB를 동시에 덤프 할 때 사용
-f, --force : 에러를 무시
-h, --host : 지정한 호스트의 데이터를 덤프
-t : data만 덤프
-d : 데이터를 제외하고 스키마만 덤프
-p : 사용자의 암호를 지정
-P : 포트번호 지정
-u : 사용자명 지정
<실습> 계정 : root , 암호 : 12345 1. 전체 DB를 모두 backup 해보자. mysqldump -u root -p -A > total.db
2. school DB만 backup mysqldump -u root -p school > total.db
3. school의 student table 만 backup mysqldump -u root -p school student > total.db
4. school의 table 구조만 backup mysqldump -u root -p -d school > total.db
|
◘ Data만을 백업
▪ 문법
select [column명 , 결과 양식]
into outfile '경로 및 파일명‘
[fields terminated by '종단문자‘]
from [table명]
[where [조건]]
기본적으로 column 간의 구별은 Tab을 이용하지만 사용자가 임의로 ‘종단문자’를 지정할 수 있다.
<실습> ▪ student table의 내용의 column 구분은 ‘|’로 하고 성이 마씨인 학생만을 ‘/root/student.dat로 저장해보자.
select * into outfile '/root/student.dat' fields terminated by '|' from student where sname like '마%‘
|
◘ 복구
: 백업된 내용의 복구는 mysql 명령어나 mysqladmin 명령어를 이용한다.
<실습> ▪ linux라는 DB를 백업한 파일이 linux.db 라면, $ mysqladmin -u root -p12345 drop linux $ mysqladmin -u root -p12345 create linux $ mysql -u root -p12345 linux < linux.db
|
◘ myisamchk : 에러 검사 및 복구
- myisamchk [옵션] table명
▪ 옵션
-c : 에러 점검
-e : 상세한 검사
-f : 에러 검사 후 -r 옵션으로 재시작
-r : 에러 복구
-o : -r로 복구가 안되는 경우 복구
<실습> ▪ mysql의 user table을 검사 $ cd /user/local/mysql/var/mysql //검사할 디렉토리로 이동 $ myisamchk -V // 현재 버전확인
$myisamchk -c user // user table 검사
<참고> root의 암호를 잊어버린 경우 ▪ MySQL을 몽땅 지우고 새로 설치...orz (단, data는 백업받아둔다.)
▪ mysqld_safe를 실행 할 때 --skip-grant-table 옵션을 준다. ex) mysqld_safe --skip-grant-table & -->암호 없이 mysql을 진행 할 수 있다.
|
<Spencer>Why be normal?
http://blog.naver.com/ssalleng21
'DB' 카테고리의 다른 글
mysql에서 row를 세로로 보기 (0) | 2008.04.25 |
---|---|
Toad 단축키. (0) | 2008.04.19 |
mysql 연결시 다음의 에러 발생 : Communications link failure during commit(). Transaction resolution unknown. (0) | 2008.04.04 |
mysql에서 delete를 빨리 해보기 (0) | 2008.04.03 |
mysql에서 plan 정보 보기 (0) | 2008.04.02 |