2013-10-03 52 views
2

我正在玩mysql和vertica,並有一個以混合binlog格式運行的主/從mysql對(默認設置)。鎢複製從MySQL奴隸到vertica - 似乎沒有看看繼電器日誌?

爲了將這個複製到Vertica數據庫以進行一些分析任務,我正在考慮使用鎢。

主人忙於應用程序的讀/寫請求,從服務器正在記錄發生了什麼事情,所以理想情況下我想在mysql從服務器上運行鎢複製器,因爲它只讀。

鎢要求二進制日誌是在基於行的格式,所以我啓用的奴隸,它創建二進制日誌和中繼二進制日誌文件基於行的二進制日誌。所以從服務器從主服務器讀取混合二進制日誌,應用於其數據庫,並將更改保留在基於行的格式的relay-binlog中。一切都很好。

當我使用它出現在標準-a --master - 從參數只能看着只包含的東西,就從本地發生的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 slave上運行了Tungsten,所以您希望做的事絕對有可能。

默認情況下,從does not copy incoming changes to the outgoing binlog,其中鎢期待他們。嘗試添加:

log-slave-updates=TRUE 

到您的my.cnf文件。

+0

太棒了!我現在記得曾經在某處看到過這個聲明,然後錯過了它。有了它,它現在按預期工作。 –

+1

現在我要做的是找出爲什麼複製失敗的Vertica端無法從階段表中刪除數據:... –

+0

也想到了這一點,需要運行ddl掃描與分段和非分段模板。下一個任務:如何聲明提取和應用哪個表格而不是所有... :) –