나는 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에는 복사하지 않습니다.
굉장! 나는 그 성명서가 어딘가에 추천 된 것을 본 다음 그것을 잊어 버린 것을 기억합니다. 이제는 예상대로 작동합니다. –
지금해야 할 일은 스테이지 테이블에서 데이터를 삭제할 수 없다는 이유로 vertica 측에서 복제가 실패하는 이유를 파악하는 것입니다. ... –
스테이징과 비 스테이징 모두에서 ddl-scan을 실행해야합니다. 주형. 다음 작업 : 모두 추출하지 않고 적용 할 테이블을 선언하는 방법 ... :) –