1. $ mysqldump [Option] database [table “” not found /] > ???.dump 2. $ mysqldump [Option] --databases db1 [db2 db3 … ] > ???.dump 3. $ mysqldump [Option] --all-databases > ???.dump 설명 => 1번은 하나의 데이터베이스와 그 안의 테이블들을 덤프 시키는 명령입니다. 테이블이름을 생략하면 모든 테이블이 덤프 됩니다. 2번은 여러 개의 데이터베이스 전체를 한 번에 덤프 시키는 명령입니다. 3번은 모든 데이터베이스를 덤프 시키는 명령입니다. [Option] 설명 --quick : C API의 mysql_use_result()함수를 사용하므로 속도가 빠르다. --add-drop-table : 덤프 결과에서 create table 앞에 drop table 절을 추가합니다. --add-locks : 덤프하기 전에 LOCK table을 이용하여 테이블을 잠그고 덤프후 UNLOCK table을 합니다. --extended-insert : insert 문 하나에서 모든 레코드를 삽입하는 insert 문을 생성합니다. --opt : 위에 나온 옵션을 동시에 사용한 것과 같은 결과를 가져옵니다. --no-data(-d) : 테이블의 스키마만 덤프합니다. --no-create-info(-t) : create table을 출력하지 않고 데이터만 덤프합니다. 개인적으로는 –opt 옵션을 주로 사용합니다. 한가지 예를 보도록 하겠습니다. [그림2] mysqldump –opt support test > /PATH/support_test.dump 이 구문은 support 데이터베이스 안에 있는 test 테이블을 지정한 경로에 백업 받는 명령입니다. [그림3] 그러면 이제 백업 받은 파일을 복구하는 방법을 알아보겠습니다. 구문은 mysql database_name < backup_filename 예로든 support_test.dump 파일을 복구해 보겠습니다. [그림4] 이제 mysql에 연결한 상태에서 test 란 테이블이 생성된 것을 확인하는 이미지를 마지막으로 이번 강좌를 끝내도록 하겠습니다. ex ) ######################################################### 우선 클라이언트두 mysqldump 명령을 쓸수 있게 관리자 가 /bin 밑에 mysqldump 명령을 복사 해주어야 합니다. 그래야 클라이언트 사용자두 그 명령을 사용할 수 있으니까요.. 그런후 아래와 같은 옵션을 써서 디비 백업 받으면 됩니다. 형식: $ mysqldump [OPTIONS] database [tables] 설명: 테이블이 생략되면 전체 태이블을 백업. 예제: $ mysqldump --opt database > backup-file.sql $ mysqldump --opt database | mysql --host=remote-host -C database $ mysqldump --quick -c -ujhs -p jhs > jhs.out.sql $ mysqldump --quick -c -t --add-locks -urp bizaide110 > bae110.data.sql 마지막 예제 처럼, -u, -p 가 데이터베이스 앞에와야하며, 데이터베이스는 맨 뒤에 와야한다. 도움말: $ mysqldump --help 주의: 만약, --quick 이나 --opt 없이 덤프하면 메모리가 많이 소모되어 큰 데이터베이스의 경우 문제가 발생할 수 있다. 옵션: --add-locks 테이블의 덤프하기전에 해당 테이블을 잠그고 덤프한 후에 테이블을 풀어준다. -c, --complte-insert INSERT 구문에서 필드명을 포함한 전체를 덤프 -f, --force 덤프 중 에러가 있어도 계속 진행 -h, --host 특정 호스트의 MySQL 에서 데이터 덤프 -t, --no-create-info 테이블 생성 정보는 덤프하지 않음(데이터만 덤프) -d, --no-data 테이블 스키마만 덤프 -q, --quick 버퍼를 사용하지 않고 바로 표준출력으로 보낸다. 위의 예기는 원론적인 예기구요.. 실사용예 만약 사용자가 할당 받은 디비 이름이 hahaha 라면 그 디비 안에 여러개의 table 이 있지 않습니까? 그러면 여기서는 한번에 기냥 hahaha 라는 디비 전체를 다 긁어 오는 방법을 설명 드릴게요.. #mysqldump -u님의디비아뒤 -p님의디비패스 hahaha > hahaha_backup.sql 이렇게 해주시면 됩니다. 그러면 hahaha 디비안에 들어있는 테이블과 전체 내용이 싹 읽혀서 .sql 화일 안에 들어 갑니다. vi hahaha_backup.sql 이렇게 해보세요.. 그럼 모든게 들어가 있는것이 확인 될테니 |
mysql DB Backup