好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

蓝的成长记——追逐DBA(16):DBA也喝酒,被捭阖了

深蓝的blog: http://blog.csdn.net/huangyanlong/article/details/45826877

 

【简介】

        个人在oracle路上的成长记录,其中以蓝自喻,分享成长中的情感、眼界与技术的变化与成长。敏感信息均以其它形式去掉,不会泄露任何企业机密,纯为技术分享。

        创作灵感源于对自己的自省和记录。若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已。

        欢迎拍砖,如有关技术细节表述有错误之处,请您留言或邮件(hyldba@163.com)指明,不胜感激。

【前言】

       这是一部个人记录的成长杂记,既然步入到oracle的这片蓝海,免不了一路的奔波与不断的考验。借由此杂记与库友们分享蓝的成长历程。

       不知何时起对蓝有了一种说不出来的痴迷,痴迷其广博,痴迷其深邃,痴迷于近在咫尺却又遥不可及。

       而又说不清从何时起,注视于oracle的红色耀眼,照亮出眼前的一道光,未知与迷惑在自己的脚下开始初露些许人生的充实与青春的回馈。

       在追逐于DBA梦想的道路上步步前行。

 

做技术做久了发现思维容易被僵化,偶尔喝喝小酒也挺好。

                                                                                                       ——深蓝

        上海、北京、山东、河南、黑龙江、河北,一路走来,没有什么头绪的信手拈来的点点回忆,原来在酒桌上,技术的视野也可以得到扩展。无关于技术的杂记,却是工作中成长的一小小搓技术思维转变的感受。

        酒桌上的谈论,有时候话题可能很广,有时候老百姓眼中的政治、经济、名人、国事、家事、天下事在这里都是调侃的话题,各种角度,各种切入点,让我们有时候会觉得自己是个“白痴”,似乎很多“实情”都被隐藏起来,披上了一层华丽的面纱呈现在这个世界面前。酒后胡言,全当咱老百姓的插科打诨了,当然不会像某些名人那样,造成多大的社会舆论。我们要做中国好饭友,不录音!不拍照!不录像!我们只喝!!!

一、 IT 经济

( 1 )、政治格局与经济地域

        说到政治,太敏感,对于做技术,政治这些似乎离我们太遥远。但不提,又觉得少了点啥,政治如同是生活里的一部分,大到国家外交,小到为人处事,事事离不开政治二次。同样政治因素改变经济发展,高于技术层面的“技术”,学不来,学不来啊。

      “北”、“上”、“广”、“深”的经济、技术的高速发展,背后的政治格局,其推动力就不可小视。而我们作为技术人,很多事我们有必要知道,但没必要说,点到为止,多说无益。

        但我们应该明白一个道理,要想跟的上“技术浪潮”,只有进到高速发展的政治庇护环境下,我们才有可能追赶上技术的浪潮。

