2009-09-03 35 views
0

我有一個使用master_slave_adapter插件(http://github.com/mauricio/master_slave_adapter/tree/master)的rails應用程序將所有選擇發送給從站,並將所有其他語句發送給主站。複製是使用Mysql主/從設置的。我試圖驗證所有的SQL語句確實是在正確的地方。選擇從機(db2),插入到主機(db1),但我不知道如何去做。我已經嘗試使用tcpdump的對Web服務器:如何驗證選擇/插入正在與MySQL主/從屬關聯的服務器

sudo /usr/sbin/tcpdump -q -i eth0 dst port 3306 

,這是輸出一噸選擇的頁面請求:

10:32:36.570930 IP web2.mydomain.com.57524 > db1.mydomain.com.mysql: tcp 0 
10:32:36.576805 IP web2.mydomain.com.57524 > db1.mydomain.com.mysql: tcp 0 
10:32:36.577201 IP web2.mydomain.com.57524 > db1.mydomain.com.mysql: tcp 0 
10:32:36.577980 IP web2.mydomain.com.57524 > db1.mydomain.com.mysql: tcp 86 
10:32:36.578186 IP web2.mydomain.com.57524 > db1.mydomain.com.mysql: tcp 21 
10:32:36.578359 IP web2.mydomain.com.57524 > db1.mydomain.com.mysql: tcp 27 
10:32:36.578522 IP web2.mydomain.com.57524 > db1.mydomain.com.mysql: tcp 5 
10:32:36.578741 IP web2.mydomain.com.57524 > db1.mydomain.com.mysql: tcp 13 
10:32:36.579611 IP web2.mydomain.com.57524 > db1.mydomain.com.mysql: tcp 29 
10:32:36.588201 IP web2.mydomain.com.45978 > db2.mydomain.com.mysql: tcp 0 
10:32:36.588323 IP web2.mydomain.com.45978 > db2.mydomain.com.mysql: tcp 0 
10:32:36.588677 IP web2.mydomain.com.45978 > db2.mydomain.com.mysql: tcp 0 
10:32:36.588784 IP web2.mydomain.com.45978 > db2.mydomain.com.mysql: tcp 86 

它看起來並不像所有的選擇會對奴隸。也許這不是正確的測試方式,任何人都知道更好的方法?

+0

也許它可能是一個更好的選擇做一些類型的查詢監控主從機/ – bwizzy 2009-09-03 15:28:26

回答

0

要麼打開兩臺服務器上的查詢日誌記錄,要麼只查看統計信息。 mysql有一組全局計數器,用於跟蹤每種語句執行的次數。

+0

我試圖使用mytop做只有選擇,並看到進程顯示在主和奴隸,所以我猜這不是正確的工作 – bwizzy 2009-09-03 15:55:38

2

在主從設備上創建一個特殊用戶並授予他不同的權限。在主設備上禁用選擇並僅在從設備上啓用SELECT。那麼如果出現問題,就會出現MySQL錯誤。