MySQL 跨库操作导致master-slave复制失败一例

最近我们的wowo网站的slave数据库经常出现INSERT操作时,email字段主键冲突导致无法继续执行的问题。但INSERT插入的那条数据之前已经存在于数据库中了。而在主库上,这条INSERT语句却执行正常。

我们根据email地址,找到了这个用户的注册来源,发现其中记录的UC_UID竟然和slave中的UID不同。

研究了一下binlog,发现是这样的

  1. 某个用户注册了wowo,于是在ucenter和ucenterhome库各有一条记录
  2. 该用户修改了email地址
  3. 该用户用旧的email又注册了一个用户,于是有了一个新的UID号

在执行到第三步的时候,slave数据库出现错误。

再对mysqlbinlog进行了繁琐搜寻,终于找到了问题所在:

修改email地址的时候,网站上的php程序用当前库为ucenterhome的一个mysql连接,跨库修改了ucenter库,而这个跨库的修改没有计入binlog,于是slave那里存储的还是旧的email地址。该用户用旧email地址又注册了一次的时候,slave发生了主键冲突问题。

最后,我取消了master数据库上的binlog-do-db选项,解决了这个问题。

Posted in 默认分类 | Tagged | 1 Comment

突然发现一张拍的还不错的照片

大概是哪次在龙泽站等人的时候用手机拍的吧

Posted in 默认分类 | Tagged , | Leave a comment

再论Redhat的不规范性——网络配置文件部分

今天bigfatcat问我

/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/networking/profiles/default/ifcfg-eth0
/etc/sysconfig/networking/devices/ifcfg-eth0

这三个文件,到底哪个是网络参数的配置文件。这可把我问住了。于是看了一下 /etc/init.d/network 脚本,发现是第一个。那另外两个是干什么的呢?

过了一会,还是bigfatcat,发消息说他们同事在ifcfg-lo:3文件里写下了如此参数:
DEVICE=lo:2
IPADDR=58.68.203.4

文件名,和该文件内的参数,都指示同一个意思,结果就造成了语义上的混乱。这个是不符合Unix哲学的正交规则的

由此看来,Redhat实在是太不规范了。希望大家以后不要用它。

Posted in 默认分类 | Tagged , , | 2 Comments

今天吃了北京传统小吃

今天很无聊啊,就和陈健、李云龙、游海北跑去前门大街溜达,然后转战大栅栏、王府井。最后大家一致同意去鼓楼吃北京传统小吃:

墙上悬挂的牌匾:

墙牌匾

墙牌匾

门牌匾

门牌匾

卤煮火烧,制作的时候,厨子拿那个大肠切呀切的,让我想起了《星河战队》里面,男女主角在生物实验室解剖敌虫的那段情节……不过我没敢说出来,怕他几个吃不下:

卤煮火烧

卤煮火烧

炒肝:

炒肝

炒肝

还在另外一家店吃了豆汁和焦圈。其实豆汁也没有传说中的那么恐怖啊!

这是焦圈的照片(豆汁忘记拍就被喝光了):

焦圈

焦圈

Posted in 默认分类 | Tagged , , | 7 Comments

Linux磁盘容量问题,兼再谈规范化系统管理

bigfatcat(自称:一个伪装SYSOP的猫)今天问我“请问怎么看linux下硬盘分区的空闲空间?怀疑满了”。于是我教了他df和du命令。

没想到他发现是日志占满磁盘之后,竟然直接
rm /var/log/httpd/*access*
删除了日志文件。我提醒他说,正在打开的日志不会被删除,还会继续增长,将来会再次占满磁盘,而du根本发现不了那个文件。他却置若罔闻,说“反正你肯定知道我掉进哪一个坑里了”……

由此问题,我再来谈一下规范化系统管理。

绝大部分Linux发行版,都有各自的风格,都会把所属的软件按照自己的风格定制,同时会安装各种周边辅助设施,包括日志切断和轮换。而自己编译的软件,则往往考虑不到这方面的问题,软件的安装文档也往往不强调这个问题。初级系统管理员在发现故障之后,会想办法排除之,却很少有考虑防止再次出现问题的。所以,日志装满磁盘的问题就一再出现。

我提倡,尽量使用系统自带的软件,因为他们不但经过产品化的质量审查,且带有各种周边辅助设施,更易于使用。另外,系统自带软件的编译安装参数比较固定,更便于交接工作而不需要在交接时特别强调配置文件、启动停止命令的位置,因为它们就在其该在的位置;在升级时也会更方便。

最后说一句:如果你对本文有反对意见,说明你还too young, too simple, sometimes naive,还不适合当系统管理员

Posted in 默认分类 | Tagged , | 7 Comments

为了传播奥运,昨天下午在北京省内运转N公里

给sgub和sakulaqi送了高清晰度录像。唉,网络拷贝速度实在是慢啊,10Mbytes/s,在sgub那里消耗了三个小时才拷贝、解压缩完。在sakulaqi那里,我直接把笔记本硬盘拔下来插在他机器上,复制速率30Mbytes/s不到一个小时全搞定了。

地铁10号线北土城站周边环境不错;中科院微电子研究所就在车站隔壁,地理位置很好。

Posted in 默认分类 | Tagged , | Leave a comment

初试基金投资

7月2号买了1000块钱的招商现金增值基金(217004)

今天收到两封信,分别是基金帐户卡、投资指南

然后到网银上看了看,已经分过红了,现在持有数量是1002.31单位。

姚哥说可以买一听可乐。我不,我要攒着,下个月就可以买一大瓶了

Posted in 默认分类 | Tagged , | 4 Comments

今天视察机场地铁线、空港巴士1线、359公交、地铁10号线

机场地铁线东直门站上下车竟然在同一侧,而且站台很狭窄
真难想象这是在人多拥挤的今天设计出来的。一号线那么旧,但是设计思想相对还比较前卫呢,知道修宽一点

空港巴士不能刷卡;5毛钱(含税)每人。步行溜达了一圈,只见到两个出门买零食的空姐,不算很PP
然后359回城。路过三元桥时突发奇想,决定改乘

10号线没手机信号
太差了

原帖

Posted in 默认分类 | Tagged , , | 1 Comment

奇怪的信号报告

今天听回龙观台网,有几个台,明明可以听见,但屏幕上显示信号强度为S0

结果信号报告就是40

太奇怪了

Posted in 默认分类 | Tagged | Leave a comment

电台的供电问题

万恶的厂商,说明书也不写明白点

只说电台要求13.8V直流输入,兼容8~16V;外置电源给机内电池充电需要在13.8V +-15%电压供电;原装充电器只供充电使用,不能一边充电一边操作电台。

因为我的FT-817ND没有配原装充电器,所以一直不明白是怎么回事。后来看到和FT-817ND原配充电器型号相同的VX-7R手持台的充电器,才明白,原来原装充电器只是个500mA的小电流变压器,还是12V的,原厂配件连自己产品要求的13.8V都达不到哦。

而充电电池要想充进去电,输入的电压必须高于充满时电池输出的电压。我的电池充满是11.4V,理论应该充满电压是1.4V*8=11.2V。所以才有“充电电压要在13.8V +- 15%(即11.73~15.87)”的说法,因为电压再低就充不进去了。按这个标准,8~11V的电源其实无法兼顾充电和电台操作的。最少得选用12V的电源才可以

无奈,到电子市场又买了一个兵装12V3A电源(65块大洋),充电终于正常了

Posted in 默认分类 | Tagged | Leave a comment