2

나는 mysql과 vertica로 놀고 있으며, 혼합 된 binlog 형식 (기본 설정)으로 실행중인 master/slave mysql 쌍이있다.텅스텐은 MySQL 슬레이브에서 vertica로 복제됩니다 - 릴레이 로그를 보지 않는 것 같습니까?

일부 분석 작업을 위해 이것을 vertica 데이터베이스에 복제하려면 텅스텐을 고려하고있었습니다.

마스터는 앱의 읽기/쓰기 요청으로 바쁘고 슬레이브는 무슨 일이 일어나고 있는지 기록하고 있으므로 이상적으로는 읽기 전용이므로 텅스텐 레 플리 케이 터를 MySQL 슬레이브에서 실행하고 싶습니다.

텅스텐은 binlog가 행 기반 형식이어야하기 때문에 binlog 및 relay-binlog 파일을 만드는 슬레이브 기반 binlog 행을 활성화했습니다. 따라서 슬레이브는 마스터에서 혼합 된 binlog를 읽고 해당 데이터베이스에 적용하며 변경 내용을 행 기반 형식의 relay-binlog에 유지합니다. 지금까지는 괜찮 았어.

-a --master-slave 인수를 사용하면 슬레이브에서만 발생하지만 relay-binlogs는 포함하지 않는 binlogs 만 보입니다.

설명서 및 게시물 모든 항목에서 마스터에서 텅스텐을 실행하고 MySQL 마스터/슬레이브를 사용하지 않고 복제 할 때마다이를 사용한다는 점을 염두에 두었습니다.

그러나 나는 일하는 것을 유지하고 단지 텅스텐을 MySQL 슬레이브에서 vertica로 복제하는 브리지로 추가하는 것을 선호합니다.

어떻게 구성 할 수 있습니까?

모든 것을 복제하지 않고 슬레이브에서 vertica로 복제하려는 테이블을 어떻게 말합니까?

구성 세부 : 슬레이브의

/etc/my.cnf에가 :

datadir=/var/lib/mysql 
log-bin=/var/log/mysql/mysql-bin.log 
expire_logs_days=7 

# for tungsten replicator we need row based binlogs on the slave 
binlog-format=row 
## Server timezone is GMT. 
#default-time-zone='+00:00' 
# Tables default to UTF8. 
character-set-server=utf8 
collation-server=utf8_general_ci 

server-id=3 

내가 무대 텅스텐에 사용하는 스크립트 :

tungsten-replicator-2.1.2-30/tools/tungsten-installer --master-slave -a \ 
    --service-name=mysql2vertica \ 
    --master-host=testslave1 \ 
    --cluster-hosts=testslave1 \ 
    --datasource-user=tungsten \ 
    --datasource-password=supersecret \ 
    --home-directory=/opt/tungsten \ 
    --buffer-size=1000 \ 
    --java-file-encoding=UTF8 \ 
    --java-user-timezone=CDT \ 
    --mysql-use-bytes-for-string=false \ 
    --svc-extractor-filters=colnames,pkey \ 
    --property=replicator.filter.pkey.addPkeyToInserts=true \ 
    --property=replicator.filter.pkey.addColumnsToDeletes=true \ 
    --start-and-report 

잘 시작하는 것은 그 말한다 온라인이지만 binlog에 있지만 relay-binlog에는 복사하지 않습니다.

답변

1

우리는 우리의 MySQL 슬레이브에서 텅스텐을 성공적으로 실행하고 있습니다.

기본적으로 텅스텐이 예상하는 슬레이브 does not copy incoming changes to the outgoing binlog입니다. 다음을 추가하십시오.

log-slave-updates=TRUE 

my.cnf 파일에 추가하십시오.

+0

굉장! 나는 그 성명서가 어딘가에 추천 된 것을 본 다음 그것을 잊어 버린 것을 기억합니다. 이제는 예상대로 작동합니다. –

+1

지금해야 할 일은 스테이지 테이블에서 데이터를 삭제할 수 없다는 이유로 vertica 측에서 복제가 실패하는 이유를 파악하는 것입니다. ... –

+0

스테이징과 비 스테이징 모두에서 ddl-scan을 실행해야합니다. 주형. 다음 작업 : 모두 추출하지 않고 적용 할 테이블을 선언하는 방법 ... :) –