2009-09-07 2 views
8

다음 rsync 명령을 사용하여 MySQL 데이터를 LAN 네트워크 내 컴퓨터로 백업합니다. 그것은 예상대로 작동합니다.rsync를 사용하여 MySQL 백업

rsync -avz /mysql/ root:[email protected]:: /root/testme/ 

이 방법이 rsync를 사용하는 올바른 방법인지 확인하고 싶습니다.

5 분짜리 crontab 항목이 제대로 작동하는지 알고 싶습니다.

답변

16
  1. 이 경우 원격 컴퓨터의 사용자 root을 사용하지 마십시오. 실제로 루트 사용자와 직접 연결하지 마십시오. 이는 주요 보안 유출입니다. 이 경우, 단순히에만이 연결에 대한 암호를 사용하지 마십시오 백업 위치
  2. 에 쓸 수 있습니다 몇 가지 권한을 가진 새 사용자를 만들 수 있지만 대신 public-key authentication
  3. 당신이 할 때 MySQL이 실행되고 있지 않은지 확인 사용 이 경우 또는 쉽게 손상된 백업을 얻을 수 있습니다.
  4. MySQL이 실행되는 동안 mysqldump을 사용하여 데이터베이스 덤프를 만듭니다. 그런 다음 해당 덤프를 안전하게 복사 할 수 있습니다.
5

당신의 rsync 명령에 대해서는 잘 모르겠지만 이것이 MySQL로 백업하는 것이 옳은/최선의 방법인지 확신하지 못합니다; 6.1. Database Backups

DB 백업은 잠금, 지연된 쓰기 및 MySQL이 데이터로 수행 할 수있는 모든 최적화와 같은 문제를 고려하여 생각할 수있는만큼 간단하지 않을 수 있습니다. 특히 테이블이 MyISAM 엔진을 사용하지 않는 경우.

"5 분 crontab"정보 : 5 분마다이 백업을 수행하고 있습니까? 데이터가 합리적이라면 다른 서버로의 복제와 같이 항상 최신 사본이 있어야한다는 것을 생각해야합니다.

6

나는 MySQL의 백업을 수행하는 더 좋은 방법은 복제 기능을 사용하는 것입니다.

백업 시스템을 마스터의 슬레이브로 설정하십시오. 각 트랜잭션은 자동으로 미러링됩니다.

슬레이브를 종료하고 그 슬레이브에서 테이프로 전체 백업을 수행 할 수도 있습니다. 슬레이브를 다시 시작하면 마스터와 다시 동기화됩니다.

+1

마스터에 전체 binlog가있는 경우에만 작동합니다. 때로는 슬레이브를 (mysqldump --master-data와 함께) 약간 오래된 백업에서 복원 한 다음, 결과 데이터베이스가 완료되었는지 확인하기 위해'슬레이브 시작 (slave start) '을 수행하는 것이 가장 좋다. –

+0

예, 다른 컴퓨터에 데이터베이스 쓰기를 복제하십시오. 그런 다음, 실수로 전체 테이블이나 데이터베이스를 삭제하면 복제 된 MySQL 서버로 이동하여 ... 오 이런. – Ernie