【51CTO.com原创稿件】“他人笑我太疯癫,我笑他人是怎么看出来的呢?”一个被数据库耽误的段子手的座右铭竟是酱紫风趣幽默。在介绍胖子职业之前,先认识他这个人,也许你不会相信胖子是个程序猿,而且还是个头脑冷静,思想沉着数据库工程师。胖子平时的爱好是激烈对抗的蓝足球,喜欢徒步旅行,喜欢脱口秀讲段子,喜欢编剧拍视频。这样外向的人和程序猿攻城狮的标签几乎没有半点联系。
胖子·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联系群主小官,期待你的精彩故事!
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】