无论是同学,同事,还是爸妈,都说我不会生活,在学校宅学校,在家就宅家,极少出门。
每个人都有自己对生活品质的理解,都有自己喜欢的生活方式,这就是每个人追求的生活品质。
有房有车不是我的生活品质,虽然我现在肯定想都不用想买这些东西,早得很;逛街看电影出入高雅场所也不是我的生活品质,这些地方与我这个依然穿着高中打扮的土鳖格格不入,但我依然觉得自己过的很有品质。
我对生活的追求就是,
对时间,能去看不能直接转化为技术的科学,这可能是非常抽象的数理逻辑,也有可能是宇宙的过去和未来;能去写也许最终用不上,但我喜欢写的程序,可以是编译器,甚至是数据库;在看书写程序的时候能有一杯饮料一点零食那就更完美了。
对于钱,有闲钱去买我想看的书,可以是Oracle Press全套、图灵系列全套,也可以是二十四史全集、亚当斯密全集;能在我电脑不足以支撑我学习技术需要的时候,买得起够用的服务器;再高一点的要求就是能租得起一套很小的单身公寓,放满我的书,安静的只住着自己,这也快可以做到了。
对机会,有机会一直学习我最热爱的计算机、编程,并且通过它免去了高考;有机会让我去做我想做的事,可以是OIer们并不太看得起的跟算法不搭边的DBA。
对环境,有环境让我和最牛的人一起共事,像Alibaba DBA Team众多的牛们。
这些我都可以做到了,我对生活品质的基本要求都满足了,我怎么会觉得我生活的没有品质呢,这就是我追求的生活品质。
开始介绍前先膜拜之~
密尔沃基市,是美国威斯康辛州最大的城市。1938年1月10日,圣诞刚过不久,密尔沃基市民像往常一样平静地生活着。咖啡店里,有人在议论着罗斯 福总统的救市新政策,有人在议论着到底该不该限制公民持枪。而更多的人呢,则一边品尝着密尔沃基闻名全国的啤酒,一边听着广播里面的实时战况:侵华日军登 陆青岛了。谁也没有想到,这个平静的日子将载入这座城市的史册。这天,密尔沃基路德教会高中的一名印刷管理员,高兴地迎来了一个健康的儿子。他为儿子取了 一个响亮的名字,这个名字在不久的将来,成为了计算机编程艺术的旗帜:Donald Ervin Knuth。
为了方便讲述,请各位读者允许我先剧透一件39年后的事儿。在1977年Knuth造访中国前夕,姚期智的夫人为他取了一个中文名字:高德纳。在下面的故事里,我们就使用这个名字来称呼他。
高德纳天资聪颖,他的超凡智力在8岁时就显示出来了。当时,一家糖果商在孩子们当中举办了一项有趣的比赛,要求用“Ziegler’s Giant Bar”里面的字母,写出尽可能多的单词。裁判事先准备了一份2500个单词的列表,可他却远远低估了小选手的能力,高德纳令人惊讶写出了4500多个单 词,毫无疑问地获得了冠军。他为学校赢得了一台电视机,还为每个同学赢得了一只棒棒糖,他的赛后感言是,我还能写出更多。
高德纳的高中就读于他父亲所在的路德教会高中,在这期间,他发表了此生第一篇学术文章。尽管如此,但这个充满了才华和个性的年轻小伙,并没有把心思 放在科学上,他的主业是音乐和作曲。他的老师,甚至包括他自己,十分怀疑他将来进入大学后,是否能够顺利学习数学。这种想法给高德纳造成了不小的自卑,尽 管他的平均分是学校历史上最高的。不过有句话说,真正的天才是1%的灵感加上99%的汗水,这话用在高德纳身上毫不夸张,18岁的他,在进入大学之后,丝 毫没有向数学屈服,而是花费无数的课余时间,大量练习数学难题,这种努力的劲头再加上他的天份,使他很快就在数学方面超过了其他同学。其实我们与其关注一 些科学家们不可模仿的机会和天赋,莫不如更关注他们如何面对困难和挫折。高德纳告诉我们,没有什么过不去的坎儿,方法就是抓紧时间干活。
高德纳就读的大学是凯斯理工学院,在这里他接触了IBM650计算机,这导致高德纳的音乐家梦想一去不复返,科学天赋终于重新占领了他的心扉。 1956年,在他第一次使用IBM650之后,他就躇踌满志地相信,说明书上介绍的程序,一定比不上他自己编写的。于是高德纳开始学习编程,他的第一个程 序是因数分解,不久之后,高德纳就对编程有了许多体会。当时高德纳还兼职管理学校的篮球队,于是他编写了一个程序,能够自动评估每名球员的价值,令球队的教练非常欣赏。这件事还吸引了CBS电视台的报道,后来高德纳、球队教练和IBM650的一张合影,还被印到了IBM650的宣传册上。1960年,高德 纳以公认出色的成就,打破了学校的惯例,同时获得了学士和硕士两个学位,大家来做个减法吧,算算高德纳此时年岁几何。
随后,高德纳从五大湖区,来到了美国西南岸,进入伯克利攻读数学博士学位。在此期间,他的编程生涯也正式开始了,他对外提供软件服务,为各种不同机 器设计各种稀奇古怪的编译器,曾经一个程序卖到5000美元。最值得一提的,就是他对ALGOL60编译器提出的测试方法。不知道大家是否还记得 ALGOL,这盏批量生产图灵奖的阿拉丁神灯。当时我们介绍过,ALGOL60的设计目标要求支持递归,而在设计编译器时,对递归的处理是很复杂的,所以 经常会因为编译器不成熟而出故障。高德纳编写了一段非常简单的测试程序,江湖人称“Man or boy test”,俗名“是男人就得-67”。高德纳说,只要用ALGOL60编译器来编译我的这段程序,如果运行结果等于-67,就说明这个编译器是纯爷们 儿,否则就只能算小男孩。
1963年,25岁的高德纳顺利拿到了博士学位,并留在伯克利任教。在毕业前一年,虽然还是研究生,但高德纳已经因为设计编译器而响誉计算机行业。 于是著名的Addison-Wesley出版社与他约稿,请他写一本关于编译器和程序设计方面的书。这本来是很平常的一件事,但您看看高德纳是何许人也, 不久之后,他简直把这件事做成了一件计算机科学史上的奇观。1962年约的稿,高德纳一直写到1966年还没交,在此期间他又是毕业,又是教书,终于人家 出版社急了。编辑找到高德纳,说这都四年了你写了多少啊,高德纳说,才写3000页手稿。编辑大囧,忙问都3000页了你怎么还不交,高德纳答曰,急啥, 我还没写到正题呢。编辑彻底雷住了,说那你出个多卷本吧……
《计算机程序设计艺术》,就这么诞生了。
阅读全文…
由于主机使用的磁盘有问题,需要对一个双Master集群主机全部进行换盘,这次经验非常有价值,遂记录之。
由于是双Master结构,所以可以分两次换,一次换备机一次换主机。
由于采用Solaris系统,可以使用ZFS快照功能来重建MySQL Replication。
首先换备机,应用连着主机,只要不点背到换盘的时候主机宕了,服务并不中断。于是开搞。
第一步,停止备机的Slave(执行Slave Stop),关闭备机(执行poweeroff)。
第二步,工程师换盘
第三步,重装备机系统。
第四步,重建备机MySQL数据文件
- 1. 备机创建ZFS Pool:
- 1.1 八块磁盘,第一块做了系统盘,剩下的7块做ZFS Pool,三组镜像盘,一个Hot Spare
- 1.3 执行zpool create data mirror disk1 disk2 mirror disk3 disk4 mirror disk5 disk6 spare disk7
- 2. 在主机做ZFS快照:zfs snapshot tank/dana@201005203. 传输快照到备机:zfs send tank/dana@snap1 | ssh host2 zfs recv newtank/dana(如果要后台运行先打通ssh通道),在备机可以执行zpool iostat 1 100来查看传输状态。
第五步,备机新装MySQL
- 1. 卸载已有的老版本MySQL:
- 1.1 pkginfo | grep mysql查看已经安装的旧版本mysql
- 1.3 groupadd 601 mysql; useradd -g mysql -u 601 mysql; 新建mysql用户和组
- 1.4 pkgadd -d path_to_mysql来安装自己的pkg包(安装之前新建mysql用户,否则不能安装)
- 2. 修改/etc/my.cnf,把目录修改至正确的目录
- 3. 查看备机的binlog目录,记下binlog大小和序号
- 4. 修改master.info的IP到主机,文件和pos改成上面看到的,因为备机现在的状态就是主机快照时的状态。
第六步,修改主机的复制。(Change master to 到备机目前的文件和pos)
换好备机后,切换应用到备机,对主机重复上面的步骤。
今天在Solaris服务器上发现crontab脚本都没有执行,很诧异。
Google之发现,Solaris对于没有密码、没有被启用、密码失效的用户是不执行crontab的。
查看/var/cron/log,果然发现很多bad user(mysql)。
由于新装的机器,明天还要操作,所以密码还没来得及设置,于是就bad user了。
passwd设置密码后,看到日志里一些人物已经有pid了。
以后服务器装系统不应图方便,装完就立刻设置密码~