참 오랜만에 글을 적는 것 같으다..
오늘은 팀장님이 안 쓰는 데이터베이스 백업해 놓고 지우라고 하셔서
mysqldump 를 써서 백업을 받으려고 한다..
데이터가 3100만건이니, 내 개인서버에서 테수트 해보고 새벽에 일찍 나와서 지워야지 ㅋㅋ
일단 내 서버에서 mysqldump 요렇게 쳐보니 ..
[root@kjsic2 ~]# mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
옵션적고, 데이터베이스적고, 테이블적으면 된다고 되 있다.. 몰옵션을 원하면 --help 를 치라고 한다..
근데 쳤더니 ㅜㅜ 정말 한없이 나온다. 필요한것만 정리해 놔야겠다...
[root@kjsic2 ~]# mysqldump -u root -p -A >backup1.sql
가장 기본적인 백업이다..
-u 는 뒤에 유저명,
-p 패스워드
-A 전체패스워드 의미
> backup1.sql : 백업1.sql 에 저장해라..
: 전체백업을 의미한다.. 현재 db 에 저장된 모든 것을 저장하라는 의미 ..
[root@kjsic2 ~]# mysqldump -u root -p test >backup2.sql
나머지는 앞과 동일하고
test 라는 이름의 데이터베이스를 백업해라!
[root@kjsic2 ~]# mysqldump -u root -p test test_20110427 >backup3.sql
이 명령어는 test 라는 이름의 데이터베이스의
test_20110427 이라는 이름의 테이블을 백업하라는 의미이다..
[root@kjsic2 ~]# mysqldump -u root -p -d test test_20110427 >backup3.sql
데이터를 제외하고 DDL 스키마만 백업한다.
[root@kjsic2 ~]# mysqldump -u root -p -t test test_20110427 >backup3.sql
데이터만 백업한다.
[root@kjsic2 ~]# mysqldump -u root -p --lock_all_tables test test_20110427 >backup4.sql
덤프받는 동안에 DB접근을 금지시킨다.
[root@kjsic2 ~]# mysqldump -u root -p --add-locks test test_20110427 >backup4.sql
백업할때 항상 느끼는 거지만 전회사에서 사건 터진게 자꾸 기억에 남는다...
데이터가 약 천만건 되는 데이터를 크론을 이용해서 매일 백업을 받았었는데 ..
새벽4시에 항상 로드에버리지 (load average) 가 자꾸 치는 것이다...
그것만 그러면 상관없는데 ... 백업이 되는 사이에 데이터가 누락이 되거나 중복해서 들어가는 것이었다...
근데 알고 보니 문제가.. --add-locks 때문이었다... 해당옵션은 덤프전에 대상에 대해 lock 을 걸어놓고
덤프후에 unlock 을 시켜서 문제가 발생했었다...
서비스가 진행되고 있을 때는 --add-locks 옵션금지!
옵션만 또 주르륵 나열된거 나타내주고 마무리하자!!
[출처] mysqldump 사용하여 백업하기|작성자 재식군
'프로그래밍 > php' 카테고리의 다른 글
Mysql table의 AutoIncrement 값을 가져오기 (0) | 2013.07.09 |
---|---|
ORACLE, MSSQL, MYSQL 날짜함수 비교 (0) | 2012.08.08 |
php 한글 연동 시 한글 깨짐현상 복구법 (0) | 2012.07.06 |
php Ajax 한글 처리 (0) | 2012.04.20 |
PHP 설정 파일 (0) | 2012.04.17 |