2011-09-02 4 views
1

10 대의 다른 머신에서 MySQL 데이터를 수집하고 서로 다른 머신에있는 하나의 큰 MySQL 데이터베이스에 집계하려고합니다. 모든 기계는 Linux 기반입니다.machineX에서 machineY로 MySQL 데이터 전송

주기적으로 "델타"데이터 만 수집하려면이 작업을 수행하려면 "mysqldump"구문은 무엇입니까?

다른 방법이 있습니까?

+0

대신 복제를 사용하지 않는 이유는 무엇입니까? –

답변

0

mysqldump은 마지막 백업 이후 또는 실제로 마지막 백업이 변경된 경우에도 변경된 행 (또는 스키마의 어떤 부분)을 알 수 없기 때문에 증분 백업을 생성 할 수 없습니다. 이를 위해서는 MySQL binlog를 읽고 INSERT/UPDATE/DELETE 문장으로 변환해야합니다. 나는 그와 비슷한 존재하는 것을 전혀 알지 못합니다.

MySQL 백업의 현재 "최첨단"은 일반적으로 Percona XtraBackup으로 간주됩니다.

+0

GNU diff/patch를 사용하여 할 수 있습니다. – brandon

0

복수 마스터 슬레이브? 각각 10 명을 마스터로, 10 명을 모두 슬레이브로 합니다. 여기서는 집계 할 데이터가 각각 10 가지라고 가정합니다. 10 가지 데이터가 모두 같거나 비슷하다면 인터리브 (interleave)하고 통합 시키면 작동하지 않습니다.

1

이것은 MySQL에서 기본적으로 지원되지 않습니다. 복제를 사용할 수는 있지만 복제본에는 10 명의 마스터가 아닌 하나의 마스터 만있을 수 있습니다. 두 가지 실행 가능한 옵션을 알고 있습니다 :

1) 라운드 로빈 방식으로 마스터간에 복제본을 전환하는 어떤 스크립트를 작성하는 것입니다. http://code.google.com/p/mysql-mmre/ 또는 http://thenoyes.com/littlenoise/?p=117을 참조하십시오.

2)는 ETL 도구를 사용하는 것입니다.

막히면 우리 (Percona)가 도와 줄 수 있습니다. 이것은 일반적인 요청이지만, 각각의 경우가 다르기 때문에 쉬운 요청은 아닙니다.