( 2 )、又想提提技术,热潮的互联网,数据库经济,什么叫去 IOE

        说到数据经济,这是需要有硬件、软件支撑的。当今火爆的互联网经济正是如此。都说互联网是个烧钱的行业,其实互联网行业对于 IT 技术的投资是相当之大的。比如淘宝,在面对双十一那种数十亿成交额,每分钟上百万访问用户的巨大的业务压力下,需要一个高效的架构体系。据网上透露的相关讯息, 2011 年时,淘宝网是全国最大的 hadoop 分布式计算集群,有超过 2000 多的节点, cpu 是 24000core 、内存是 48000GB 、磁盘有 24000 多块,每天以 50TB 级的数据级进行增加。数据上是名副其实的海量数据。据说有 40PB 海量的数据存储,分布在全国各地,支撑的流量超过了 800Gbps 。不仅仅如此,淘宝还拥有自主研发的文件存储系统( TaoBao File System ) 、缓存系统、 java 中间件、消息中间件系统,一套完善的应用框架构成了如此庞大的电子商务平台。同样,百度、腾讯等的业务系统也是如此这般,对系统架构的性能要求是非常之大的。之前流行过一句话:好的架构是进化来的,不是设计来的。对于电子商务网站来说,正是应了这句话。互联网如此的火热,这其中数据的安全性可想而知有多重要。那这样一来,对于“数据库”的管理需求度是否就会非常高涨呢?也不尽然,伴随着国家的宏观调控,去 IOE ( IBM 、 Oracle 、 EMC )浪潮逐步袭来,对于 oracle 技术人来说不知道是否应该支持这项壮举。因为单从数据库层面来说,原本占据数据库市场最大份额的 oracle 逐渐被互联网企业所舍弃。而是 mysql 、分布式数据库更受到互联网行业的追捧。对于 oracle 从业人员, oracleDBA 似乎离互联网渐行渐远了。这到底是怎么回事呢?

        伴随着 mysql 在互联网平台越来越多成功案例被人们所熟知。对于低成本,高性能成为了更多企业舍弃 oracle 的原因。而提及分布式的兴起,也是由于互联网这个针对海量数据处理的因素。选择分布式数据库应该说是明智之举,但这和舍弃 oracle 谈不上关系。因为分布式的概念很早之前就已经有了。这是业务系统的需求所致。还有些观点认为,对于分布式数据库,如 hadoop ,图形化的管理界面,让维护管理起来成本低、复杂度小,这是使用人员的福音确实管理人员的灾难,因为愈发简单化的操作,会丧失掉管理员的价值,这样下去,对于分布式,可能不再需要 DBA ,一个低成本的维护人员就可以应付了。而对于开发人员,似乎足以应付所有的问题。而对于 oracle ,虽然图形化管理界面的不断发展,针对 oracle 优化的第三方工具也在不断的完善,但对于 DBA 的需求依然存在。对于管理 oracle 远比管理分布式及其它数据库复杂。 oracle 被誉为数据库中最复杂的数据库产品是名不虚传的。常常有人说,玩的转 oracle ,你就有能力玩得转任何数据库产品,确实是有些道理的。因为对于 oracle 的复杂性上来说,即使一些工具展示了一些问题的表面现象,但没有经过专业全面下针对特定环境下的判断的话,通过工具给出的一些建议,对于数据库往往是有负面影响的。包括自身的 AWR 报告, DBA 有时会因为一些建议,反而让数据库性能有所下降的例子也是屡见不鲜。

二、业务与工作

