블로그 이미지
veresuke's House!!
verere

calendar

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Recent Comment

Recent Trackback

  • 33,209total
  • 0today
  • 8yesterday

'복원'에 해당되는 글 1건

  1. 2008/11/10 [DB] MySql - mysqldump (1)
2008/11/10 15:02 Study/DB
MySql에서 데이터베이스를 백업하기 위해, 혹은 복구하기 위해 mysqldump라는 것을 사용한다.
 mysqldump의 옵션을 살펴보면
-A, --all-databases : 모든 DB를 덤프 
--add-locks : 덤프 전에 lock 덤프 후에 unlock 
--add-drop-table : 덤프이후에 출력물의 앞에 drop table명령 추가
복구할 때 사용키 위해서 
-B, --databases : 여러 DB를 동시에 덤프 할 때 사용 
-f, --force : 에러를 무시 
-h, --host : 지정한 호스트의 데이터를 덤프 
-t, --no-create-info : 데이터만 덤프 
-d, --no-data : 데이터를 제외하고 스키마만 덤프 
-p : 사용자의 암호를 지정 
-P : 포트번호 지정 
-u : 사용자명 지정

대충 이렇다.
--add-locks와 --add-drop-table 말고는 한글을 안다면 이해가 가실듯..-ㅛ-;;

--add-locks는 백업 도중 디비에 데이터가 추가 또는 삭제, 변경 될 수 있으므로 lock을 걸어 디비 변경을 방지하고 완료후에 unlock을 하는 것이고,
--add-drop-table은 백업된 파일을 이용하여 복구할 때 테이블을 삭제한 후 복원한다는 의미이다.
아마 이게 맞을것이다... 자신이 없다 ㅋ

실제 사용하는 예를 보면
● 현재 시스템내의 모든 데이타베이스를 백업
mysqldump -u root -p -A > first.sql
모든 데이타베이스를 1.sql 이란 파일명으로 백업을 받는다.
first.sql 파일을 열어보면 각각의 데이타베이스를 create 시키는부분과 각각의 데이타베이스마다 테이블을 create 시키는부분, 그리고 테이블에 데이터를 insert 시키는 부분들이 모두 나열되어 있다.
● 특정 데이타베이스만 백업
mysqldump -u root -p --databases some_db > second.sql
some_db 라는 데이타베이스만 백업을 받는다.
second.sql 파일을 열어보면 soma_db 라는 데이타베이스를 create 시키는 부분과 각각의 테이블을 create 시키는부분 그리고 각각의 테이블에 데이터를 insert 시키는 부분이 있다.
● 특정 데이타베이스의 특정 테이블만 백업
mysqldump -u root -p some_db some_tb > third.sql
some_db 라는 데이타베이스의 some_tb라는 테이블만 백업을 받는다.
third.sql 파일을 열어보면 테이블을 create 시키는 부분과 테이터들을 테이블에 입력하는 부분이 있다. 특정 테이블만 백업을 받기 때문에 데이타베이스를 create 시키는 부분이 없음을 주의해야 한다.
이 밖에도 데이터만 백업받으려면 옵션에 -t 혹은, --no-create-info 옵션을 추가하면 되고 스키마만 백업을 받으려면 -d 혹은, --no-data 옵션을 추가하면 된다.
● 데이터베이스 복원
mysql -u root -p < 백업한파일명.sql
복원은 정말 간단하다. 별거 없다 -ㅅ-
테이블을 백업한 파일을 복원하기 위해서 디비 이름을 적어주는 센!스!
mysql -u root -p some_db < 백업한파일명.sql

아.. 오늘도 별거 없다ㅋ
귀찮아서 이제 그~만 =ㅁ=ㆀ

'Study > DB' 카테고리의 다른 글

[DB] MySql - mysqldump  (1) 2008/11/10
가볼만한 곳(DB)  (0) 2006/08/15
posted by verere