Tags
- Airchina
- Anti-Spam
- bugs
- cgroups
- ChinaSouthern
- Django
- DNS
- Enterprise
- fastcgi
- France
- Hainanair
- HAM
- HongKong
- InnoDB
- iSCSI
- kubernetes
- large-scale
- lighty
- Linux
- Logging
- Macao
- Meituan
- MM
- MySQL
- nginx
- Oracle
- Outdoor
- Percona
- Photo
- postfix
- Python
- RedHat
- redis
- Saltstack
- Sentry
- Traffic
- Travel
- UK
- Virtualization
- xtrabackup
- 信用卡
- 奥运
- 美食
- 规范化
Meta
Blogroll
Mine
Tag Archives: MySQL
MySQL 跨库操作导致master-slave复制失败一例
最近我们的wowo网站的slave数据库经常出现INSERT操作时,email字段主键冲突导致无法继续执行的问题。但INSERT插入的那条数据之前已经存在于数据库中了。而在主库上,这条INSERT语句却执行正常。 我们根据email地址,找到了这个用户的注册来源,发现其中记录的UC_UID竟然和slave中的UID不同。 研究了一下binlog,发现是这样的 某个用户注册了wowo,于是在ucenter和ucenterhome库各有一条记录 该用户修改了email地址 该用户用旧的email又注册了一个用户,于是有了一个新的UID号 在执行到第三步的时候,slave数据库出现错误。 再对mysqlbinlog进行了繁琐搜寻,终于找到了问题所在: 修改email地址的时候,网站上的php程序用当前库为ucenterhome的一个mysql连接,跨库修改了ucenter库,而这个跨库的修改没有计入binlog,于是slave那里存储的还是旧的email地址。该用户用旧email地址又注册了一次的时候,slave发生了主键冲突问题。 最后,我取消了master数据库上的binlog-do-db选项,解决了这个问题。