正在过年。
外面下着雨,冷雨。
撑一纸雨伞,回到空旷的房子里。
空旷而幽暗,听见金鱼的呼吸。
感悟,想要说些什么,却不知从何说起。
电梯里,ONLY SMS.
不想看春晚了,没有坚持的心情和欲望。
RT上,微博上,流淌着节日的时光。
翻了翻前几天的日子,模糊而碎片。
时间溜走了。
就在那弹指一挥。
翻看david的博客,想象他怎样的被青春打湿双眼。
想象那无法回到的过去,之中的人和事。
其实,一个人经历的,正是大多数人经历的,
所以,世界上 ,才会有共鸣。
所以,诗人才会钟爱某一种水果。(亦或植物?)
所以,81才会面对年复一年的问题。
所以,张导和八达才能把简单的情节演绎的刻骨,
因为,那就是他,或他们自己。
桌上的mac,竟然没有去折腾它的欲望,
还一直没打开。
鞭炮,让我想起黄洋界上的诗句。
有时候,生活应是如此的简单,平和,感恩,幸福。
有时候,情绪却是魔鬼。
这正是鲜活动人生啊,
无需去刻意的改变,和逃避。
在纯粹的时间里看书,
竟然获得意外的充实,
我,其实很容易满足。
------------------我是华丽的分割线----------------------
一直没有心情和时间来想和看。
我常说,不仅要埋头做事,更要抬头看路。
方向很重要,
得过且过的生活态度,
会麻木一个人的心灵,
所以,每个人要有目标,要去学习。
为了现在,为了将来。
为了自己,为了团队。
那天,和古怪精灵的幸子吃全家福,
在街上找奖状而不是荣誉证书,
在花店里讨价还价,
在忙碌。
其实一直心怀感恩,
在这样的一个团队里很开心,
那一起走过的岁月,
和小黑屋里的每一个人。
无怨无悔,但是要努力。
机会,压力,责任。
------------------我是华丽的分割线----------------------
想去鼓浪屿走走,
一直有很多值得发现的痕迹,
而以后,或许上岛的机会就不多了,
不想遗憾,
亦或,
想度过这闲暇时间。
想过不一样的生活,
自由和梦想。
现在,
在过年,
这一刻,烟花绚烂。
今天是2012年的第一天,元旦佳节,过去的2011虽然已经成为历史,但是依然是值得铭记的时光。
昨天是2011年的最后一天,遭遇了诸多的不顺利。
在下班的路上,车很拥堵,虽然我出来的已经很晚了,可是还是被这个车堵在了路上:

后来终于到了天虹,在地下二层停车场找了很久也没有找到停车位,爆满了,中间还接了Jimmy一个电话。最后终于在一个角落把车停了下来,耗时N久。
在天虹买了些东西,结果小票不小心丢掉了,本来凭小票是可以免费停车的,没办法只能乖乖的交停车费出来。
在出口的路上一样拥堵,各种车各种抢道,凭借极大的耐心好不容易才杀出重围。
回家煮面吃,想开一瓶酒,结果不小心酒瓶打落在地,摔得粉碎,满屋酒气。
希望,这些小小的不顺利就停留在2011,不再追随。
徐志摩说:
轻轻的,我走了,正如我轻轻的来,
我轻轻的挥手,作别西天的云彩。
没有人能阻挡时光匆匆的脚步,我们能做的,唯有珍惜和感恩。
因为那曾经虚度的青春,永远永远不再回来。
2012会更好,因为路,就在脚下,需要留下我们的足迹。
有时候为了方面的导入数据,可以使用MyISAM存储引擎的表,直接把数据文件Copy一份放到对应的目录下,这样MySQL就能直接识别到,但是在主从复制的环境里这样做是有问题的,因为在从库上并没有这个表,从而导致后续的一些操作失败,比如在主库上执行导入数据的SQL语句,则在从库会报错如下:
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: No
Last_Errno: 1146
Last_Error: Error 'Table 'banpingdb.blog_score' doesn't exist' on query. Default database: 'banpingdb'. Query: 'replace INTO blog_score_result(id,score,avg)
SELECT b.id, min(s.comment), min(s.price) FROM blog_score s,a_blog b where s.name=b.biz_name
group by b.id'
同样的信息通过日志也一样会看到:
111215 19:17:54 [ERROR] Slave SQL: Error 'Table 'banpingdb.blog_score' doesn't exist' on query. Default database: 'banpingdb'. Query: 'replace INTO blog_score_result(id,score,avg)
SELECT b.id, min(s.comment), min(s.price) FROM blog_score s,a_blog b where s.name=b.biz_name
group by b.id', Error_code: 1146
111215 19:17:54 [Warning] Slave: Table 'banpingdb.blog_score' doesn't exist Error_code: 1146
111215 19:17:54 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log '1-bin.000001' position 130482476
这种错误处理也很简单,可以直接跳过,当然要评估可能产生的影响:
mysql> slave stop;
Query OK, 0 rows affected (0.22 sec)mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
Query OK, 0 rows affected (0.00 sec)mysql> slave start;
Query OK, 0 rows affected (0.00 sec)
然后blog_score_result这个表的数据肯定不准确了,可以重新从主库导入数据,视应用的繁忙程度,要保证数据的一致性,先在主库上lock这个表,不让其他用户更新:
mysql> lock tables blog_score_result read;
Query OK, 0 rows affected (0.00 sec)
然后导出数据:
[root@banping 3306]# bin/mysqldump --default-character-set=utf8 banpingdb blog_score_result -u root -p>/tmp/blog_score_result.sql;
去从库导入数据:
[root@banping 3306]# bin/mysql --default-character-set=utf8 banpingdb -u root -p</tmp/blog_score_result.sql;
Query OK, 0 rows affected (0.00 sec)
到主库解锁这个表:
mysql> unlock tables; Query OK, 0 rows affected (0.00 sec)
这样就完成了数据一致性的操作。主从复制的同步也正常了。这种事情的处理要结合实际应用情况,不可照搬就是了。
Postfix邮件系统的配置主要通过main.cf文件,路径在/etc/postfix下。如果要允许其他服务器使用Postfix的服务,需要重点关注inet_interfaces和mynetworks这两个参数。
# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on. By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
inet_interfaces = all
要注意的是,修改这个参数必须要停止再启动Postfix,单纯的restart是不生效的。
# You can also specify the absolute pathname of a pattern file instead
# of listing the patterns here. Specify type:table for table-based lookups
# (the value on the table right-hand side is not used).
#
mynetworks = 11.12.13.14,127.0.0.0/8
这个参数指定了要使用Postfix的IP地址,如果不设定正确,会在maillog里看到类似如下的提示信息:
Dec 1 11:16:21 mail postfix/smtpd[21197]:warning: 11.12.13.14: address not listed for hostname banping.com
Dec 1 11:16:21 mail postfix/smtpd[21197]: connect from unknown[11.12.13.14]
Dec 1 11:16:21 mail postfix/smtpd[21197]: NOQUEUE: reject: RCPT from unknown[11.12.13.14]: 554 5.7.1: Relay access denied; from= to= proto=ESMTP helo=<banping.com>
自己搭建邮件系统还是比较折腾的,使用Amazon ses是比较便捷的做法。
Xtrabackup是备份MySQL的很好的工具,目前最新的版本是1.6.3,和之前出过的1.6版本改进了不少,官方Percona目前对1.6.3的文档也改进了很多。安装包不再包含MySQL源码文件了,要根据需要从Percona在Amazon aws的服务器上下载,当然也可以自己下载需要的文件。
安装Xtrabackup,可以通过源码安装,也可以拿二进制程序过来直接使用,以下是源码安装的过程:
[root@data banping]# wget http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-1.6.3/source/xtrabackup-1.6.3.tar.gz
[root@data banping]# tar zxf xtrabackup-1.6.3.tar.gz
[root@data banping]# cd xtrabackup-1.6.3
[root@data xtrabackup-1.6.3]# AUTO_DOWNLOAD="yes" ./utils/build.sh 5.5
自动下载的是libtar-1.2.11.tar.gz和mysql源码文件,mysql的版本根据给定的参数识别,可选的有以下版本:
| Value | Alias | Server |
|---|---|---|
| innodb51_builtin | 5.1 | build against built-in InnoDB in MySQL 5.1 |
| innodb51 | plugin | build agsinst InnoDB plugin in MySQL 5.1 |
| innodb55 | 5.5 | build against InnoDB in MySQL 5.5 |
| xtradb51 | xtradb | build against Percona Server with XtraDB 5.1 |
| xtradb55 | xtradb55 | build against Percona Server with XtraDB 5.5 |
默认libtar并不会安装,如果需要使用stream功能,需要手动安装这个程序。安装完成后,会生成一个xtrabackup_innodb55文件,可以用它恢复innodb数据,文件的路径如下:
| Target | Location |
|---|---|
| innodb51_builtin | mysql-5.1/storage/innobase/xtrabackup |
| innodb51 | mysql-5.1/storage/innodb_plugin/xtrabackup |
| innodb55 | mysql-5.5/storage/innobase/xtrabackup |
| xtradb51 | Percona-Server-5.1/storage/innodb_plugin/xtrabackup |
| xtradb55 | Percona-Server-5.5/storage/innobase/xtrabackup |
恢复的方法如下:
[root@data recover]# /banping/xtrabackup_innodb55 --prepare --target-dir=/banping/recover/
prepare就是recover的过程,也就是通过前滚和回滚使数据一致,target-dir就是备份出来的文件路径。这一步的操作和MySQL Server是没有任何关系的。官方还建议执行两次prepare以便生成新的redo文件,个人认为是没什么必要的。
关于1.6版本的安装及备份和Xtrabackup的原理,请参见我以前的文章:
http://www.banping.com/2011/04/14/xtrabackup-mysql55/
http://www.banping.com/2011/05/24/xtrabackup-stream-mysql/
http://www.banping.com/2011/07/01/xtrabackup-process-backgroud/
技术组织
历史归档
广告位


