工作方面
1.为公司的DBA工作贡献更多的帮助,同时也希望接下来的四个季度绩效考核都可以拿A
2.对公司的分布式数据库有更深入的了解,在每次功能升级的时候,除了了解功能的使用外,更多的关注业务逻辑,以在问题出现时候快速定位问题
3.公司将会试点采用oracle,2010年,要把oracle掌握了
4.继续把时间管理的理念引入工作
学习以及个人成长方面:
1.把DBAhacker.com这个博客继续做好,博客是用来积累和沉淀的,希望可以把这个博客搞好~
2.在2月底前写好 mysql5.5 入门到精通 的pdf教程,既当作是重温基础知识,同时也是接触新的知识和技能
个人健康
坚持每天起床的时候做20个仰卧起坐
An Apple a Day Keeps the Doctor Away
早起一杯热开水,迎接新的一天~!
Monthly Archives: 十二月 2009
2010年的计划和愿望
互联网技术峰会的一些收获[文字版]
12.26的时候参加了 it168在上海举办的 互联网行业技术研讨峰会(2009ntcc),点击进入官网
参加完这个大会,收获了很多,确实是不枉从杭州到上海的奔波啊,只可惜我还没买相机,也暂时没拿到ppt,这里先用文字描述下我的收获吧
大会关键词 web2.0 & 网游高可用性架构 ,服务器虚拟化技术, 系统局域网监控 ,产品广域网监控
在这次大会进行演讲者和主题
序号
演讲者
主题
A
盛大技术保障部总监 黄骁虎
盛大网游安全架构、监控体系实践
B
51.com 研发经理 林泰君
借我一双慧眼――Web2.0的运营监控及数据统计
C
腾讯互动娱乐运营部资深架构师 王翱飞
腾讯QQgame高性能服务器集群架构应用实践
D
我友网运维总监 马凯
CDN与Web网站性能优化应用实践
盛大游戏–黄骁虎演讲中提到的让我印象深刻的几点
1.规范化管理 盛大游戏的运维一开始也是几个人的小组,随着人员的增长,导致系统出现问题的根源大多数都是人为操作导致,对产品运维技术人员,需要有行为规则去规范化
2.对使用的技术要有把握 在分享盛大网游安全架构的过程中,演讲人提到,对于一个新上线的产品,在产品策划的阶段,是难以去精确计算产品上线后的用户数量的.如果一款游戏非常受欢迎,但开发的时候只分配少量的服务器,需要花很多功夫去扩容,这是一个悲剧了;反之,游戏没有预期的受欢迎,服务器资源都浪费了,也是一个悲剧.
盛大后来采用了基于vmware的服务器虚拟化技术,生产环境跑的服务器,自然少不了监控,一开始vmware是提供状态查询接口的,还可以凑合用用;但后来vmware升级了,把接口都关闭了,没法去做到自动化监控了,vmware是不开源的,就相当于把自己的大楼建在沙子上,实在不放心;解决的方案是盛大自己搞了一套虚拟化的系统,我在网上搜了下,资料很少,不知道盛大是否采用某个开源的系统来进行自定制。
3. 管理数量巨大的服务器的经验分享 之前在twitter看过csdncto 发的推 @csdncto:中国互联网企业服务器数量排名腾讯阿里系百度盛大网易搜狐新浪这七巨头是第一集团万台服务器俱乐部;如何管理百万台服务器, 盛大自己开发了一套服务器远程管理系统(octopod),原理是基于ssh协议,另外一个就是上面提到的服务器虚拟化软件系统。
51.com 林泰君同学的演讲精华
1. 非常好的演讲标题 : 林同学的题目是,借我一双慧眼–web2.0 的运营监控及数据统计,谁说搞IT的就只会写代码啊,林同学这个题目拿去高考作文是可以拿高分的
2. 让用户”自动发送使用报告”: 曾经有VC问51.com,你们有多少pv? 这个问题把当时候的51.com的所有总监问倒了。很快,他们采用最快捷的方式,用google网站分析工具,结果是第二天收到google发来的来信,内容是51.com的页面分析超出google分析工具的容量上限…
另外一方面是,国内的网络情况非常复杂,有多个宽带服务提供商,而不同的服务商所提供的网络质量是不一样的,很多时候51.com的用户打电话给客服,说他们某个功能用不了,但51.com的工程师却发现自己用是正常的。
解决方案,51.com自己做了一套”广域网监控系统“,实现原理很简单,但非常实用,他们把统计脚本(javascript)嵌入到前台页面,统计某个功能的点击情况,页面打开的速度,数据库的返回结果时间记录,对比竞争对手的类似页面的访问速度,从这个监控系统,51.com的各个部门的人都可以拿到自己需要的数据: QA组可以知道51.com的哪个功能在哪个地区使用不了,商务组可以知道某个频道的pv值,DBA可以知道某个功能在使用的时候速度慢是因为数据库的性能; 这个系统所使用的数据库服务器资源,仅仅是两台,一台是master,一台是slave
QQgame 架构师 王翱飞演讲内容收获
1. 演讲效果非常好 王同学上场的时候先揶揄了下自己,说自己入行4年,不敢称“资深架构师”,但也非常感谢it168给他的这个称号…
2. 对高可用性架构的形象的描述 对应high-available这个东西,听的很多,看了也很多,王同学用了一张金字塔的图来描述高可用性架构的标准和事项,待我拿到ppt,再详细补充
3. QQgame应对国内宽带服务提供商”诸侯混战”的对策 网络游戏如果出现玩的过程很卡,质量就大大降低了,而国内的宽带服务是因地而异的,盛大游戏的对策是全国200多个机房来解决这个问题,腾讯的做法是建立东南西北四个数据中心来解决网络延时的问题,而数据中心怎样实现数据同步,这个问题王同学没有直接点明。某专业人士推测应该是腾讯自己花大钱购买专线光纤,用光纤通道来实现数据同步….
你应该知道的linux命令 — lsof
在linux下有很多好用的命令,今天这里介绍lsof 命令
lsof命令是什么?
可以列出被进程所打开的文件的信息。被打开的文件可以是
1.普通的文件,2.目录 3.网络文件系统的文件,4.字符设备文件 5.(函数)共享库 6.管道,命名管道 7.符号链接
8.底层的socket字流,网络socket,unix域名socket
9.在linux里面,大部分的东西都是被当做文件的…..还有其他很多
怎样使用lsof
这里主要用案例的形式来介绍lsof 命令的使用
1.列出所有打开的文件:
lsof
备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位
2. 查看谁正在使用某个文件
lsof /filepath/file
3.递归查看某个目录的文件信息
lsof +D /filepath/filepath2/
备注: 使用了+D,对应目录下的所有子目录和文件都会被列出
4. 比使用+D选项,遍历查看某个目录的所有文件信息 的方法
lsof | grep ‘/filepath/filepath2/’
5. 列出某个用户打开的文件信息
lsof -u username
备注: -u 选项,u其实是user的缩写
6. 列出某个程序所打开的文件信息
lsof -c mysql
备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成 lsof | grep mysql, 但是第一种方法明显比第二种方法要少打几个字符了
7. 列出多个程序多打开的文件信息
lsof -c mysql -c apache
8. 列出某个用户以及某个程序所打开的文件信息
lsof -u test -c mysql
9. 列出除了某个用户外的被打开的文件信息
lsof -u ^root
备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示
10. [...]
总结–我的提高DBA工作效率实践
入职接近半年了,大四即将结束的时候重看了一些好书,其中一本是高效能人士的七个习惯 ,还有最近读的系统管理员的时间管理 ,这两本书都讲了很多提高工作效率的技巧
这里,总结一下自己提高日常DBA工作效率的小工具
1.数据库表,字段定义在线查询
在入职第三个月,接到一个任务是为我负责的数据库的表和相关的字段进行注释文档的编写。这个事情在学校做项目也搞过,提供一 个数据库定义记录的文档是必须的,可让开发人员和DBA都知道表的具体作用,但如果是写到一个word文档,更新的时候麻烦,你每 改一次数据库就要打开那个文档更新,而其他人还需要重新下载最新版本。
解决方案: 在公司自己开发的分布式数据库系统库里面增加两个表来,一个是记录表注释,一个是记录字段注释。使用jsp连接到这 个数据库,给出表列表和根据表名字查询表定义,字段定义,索引信息,访问语句信息等对开发人员有参考价值的信息
效果: 由于在DBA修改数据库的时候就把定义信息插入到上面两个表,所查询到的定义都是和产品库一致的信息,开发人员可以很方 便的查询到想要的信息,而DBA也不再需要用word文档来记录表的定义了。
2.把DBA的部分工作交给脚本自动化完成
公司的SA组的同事们为我们DB组搭了个cacti 来监控DB服务器,每天早上回到公司的第二件事就是扫一眼这个cacti来看看服务器的 负载。没错,是第二件事,第一件事是看报警邮件…
cacti只能监控常见的参数,但公司的MySQL打了自己的补丁,cacti是检测不到的,所以老大们写了个性能统计的脚本,每周的某个 时间跑一遍,用shell,sed,awk把需要的数据信息导成一个文件,然后各个产品的DBA把对应的文件贴到我们的wiki上面…. 问题是随着时间的增长,那个wiki页面打开越来越慢..同时也看很难看得出服务器和MySQL的性能趋势
解决方案实现: 服务端用crontab 定期执行shell脚本,把对应的数据插入到数据库,数据库层建立几张表来保存,web端使用 openflash chart 2开源组件和jsp来根据各种需求来展现性能数据,并根据DBA的周报格式自动生成周报
效果: DBA,开发人员,产品经理可以很直观的看到服务器的某些参数的性能趋势,而DBA写周报的时候,可以快速的拿到性能数据, 也不需要去手动维护wiki页面了,因为已经自动化了
3. 规范数据库备份操作
公司的数据库除了使用mysql 的replication机制来作为镜像库之外,还定期备份数据文件作为历史镜像,到一定时候会删掉很久之 前的数据,但产品库的数据文件一般都是G级别的,时不时发生磁盘空间不足备份失败,备份服务器空间不足,还有引发其他脚本的 执行错误等一系列的问题。
解决方案实现:
1.使用shell的sed和awk,还有linux的crontab定期执行脚本监控备份日志信息,如发现有错误,自动通知DBA处理
2.升级历史备份脚本,如果当前磁盘空间少于上一次的备份文件大小,就不做备份了,通知DBA处理
3.写一个空间预测脚本,根据上一次的备份文件大小,判断磁盘是否有充足空间做下一次的备份,这样可以确保数据备份的完整性~
效果: 进一步保证数据备份的完整性和规范性
以上是半年来所做的提高DBA效率的实践,不算很复杂,但做好之后,意义挺大。
希望2010年可以在提高效率这方面走的更远。
我为什么写DBAHacker.com这个博客?
2009年11月,我有幸被一家互联网公司录用,工作职位—数据库管理员(DBA)。
2009年11月-2009年6月,我不断去了解关于各种DBA的信息,Blog,论坛,例如 dbanotes.net ,anysql.com,ITPub论坛,CU论坛,mysqlperfomanceblog.com 以及 看了High Mysql Performance 2th Edition,对DBA这个概念开始慢慢的有深入的了解
2009年7月到公司正式入职,到现在的2009年的12月,真真正正过了大概半年的DBA生活,把以前学习到的DBA的理念,方法和技术基本都试了遍,有一句话可以道出我的心声–”实践出真知”。
很多的名人,比如唐骏,李开复等,第一份工作都是干了很长时间;之于我,自己的计划是把DBA这个岗位至少干三年以上,并在这个过程积累良好的工作习惯,学习方法。
怎样衡量我是否掌握良好的工作习惯和学习方法?我打算通过这个博客,把自己所掌握和学习的,可以帮助DBA更有效地管理数据库的理念,技术和方法给写出来,在分享中交流,在交流中提高!