2012-06-15 4 views
1

나는 동일한 마스터 db에서 복제 된 여러 슬레이브 DB를 가지고 있지만, 슬레이브 중 하나에 대해, 나는 행을 업데이트하거나 삭제하지 않을 백업 db로 유지하고 싶습니다.mysql 복제 삽입에만

기본적으로 목적은 모든 행이 복제를 사용하여 저장되는 백업 데이터베이스를 갖는 것입니다 (mysqldump는 백업 속도가 느리다), 업데이트/삭제 쿼리가 복제되지 않고 쿼리 만 삽입됩니다. 의심의 여지가 일부 갈등이있을 것입니다 알아요,하지만 여전히 궁금해/질문에 대한 필터링 옵션을 슬레이브 엔드 또는 다른 솔루션에 궁금해.

+0

불충분 한 정보를 제공합니다. 당신이하고 싶은 것이 명확하지 않습니다. "갈등이있을 것이라는 것을 안다"- 지역 기록이 없다면 어떻게 갈등이있을 수 있는가? 이 질문은 현재 명확하지 않고 일관성이 없습니다. 명확히하십시오. 감사. – MarkR

답변

1

적어도 데이터를 중요시하는 한 작업 백업 스키마가없는 프로덕션 데이터베이스를 실행해야합니다. 잘못된 SQL 명령으로 인해 데이터베이스가 손상 될 수 있다고 생각되면 시간 복구을 시도 할 수 있습니다.

이미 복제를 사용하는 경우 마스터 서버는 모든 쓰기/업데이트 작업을 binlog에 기록합니다. 복제 작업을 위해 종속 서버에 전송합니다. 예를 들어 데이터베이스 전체를 야간 백업 할 수 있습니다. 아침에 데이터베이스를 파기하면 야간에 백업을 가져 와서 백업 후 데이터베이스를 죽인 지시 이전까지 binlog의 지침을 다시 적용 할 수 있습니다.

그런 다음이 지침을 건너 뛰고 이후에 나오는 지침을 적용 할 수 있습니다. 또한 건너 뛴 명령어 뒤의 명령어는 데이터베이스가 처음 실행될 때와 다른 데이터를 보게되므로 일관성 문제가 발생할 수 있습니다.