( 1 )、漫无目的却关于技术

        最近在了解一点分布式理论的过程中,让我学习到了 shared 的三种模式( Shared Everthting 、 Shared Nothing 、和 Shared Disk )。下面是来自于网络上的分享:

        Shared Everthting: 一般是针对单个主机,完全透明共享 CPU/MEMORY/IO ,并行处理能力是最差的,典型的代表 SQLServer

        Shared Disk :各个处理单元使用自己的私有 CPU 和 Memory ,共享磁盘系统。典型的代表 Oracle Rac ,它是数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好。其类似于 SMP (对称多处理)模式,但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能。

         Shared Nothing :各个处理单元都有自己私有的 CPU/ 内存 / 硬盘等,不存在共享资源,类似于 MPP (大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好。典型代表 DB2 DPF 和 hadoop ,各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。

        我们常说的 Sharding 其实就是 Share Nothing 架构,它是把某个表从物理存储上被水平分割,并分配给多台服务器(或多个实例),每台服务器可以独立工作,具备共同的 schema ,比如 MySQL Proxy 和 Google 的各种架构,只需增加服务器数就可以增加处理能力和容量。                                                                                                                                                                                     ——摘自于网络

( 2 )、虚拟化的平台想到哪说到哪吧

( 1 )、虚拟化

        虚拟化,也许是一种全新的方向。减轻中小企业 IT 运营成本,让硬件资源利用最大化,管理便捷化,这正是虚拟化的存在意义。

( 2 )、什么是云?

        提及云,引用一下 goolgle 的观点:云是由分布式集群存储、分布式集群计算、分布式集群数据库构成的高性能架构。这也是我目前比较认可的。起码在互联网行业内,这是云的样例体现。云,我们还可以理解成通过低性能的多节点,形成一种高性能的运算效果。举个例子,比如一台 IBM 的小型机价值几十万,而一台 PC 可能很低廉,于是我们可以使用几十台甚至上百台 pc 来代替小型机来达到同样或者更高的运行性能。这就是云要实现的,让资源最大化的利用,以达到单一个体性能差,但整个云集群性能强的产品形态。

( 3 )、大数据其实跟 oracle 没啥关系

        大数据是啥?是 oracle ?当然不是!

        oracle 是软件产品或称其为解决方案。而大数据,要建立在海量数据的基础上,其实两者没啥直接联系。大数据是通过海量数据的分析,获得具有价值的产品和服务。而 oracle ,是管理和维护数据的一种工具或解决方案。这就是两者,看似贴近,但其实搞 oracle 跟搞大数据,完全就是两回事!

 

为了更好的理解大数据,下面摘取了一部分信息:

大数据价值链的3大构成:
    第一种是基于数据本身的公司。这些公司拥有大量数据或者至少可以收集到大量数据,却不一定有从数据中提取价值或者用数据催生创新思想的技能。最好的例子就是Twitter,它拥有海量数据这一点是毫无疑问的,但是它的数据都通过两个独立的公司授权给别人使用。
    第二种是基于技能的公司。它们通常是咨询公司、技术供应商或者分析公司。它们掌握了专业技能但并不一定拥有数据或提出数据创新性用途的才能。比方说,沃尔玛和Pop-Tarts这两个零售商就是借助天睿公司(Teradata)的分析来获得营销点子,天睿就是一家大数据分析公司。
    第三种是基于思维的公司。比如说一个例子,通过用户分享到网上的旅行照片来为人们推荐下次旅行的目的地。对于某些公司来说,数据和技能并不是成功的关键。让这些公司脱颖而出的是其创始人和员工的创新思维,他们有怎样挖掘数据的新价值的独特想法。——摘取完毕,来源于《大数据时代》。
( 4 )、领导的老经验,谈谈笑笑 故事 1 :修改参数换来的万元维护费

        这个故事是发生在许多年前, oracle9i 大行其道的年代里,我的领导的亲身经历。那是 oracle9i 产品,客户工程师做备份希望开启归档,但执行命令后就是无法开启。于是找到了软件开发商也就是当初的我们。前去解决这个问题,到现场以后很轻松就搞定了。这个其实很简单,说出了大家都会笑上一把,但也应了那句话,会则不难。对于 oracle9i 开启归档,不只是一个参数决定的。还有另外一个参数(具体参数就不提了,忘记了)需要开启,这样才能开启归档,于是我的领导就像英雄一样,修改参数,启动归档,客户拍大腿说真是青年才俊啊。同时客户也懊恼不已,开一个参数,他们签了几万元的维护费。

        那个时候提及 oracle ,是一个神秘、高深,不是什么人都能弄的一门技术。就是在这个大背景下,如今看来简单至极修改参数,那时候就是 oracle 维护人员的饭票来源。

        那个时候没有当今如此丰富的网络资源,一旦 oracle 出了问题,大多用户只能去找原厂或咨询公司,当然一旦真的要解决问题,就要支付一定的维护费用。原厂很多时候会让中小企业无法承受。但仍然存在另外一种情况,如果客户不是直接采购的 oracle ,而是通过某软件公司借由项目来供给客户使用的话,这样会降低一部分的成本。也就是说客户买软件,软件公司部署整个系统, oracle 作为软件产品中使用的数据库软件,客户并不关心 oracle 要不要单独付钱。就是这样,很多时候,都在说使用 oracle 是需要收费的,而正版软件就在官网上等着你去下载。这或许也是 oracle 的高明之处。演变成了一种高高在上,却又普及大众的一种另类“高姿态”。这个和微软 visual studio 战略很相似。大型企业使用 oracle , oracle 盯着看,必然要收费!中小企业用 oracle 呢?很多时候就睁一只眼闭一只眼了。如果真的要斩尽杀绝, oracle 受众群体就会减少,这样反而会抑制自身发展,于是呢,即开放又保守的态度,让这个 oracle 产品在 2014 年前占据了数据库 40% 以上的市场份额(有点记不清了 ~~ 总之,记得当初说的是很高 ~~ 似乎比 40% 还高,印象中好像已经接近 70% 市场份额)。除了这种市场受众度,对于一个好产品的发展,当然本身产品好是必然的。这个也是后来我才知道的, oracle 的开发团队从官方那里看到是上万人的开发团队。但跟原厂的哥们交流后才知道,真正核心开发人员也就是五六十人,而且是十几年没有太大变动,就这样,一个产品逐渐变成经典,已然成为传奇。这就是十几年专注的力量。

故事 2 :数据库无法启动源于中文主机名

对于主机名,说来大家应该都不陌生。我们先来回忆一下在 linux6 及之前版本的操作系统上,对于主机名设置的方法。

 

举例: LINUX6 、 LINUX5 版本主机名设置

修改hosts配置
[root@centos ~]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       centos localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
10.53.105.65     hyldb
~
~
修改network配置
[root@centos ~]# vi /etc/sysconfig/network
--修改前
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=centos
GATEWAY=10.53.105.255
~
~
--修改后
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=hyldb
GATEWAY=10.53.105.255
~
~
--重启系统,使配置生效

[root@centos ~]# reboot
Broadcast message from root (pts/3) (Sun Sep  7 00:00:08 2014):
The system is going down for reboot NOW!
至此,主机名修改完成。

 

举例: LINUX7 版本主机名设置

方式一:临时修改主机名

语法:
#hostname <主机名> 
例:
[root@hyldb /]# hostname hyltest
[root@hyldb /]# su -
Last login: Sun May  3 17:58:30 CST 2015 on pts/1
[root@hyltest ~]# 
方式二:命令修改主机名

语法:

#hostnamectl set-hostname <主机名>

查看 hostnamectl 命令帮助

[root@hyldb ~]# hostnamectl -help
hostnamectl [OPTIONS...] COMMAND ...
Query or change system hostname.
  -h --help              Show this help
     --version           Show package version
     --transient         Only set transient hostname
     --static            Only set static hostname
     --pretty            Only set pretty hostname
  -P --privileged        Acquire privileges before execution
     --no-ask-password   Do not prompt for password
  -H --host=[USER@]HOST  Operate on remote host

Commands:
  status                 Show current hostname settings
  set-hostname NAME      Set system hostname
  set-icon-name NAME     Set icon name for host
  set-chassis NAME       Set chassis type for host

例:

[root@hyltest ~]# hostnamectl set-hostname hyldb
[root@hyltest ~]# su - 
Last login: Sun May  3 18:02:11 CST 2015 on pts/1
[root@hyldb ~]#  

方式三:配置文件手工修改主机名

语法:

修改 hostname 配置文件

例:

[root@hyltest ~]# cd /etc
[root@hyltest etc]# vi hostname
hyldb
~
[root@hyltest etc]# su - 
Last login: Sun May  3 18:03:15 CST 2015 on pts/1
[root@hyldb ~]#

注意修改主机名后,对 /etc/hosts 文件相应的添加主机映射名称。

[root@hyldb etc]# cat hosts
127.0.0.1                  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1                        localhost localhost.localdomain localhost6 localhost6.localdomain6
10.53.105.10               hyldb

        回忆完主机名设置后,讲讲我领导的这个故事吧,说来也挺简单,就是这个简单的原因,当时让客户头痛了一把。因为当时问题的源头并没有暴漏在主机名层面,而是体现在了早期的 oracle 数据库上。那次当接到故障描述时,是这样的:甲方的工程师在新平台上对数据库安装后,数据库无法启动,并且卸载重新安装数次也无济于事,不知道出了什么问题。这就是客户的问题描述。然后呢, O( ∩ _ ∩ )O 哈哈 ~ ,领导到达现场,查看平台状况,几次简单的常规查看命令:主机配置、磁盘空间然后是主机名,发现了个问题。主机名是中文的!!!这不太好吧 ~~ 其实当时我方也是在以经验的基础上看,一般业务系统上的主机名还没有使用中文命名的。其中的原因就是可能出现很多莫名或烦人的错误吧。这里可能会和字符集有关,语言的改变可能引发很多不确定问题。这次也是一样,于是我的领导告知了用户,建议把中文名改成英文,经与客户协调后,允许了这件事。将主机名改为英文,启动数据库,成功。问题解决。 \(^o^)/~ 是不是有点搞 ~~~~

        这个小故事也是让我在日后的工作中,当客户前期咨询平台语言时,我都会很坚定的答复:操作系统、数据库全部都要求是英文的!底层平台上的“东西”,一定要是英文的!什么?硬件厂商装成了中文操作系统?快!快!改成英文!!!(他不改我给你改 ~~ )  

( 5 )、客户给我上了课,开发从 JAVA 夜未眠开始——用程序的思维指导 DBA

        无论是以前的铁路行业,还是后来的政府机构,自踏入 oracle 这行开始,对于客户的角色常常给我留下的定式是:他们不关心技术,只在乎系统好使不?但随着工作经验的积累,在东北遇到的客户,几次交涉,几次酒桌上的技术交流,这种印象开始有了点转变。

        接触到的这位客户的领导。是一个曾经获得过程序界高薪 offer ,而且是同时代在 IT 正规军里都难拿到的这么一个 offer 的人选,但他最终选择投身于自己所热爱的另一事业当中去了。为何如此选择,这里就不说了,当然我也不知道。但正是与这位领导的几次交流,其实谈不上交流,更多的是受教。也总能听他谈起曾经日日夜夜,奋斗在程序世界里,正如“ java 夜未眠”里描述的那段经历一样。现在听来,具体的技术方法少了,但思维方式,很多时候能对我有所帮助。

         原来客户中的“领导”也曾是技术牛人!

         于是上网翻阅了这本“ JAVA 夜未眠”,闲暇之时读来,还真活脱脱像是看小说,不仅对于程序层面,而且在技术的思维方式上也得到了指导。这本书是 2003 年左右出的,而如今看来,其中很多的道理、领悟及感受,对现在依然是受用的。想起那句话,历史不会重演,但往往都与历史惊人的相似。不管 IT 界是在以怎样的速度成长着,很多道理依然没有变化。脑海中也掠过一个画面:在与客户打交道的日子里,也不乏会遇到是从技术出身成长起来的领导,在他们的言语中,能感觉到的是一种踏实,对当今很对新兴技术的一种“放肆”。比如对云的不屑一顾。当然这里展开说就多了,没有绝对性的谁对谁错。不能指责领导们脱离了当今的 IT 浪潮,认为他们是抛开技术谈大道理。但我们静下来思考的时候,很多时候却赞同了他们的一些观点。很多的趋势是被炒作起来的,而不是真正的被应用起来的!当然,对于技术而言,没有人能预知未来。只有交给市场去验证存在的意义和价值。

三、后记——喝大了——想想未来:不被看好的 oracle DBA  

“劲酒”虽好,可不要贪杯哟,这里不是打广告,千万别把“白酒”当“啤酒”喝。

 

常在河边走,哪有不湿鞋。深蓝也是一样,一样喝大过,断片了。

 

敢喝和能喝,两回事呐!看来人“老”了,只是敢喝却不能喝了, O( ∩ _ ∩ )O~~

                                                                                                                                                                  ——深蓝谨记

                                                                                                                                                                                  2015 年于郑州

        面对追逐梦想和未来如何转型,自己有些慌张和不知所措了。刚刚踏入 oracle 不长时间,随着了解程度的加深,所接触层面、交流平台的扩张。对于 oracle ,似乎人们所谈所感,这个曾经光环万丈的巨人,似乎正承受着冲击。这股热浪,似乎也左右着 DBA 这个职业的未来的走向。

        而对于 oracleDBA 人员如何转型,始终是一个躲不掉的问题,面对技术领域的现状,再加上对于未来的可控推断。似乎对于 DBA 而言,正在经历着一次变革,一次行为艺术,行为角色的转变。

        我们正处在去 IOE 的浪潮之中,而在后 IOE 时代, oracle DBA 将如何存活?

        相信大势所趋下的物尽其用,将会很大程度上去左右“现在”或“未来”的企业去选择怎样的数据库架构。对于关系型数据库, oracle 将一直称霸,这个我一直坚信。而对于企业级去选择分布式的 nosql 数据库还是其它类型的数据库,需要针对于业务的不同需求。如果单从成本而言,如今 oracle 的标准版价格已经低廉很多,完全可以满则中小企业的业务系统需求,包括 oracle 一直在推的去 IE ,用“小型 oracle 一体机”来代替 IBM 的小型机和 EMC 存储组成的高昂的成本代价。包括去 IOE ,政策中多于技术发展有利的一面正是,未来的 IT 架构将拜托传统独大对于技术的层层壁垒。让架构选择性更加灵活,而这也才是去 IOE 的真正目的。

        对于 oracle ,据说 2014 年占据中国数据库市场份额最大的仍然是 oracle 。虽然目前受到冲击,但 oracle 似乎眼光看的更远,对于未来的“云”,似乎才是 oracle 未来要打硬仗的战场。

        看看下面这幅图。

        中圈开球,或许是比赛才刚开始,也或是下半场,或是被进球了,中途接入的画面我们很难辨认,而下面的比赛,就在球员们自己的脚下。。。

        当我们踏入到 oracle 这边海洋里的时候,也许正处于鼎盛,也许正走向末路,也许只是暂时的一点波澜,未来的走向我们只能预测而无法预知。总之, oracle 就在我们的眼前进行着转变,如何选择,是放弃还是坚持,只能通过时间来验证,对于“云端”,真正的比赛似乎才刚刚开始。

 

系列链接:

蓝的成长记——追逐DBA(1):奔波于路上,挺进山东  

蓝的成长记——追逐DBA(2):安装!安装!久违的记忆,引起我对DBA的重新认知

蓝的成长记——追逐DBA(3):古董上操作,数据导入导出成了问题  

蓝的成长记——追逐DBA(4):追忆少年情愁,再探oracle安装(Linux下10g、11g)  

蓝的成长记——追逐DBA(5):不谈技术谈业务,恼人的应用系统

蓝的成长记——追逐DBA(6): 做事与做人:小技术,大为人

蓝的成长记——追逐DBA(7):基础命令,地基之石 

蓝的成长记——追逐DBA(8):重拾SP报告,回忆oracle的STATSPACK实验

蓝的成长记 — — 追逐DBA(9):国庆渐去,追逐DBA,新规划,新启程

蓝的成长记——追逐DBA(10):飞刀防身,熟络而非专长:摆弄中间件Websphere  

蓝的成长记——追逐DBA(11):回家后的安逸,晕晕乎乎醒了过来  

蓝的成长记——追逐DBA(12):七天七收获的SQL

蓝的 成长记——追逐DBA(13):协调硬件厂商,六个故事:所见所感的“服务器、存储、交换机......”

蓝的成长记——追逐DBA(14):难忘的“云”端,起步的hadoop部署  

蓝的成长记——追逐DBA(15): 以为FTP很“简单”,谁成想一波三折

 

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。

深蓝的blog: http://blog.csdn.net/huangyanlong/article/details/45826877

蓝的成长记——追逐DBA(16):DBA也喝酒,被捭阖了

标签:dba   oracle   杂记   

查看更多关于蓝的成长记——追逐DBA(16):DBA也喝酒,被捭阖了的详细内容...

  阅读:34次