我有一个使用master_slave_adapter插件(http://github.com/mauricio/master_slave_adapter/tree/master)的rails应用程序将所有选择发送到从属服务器,并将所有其他语句发送给主服务器。使用Mysql主/从设置复制。我正在尝试验证所有SQL语句确实是正确的位置。选择到从站(db2),插入到主站(db1)但我不知道如何操作。我尝试在网络服务器上使用tcpdump:
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 :(得分:2)
在主服务器和从服务器上创建一个特殊用户并授予他不同的权限。在主服务器上禁用SELECT,仅在从服务器上启用SELECT。然后,如果出现问题,将会出现MySQL错误。
答案 1 :(得分:0)
要么打开两台服务器上的查询日志记录,要么只查看统计信息。 mysql有一组全局计数器,用于跟踪每种语句的执行次数。