728x90

1. 덤프뜨기

$> mysqldump -u[사용자아이디] -p 데이터베이스명[테이블명] > 저장될 파일명

예) mysqldump -umindulle -p bas > bas.dmp

이렇게 하면 사용자[mindulle]로 접속하고 password를 입력 받은 후 디비(bas) 몽땅 덤프를 뜨게 된다.

테이블만 덤프를 뜨고 싶다면

예) mysqldump -umindulle -p bas mt_franchise > bas.mt_franchise.dmp

이렇게 하면 테이블만 덤프를 뜰 수 있다.

2. 복구하기

덤프 파일을 가지고 복구를 하는 방법도 간단하다.

$> mysql -u[사용자아이디] -p [디비명] < 덤프파일명

예) mysql -umindulle -p < bas.dmp

예) mysql -umindulle -p bas < bas.mt_franchise.dmp

1. 특정 db의 특정 table에서 원하는 값만 덤프받기

>> edu라는 디비에 a,b,c라는 테이블이 있다. 여기서 a라는 테이블에서 no가 7번이상이고 10번 이하인 값만 덤프를 받고자 한다. 어떻게 하는가?

여기서 사용되는 옵션은 -w이다. 그럼 위 질문의 sql문은 아래와 같다.

mysqldump -u mysql_admin -p edu a -w'no=>7 and no=<10' > edu_a_cond.sql

위와 같이 하면 no가 7~10번까지가 덤프 될 것이다.

위에서 조건문은 -w 다음에 싱글 쿼테이션으로 묶어준다.

2. 디비 스키마(Schema)만 백업받기

>> 초기에 작성해 놓은 테이블 스키마가 없을 때 어떻게 하겠는가?

만약 하나의 테이블이라면 desc해서 일일이 다 삽질을 하면 되겠지만 만약 테이블이 100개라면 ... 컥 ... 이럴 때 사용하는 mysqldump옵션이 있습니다.

-d 입니다.

1. edu라는 디비의 모든 테이블 스키마를 백업받으려면

mysqldump -u mysql_admin -p -d edu > edu_db.sql

2. edu라는 디비의 a라는 테이블 스키마를 백업받으려면

mysqldump -u mysql_admin -p -d edu a > edu_a_table.sql

728x90

'DB' 카테고리의 다른 글

마스터 디테일 구조에서 order by  (0) 2012.07.29
OALL8이 불일치 상태입니다  (0) 2012.07.29
Oracle Trigger  (0) 2012.07.29
Oracle Procedure  (0) 2012.07.29
Oracle Function  (0) 2012.07.29

+ Recent posts