“他人笑我太疯癫,我笑他人是怎么看出来的呢?”一个被数据库耽误的段子手的座右铭竟是酱紫风趣幽默。在介绍胖子职业之前,先认识他这个人,也许你不会相信胖子是个程序猿,而且还是个头脑冷静,思想沉着数据库工程师。胖子平时的爱好是激烈对抗的蓝足球,喜欢徒步旅行,喜欢脱口秀讲段子,喜欢编剧拍视频。这样外向的人和程序猿攻城狮的标签几乎没有半点联系。
胖子・Oracle数据库开发
扬长避短,结缘Oracle开发
如果不是大学选择了软件工程专业(这个在胖子大学之前,什么也不知道的专业),也许他现在会像池子李诞一样从事脱口秀行业,或者像小沈阳宋小宝一样跑各种场子。
大学第一年,胖子什么也没有学到,导致期末挂了4科,包括一门专业课。那时候,他已经走到学业低谷期,一度怀疑当初的选择。他曾想换专业,但一想到换专业也是从头学起,这个行业最起码学习了一年,何必再从头开始呢?其实任何人都想成功,为什么不逼自己一次呢?从那时开始,他便每天复习,预习,拉着同学问,终于算有点入门。尤其他发现了数据库这门课程,在大家都没有兴趣或者感觉很难的时候,他发现竟爱上了它,而且感觉非常简单。大三是专业开始定方向的时候,对于编程,胖子还是菜鸟(到现在还是不明白Java的三大框架),教数据库的班主任专门提议他去学习Oracle数据库。因为数据库不用Java那些代码,避开Java、C++那些模式之类的东西。发挥专业所长,胖子听从了老师的建议,报名Oracle培训班。就这样他非常轻松愉快的学习了4个月Oracle,并考取了OCP证书。虽然在编程方面还是菜鸟,但是在数据库,尤其Oracle数据库方面,他算是中级。最起码毕业有口饭吃,不用做啃老族。
Oracle坎坷开发路
胖子跑了一个多月的社会招聘,终于在大四上学期找到了一家不错的工作。但入职不久,他就经历了一次打击。第一次和组长出差到客户现场,结果他发现什么也不会,在大学和培训机构学到的知识根本用不上。只能每天站在组长的后面,看着组长开发。两天的时间,他感觉过了两年。出差结束回到公司,为了不再出现第一次的情景,胖子每天都利用下班时间学习,几乎每天只睡5个小时。ITPUB、51CTO等各种技术相关的论坛网站都有留言学习,Linux shell脚本的编写、Java 开发、Oracle管理运维都提高了很多。终于迎来了第二次出差机会,胖子只身一人来到客户现场解决数据库数据上传缓慢问题。虽然他在公司测试通过,可客户现场还有很多突发情况。
胖子印象最深的问题是他把Oracle数据库内存参数修改为机器系统的80%(机器内存是16G,本打算修改为12G),结果修改完导致数据库不能启动。经查,他发现32bit的操作系统Oracle内存参数不能超过1.7G。而他之前用的都是64bit系统,根本没有注意这个问题。加上他的技术并不娴熟,只能求助以前的老师,最后胖子利用数据库参数文件将Oracle内存修改为1.7G,但数据传输缓慢的问题仍然没有解决。他先从软件代码用到sql语句开始优化(数据库缓慢问题80%都是sql引起的)。利用AWR报告找到Top 5的sql语句,发现里面有delete from table1;将其修改为TRUNCATE TABLE table1;(同样是删除表,delete属于DML语句,操作会放到回滚段里面,TRUNCATE不会,delete做多了就会产生很多碎片,高水线(High Watermark)保持原位置不动,TRUNCATE会将高水线复位(回到最开始),这是其与delete的本质区别)速度比以前快了一点,但还没有达到预想的效果。数据库环境搭建是Java程序员安装的,所以胖子决定从Oracle数据库着手,首先停掉了归档日志开关,其次修改了在线日志文件大小,最后修改了临时表空间大小,几次修改之后,终于速度达到了客户的要求。
因为优化数据库是在周末,出现问题可以有时间解决,而且还有很多数据库方面的大神在帮助他,数据库缓慢问题得以解决。虽然胖子在公司测试很多次,但还是不如在现场真实操作。如此强压环境下,人的抗压性和能力都会发挥出来,最起码胖子是这样的。
Oracle对初入职场人的选择和影响
如果一个人想成功,一定是发挥自己的优点去工作,避开自己的缺点。
Oracle数据库的市场占有率达到了60%以上,系统也成熟,各种学习资料、问题解答都有很多地方可以查到。最重要的是数据库行业的待遇和受人尊敬程度在整个行业都是最高的。作为市场的龙头软件商,胖子也被它俘虏了。
数据库分为开发、管理、运维。对胖子这种刚入门的菜鸟来说,开发是最容易入门的,也是成长最快的。虽然工资还是比较少,但是工作内容和强度会比其他程序员(Java工程师、测试工程师)轻松很多,工资却和他们一样(为啥这么气人呢)。刚接触Oracle时,他发现Oracle很简单(相对于Java、C++等编程),等真正进入之后,才发现它很庞大。只有不断的去学习数据库的核心,才能真正驾驭它,不会被这个行业抛弃。而且真正学会之后,会有很多方向去选择,不再局限Oracle开发、运维、管理这些。你可以选择到目前流行的大数据、云计算等等,你会比其他职位(C++\安卓\ios等工程师)更有优势。
目前国内企业事业的数据库大多数是Oracle 10g和11g数据库。这对于Oracle从业者又是个挑战的机会。在这个大数据时代,企业都要面临Oracle数据库升级或者迁移的瓶颈,而且大多数企业都没有专职的DBA团队或者岗位。对于职场迷茫的你,会是另一番机遇。
如果你也愿意分享你的故事,请加51CTO开发者QQ交流群 312724475联系群主小官,期待你的精彩故事!