◘ 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

 
Posted by 김용환 '김용환'

댓글을 달아 주세요