MySQL Backup & Restore with mysqldump

-- MySQL 2012. 7. 30. 15:49
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


Linux A : 백업할 MySQL이 있는 Linux
Linux B : 복원할 MySQL이 있는 Linux

1. putty, pscp를 http://www.putty.nl/download.html에서 다운로드


2. Linux A의 Database 백업

> ./mysqldump -uroot -p --databases [database명] > /tmp/backup.dmp
Enter password:


3. Windows로 backup.dmp를 복사

C:\Putty> pscp root@192.168.xxx.xxx:/tmp/backup.dmp c:\backup.dmp
root@192.168.xxx.xxx's password:

만약 pscp가 되지 않는다면 Linux A의 ssh를 구동
  
/etc/init.d/sshd restart


4. Linux B로 dmp파일 복사

C:\Putty> pscp c:\backup.dmp root@192.168.xxx.xxx:/tmp/backup.dmp
root@192.168.xxx.xxx's password:


5. Linux B에 Database 생성

DB명 : mydb
유저 : myid

> ./mysql -uroot -p
mysql> create database mydb;
mysql> use mysql;
mysql> grant all on mydb.* to myid;
mysql> grant privileges on mydb.* to myid identified by 'password' with grant option;
mysql> flush privileges;


6. Linux B에 Database 복원

> ./mysql -uroot -p mydb < backup.dmp
Enter password:


* 백업 옵션

1) 데이터베이스 백업

mysqldump -uroot -p DBName > file.dmp

2) 복수개 데이터베이스 백업

mysqldump -uroot -p --databases DBName1 DBName2 > file.dmp

3) 전체 데이터베이스 백업

mysqldump -uroot -p -A > file.dmp

4) 테이블 백업

mysqldump -uroot -p DBName TableName1 (TableName2) > file.dmp

5) 스키마 백업

mysqldump -uroot -p -d DBName TableName1 TableName2 > file.dmp

6) 데이터만 백업

mysqldump -uroot -p -t DBName TableName1 TableName2 > file.dmp


* 복원 옵션

1) dmp 전체 복원

./mysql -uroot -p DBName < file.dmp

2) dmp 중 특정 Table만 복원

./mysql -uroot -p DBName TableName < file.dmp



추가) 2012.08.02


mysqldump는 백업 대상이 된 DB는 백업시간 동안 Read Only 상태가 된다고 한다.
그래서 서비스 중인 DB라면 유지보수시간에 작업을 해야 할 듯.


참고 : http://h391106.tistory.com/237

posted by 어린왕자악꿍