jh's profile柔嘉维则@life.oracle.engPhotosBlogLists Tools Help

Blog


    September 20

    悠长假期(四)

    8 拜水都江堰

    我们住在会展中心加州花园酒店,因为表哥的律师事务所就在那栋楼里面。
    表哥,还有一表弟,我们今天去都江堰。四川地大物博,停车都被要求停过,要离别人家车远一点。

    余秋雨先生写过《都江堰》,开头说,我以为,中国历史上最激动人心的工程不是长城,而是都江堰。
    都江堰建在岷江之上,岷江的源头就是九寨的白水河。这里的水依然如白水河一样,毕竟是江,水不能清澈见底,但水的颜色,就是蓝色的九寨沟水和白色的雪山融水混合的颜色,而水流更加湍急,滚滚流向成都。
    我们从堰功道走到李冰石像,从宝瓶口,飞沙堰,鱼嘴一路走来,走过安澜桥,上到二王庙瞻仰李冰父子,是他们,让四川“风调雨顺,天府之国”真实地存在了2000多年并且一直存在下去。我们今天除了仰望,还是仰望,如二王庙上的横匾:高山仰止。

    ~~流向宝瓶口的水是成都平原的引用水,生活用水和灌溉用水

    二王庙前是传说中的茶马古道。在这条风光秀丽却异常艰险的古道上,中国商人们进行着茶马交易,历经了千年风霜,光荣和梦想。
    这条古道沿着岷江,走过300多公里,可以走到九寨沟。我们的旅行是多么奇妙,沿着一条江,从江尾到江头,从上海到九寨,到都江,从今天到远古。

    ~~茶马古道,沿着岷江通往九寨

    表哥说,在中印边关某地,他见过一对浙江夫妻,都60多了,每天守着通关的日子。那里的条件非常艰苦,而那对老夫妻的生意已经做得很大,根本不需要这么辛苦,表哥说难以认同。也许悠闲安乐的成都人是难以理解,而我多少有些共鸣,跨越多少时间和空间,总有这样一种精神存在,苦又算什么。

    在美丽的都江堰南桥吃饭,沿着滚滚岷江水,风光无限,品尝最地道的川菜,美食无限。这是四川之行最让人念念不忘的一餐。南桥别有一番风味,让我想起北京的后海,如果说后海满怀小资情调,那么南桥就如同岷江,大气而壮丽。

    ~~lg在找斑鸠,手臂上红包是家里蚊子咬的

    9 回

    每到一个城市,最先记住的那条路总是去机场的路。这条路,让我真实地感觉到,我们要回了。
    在飞机上看到成都的广告,一座来了不想走的城市。
    说不出什么原因,我突然感觉很留恋,是否不久的将来,我们会住在成都?

    夜幕华灯之下,我们终于回到了杭州。

    ~~这是我们的悠长假期

    生命终究也是一场旅行,每一段都是唯一的风景,历经万水千山,终又回到原点。
    如一片花瓣,一片一片,长成了色彩纷呈的生命之花。

    September 18

    悠长假期(三)

    4 感受成都

    天还黑,我们又奔赴机场。在“十次航班,九次黄掉,还有一班正返航”的九黄机场耽搁了一会儿。上飞机居然是头等舱,惊喜。窗外,蓝天,白云,雪山。

    ~~连日奔波,一脸倦容

    成都有lg的表哥,做律师的,我以为做律师的应该是很严肃的,没想到只是一个邻家大男孩。在成都的这几天,表哥带着我们吃喝玩乐,十分尽兴。下午睡饱了觉,晚上去吃成都最地道的火锅。那火锅跟杭州的味道还是不一样,调料是清油。
    都说成都东西便宜,不过我买了一双迄今买过最贵的鞋。穿了这双鞋,明天和lg一起回家。
    在成都我还找到了10年前吃过的美食--米花糖,一直念念不忘,10年后,居然还是一样的美味。晚上睡了一会儿又爬起来吃了两块,才美美地睡。

    5 初到邻水

    早上4个小时车后,我们到了邻水,直奔lg表姐家,因为没有打过电话,敲开门,表姐见到我们的时候一脸惊喜,惊喜得不知所措。
    下午又去看望了lg的姨妈。lg对这个姨妈,还有这个表姐和表哥感情很好。
    我们受到了热情的款待。中午和晚上表姐带我们吃了邻水美味。
    表姐给我们整理房间,还用香水洒满了整个房间,让我非常感动。

    6 回家

    李白说,蜀道难,难于上青天。
    我终于亲身体会了,且不说从杭州到上海,到成都,到邻水,单单从邻水到家里,我们就坐了出租车,摩托车,小巴,走路,还摔了一跤差点掉进河里,终于到了家里。
    我们受到了lg家蚊子的群起围吻,弄得我坐立不安。
    其实lg家很漂亮的,后面有一条大河,河水清澈,有人在钓鱼。我总是很喜欢水,因为我从小生长的地方,家门口,就有一条河,我所有童年美好的记忆都跟河有关。
    我们边看电视边聊天。lg说看完电视带我出去走走,没想到《狼毒花》一放放了6集。

    7 回成都

    一大早就被叫起来吃早饭,然后一家人就去集市上坐车。据说今天是赶集的日子。我说,啊,怎么这么早就要走了。
    于是我们又回到了邻水。给表姐夫买了两瓶酒。表姐做了很多很多菜,真的很好吃。lg和表姐夫不停地喝酒,不停地喝酒。
    下午回成都,回到成都已经是晚上9点,表哥还等着我们一起吃晚饭。因为有表哥带,我们不去声名在外的小吃街,就像在杭州不怎么去楼外楼一样,专找某些小饭馆,味道是非常地好。

    September 17

    悠长假期(二)

    3 九寨九重天

    天刚蒙蒙亮就起床洗澡,吃早饭,然后进九寨沟。我们算是自由行,除了景区的讲解员,并没有人带我们。
    让我来描述一下这里的水吧,这里的水太清,太蓝。尤其是五彩池。真真切切,童话世界。
    我问lg,水有生命吗?lg说没有。
    那么九寨沟的水呢?
    九寨沟的水是有生命的,而且有思想的。
    从峭壁的一眼水,从原始森林的汩汩一掬,他们汇聚,跳跃着,哗啦哗啦地,奔向白水河,他们越过高山峡谷,容纳百川,汇入岷江,形成滔滔滚滚之势,他们经过都江堰,灌溉成都平原,最后奔向长江,奔向大海。
    所以,九寨沟的水不仅有生命,而且是生命之源。

    ~~白水河,蓝色的是九寨沟水,白色的是雪山融水

    ~~五花海,孔雀海

    ~~五彩池,九寨的蓝宝石

    ~~镜海

    晚上我们去藏族人家吃烤乳牛,烤全羊,青稞酒,酥油茶,看歌舞,还看了藏族人家里养的藏獒和雪獒。虽然我觉得这些东西并不好吃,也算一番别样风情。阿罗说,这里的藏族人很富裕,尤其是沟里的人,每张310块钱的门票他们能拿到6块6,他们还沿着白水河开了很多很多酒店,甚至有人每天最辛苦的事情是,数钱。
    九寨沟天气变幻莫测,东边日出西边雨。

    ~~我们看到了彩虹

    ~~美丽的藏族姑娘

    悠长假期(一)

    1 旅行

    睡了个懒觉,收拾好东西,一个包包装衣服,一个包包装笔记本,2个相机,还有2瓶米国带回的营养品给lg爸妈。
    去西城广场广合缘吃烤乳猪和烤羊腿,然后坐出租车,动车组,地铁,到来福士广场蕉叶吃晚餐,然后又坐出租车,磁悬浮,终于到了浦东机场,21:20飞机准时滑行。

    每次坐飞机我都很激动并且很害怕。
    我:lg你看飞机飞得好高啊,地面上人看起来蚂蚁一样!
    lg:飞机还没飞呢,那个就是蚂蚁!
    (以上2句纯属搞笑)

    我们终于来到了成都,已经过了0点。这个传说中的城市,还未入睡,街上的灯光有些迷离,也许是我累了。
    生命终究也是一场旅行,每一段都是唯一的风景。

    2 美轮美奂

    6点就起床奔赴机场,奔赴九寨,还没来得及细细看成都呢。
    这一天全天给我的感觉只有一个字:冷。

    在飞机上就听说机场地面温度7度,下了飞机就感到凉,然后是冷。lg穿着凉鞋,我穿的还是7分裤。
    这里是阿坝藏族羌族自治州,我们坐上了车奔向黄龙。我们的导游是个藏族人,有点黑,总是很憨厚地笑,他有一个很长很长的名字,他说叫他阿罗就好了。阿罗给我们介绍一路的风景,风情和风俗,没想到我们双脚真实地踏上的这片土地,其实也是青藏高原的东部了。车子在大片大片空旷辽远起伏的高原蜿蜒前行,翻过了黄龙沟的雪顶,海拔4300米,这是我们这次旅行最高点。我们在雪顶下车感受高原反应,雾很大,很冷,头稍稍有些疼。

    阿罗说黄龙这里,鸟语花香饭不香,因为这里最新鲜的蔬菜就是土豆。果然。
    吃过饭,坐缆车上黄龙。细雨绵绵,寒风瑟瑟,这个小学课本中讲到的五彩池,如果有太阳,原本应该更漂亮吧。因为冷,其实并没有好好游览,只是沿着栈道走了一圈,细节与美景就不说了,用一个词来形容吧,美轮美奂。也许因为海拔高,除了冷,还觉得非常困。我跟lg说我现在最大的愿望,就是有间小木屋,有个温暖的被窝,我想睡觉。这里的温度2~3度,我冻得发抖。

    ~~其实我冻得发抖

    下了黄龙,我们向九寨沟出发。路上经过“九寨天堂·甲蕃古城”,这个据阿罗说在亚洲豪华程度仅次于迪拜7星级酒店,却有一个多么原始的名字。
    天黑之后我们到了九寨沟沟口,我们入住的酒店算是河景房,推开窗,是一条很大的河,白水河,水很干净,水流湍急。这条河由九寨沟的水和我们翻过那座雪山的融水汇合,是岷江的源头。

    美的,没的

    我相当孤陋寡闻,栋栋&蕾蕾告诉我滨江有个叫六合天寓的还有房子没卖完,周末我们跑去看。
     
    它的外表一下子把我吸引了,美轮美奂。房子没剩几套,我们看了3个,lg坚决否定,格局不好,不实用。 lg还说这个房子2年前就卖了,那时候5号楼里面空荡荡一片,啥也没有,也就没什么人买。
     
    可是我喜欢地一塌糊涂,虽然5号楼已经没了,可是在4号楼,天天望着5号楼,那也很好啊。虽然格局不好,1户3梯公摊大,没有阳台......可是它多么漂亮,多么个性,有艺术气质,如果我们有个房子买在这里,即使没有钱装修,没有入住,每天跑来看看,在墙上画画,那是多么美的事情。
     
    我关注某一个细节,因为一个细节可以容忍大缺点,lg关注全局,total,重实用大于外表,这是我们俩的对立。之前亲亲的超大客厅也是一眼看中的,但是,错过了2个,确信没有了买不到了。六合天寓也是我一眼看中。无奈,我们家出钱的人非常看不中,是没有商量余地的那种看不中。只好忍痛割爱。
    ......
    September 11

    关注oracle 11g重要新特性

    前言
     
        oracle7月11日在美国纽约发布了11g版本,可惜迟迟没有可公开下载的版本,只有加入oracle的测试计划的合作客户才可以得到beta版本试用。但这并不妨碍oracle爱好者们根据一些流传出来的文档来了解oracle 11g。7月30日开始的上海oracle open world,oracle宣称11g是30年来最重要的一次版本发布。对这样一个噱头我们还是比较冷静的看待的。OOW期间在一个采访oracle ACE 的活动中,我们几个ACE都不大赞同这样一种说法,其实oracle 一直以来都在前进,不断地改进以满足客户的需要。应该说,11g达到了许多客户所期望的目标,是一个关注细节的版本。那么11g到底有哪些重要的值得关注的地方呢,不妨挑一些特性做个简要分析。
     
     
    关注应用、关注性能
     
        SQL replay
     
        OOW后 rich Niemiec(www.tusc.com) 先生趁着来中国的机会各地巡游,期间到了我们公司,他问我在oracle 数据库的使用中我最大的困难是什么?我最大的困难是应用为了应对多变的商业需求,频繁地发布。而应用变化则带来schema的变化,尤其严重的是对于数据库来说可能需要新增加index。增加index绝对是一件危险的事情,这本是为了优化查询而增加,但却可能导致原来的某些查询选择了错误的index,运气好则是应用性能少量下降,运气不好则是数据库立即crash!每年这么多变化,我如何来保证每次都是正常的?数据库可靠性要求很高,任何意外都不是我所期望的。为了避免这种情况,通常我们会尽力在测试环境中做尽量多的测试。但任何的变化若都要进行回归测试,QA通常都是比较紧缺的资源。这种现状,中外都一样,只是我们通常没老外做的好。
        那么这件事情跟SQL replay有什么关系呢。我们来看看这个功能,在系统中捕获某个时段所运行的所有SQL,然后我们可以搭建一个和当前系统一样的测试环境,这样我们可以在测试环境中做我们想做的事情,如增加index,准备好之后我们可以重现搜集时段内数据库所执行的SQL(replay)。 通过观察replay期间的表现和性能信息,我们可以方便的看到哪些sql性能降低了,然后做出修正再replay,直到满意为止。这样做的好处是,我们可以不再倚赖于QA资源。要知道对于一个复杂庞大的系统,做回归测试工作量巨大。Oracle这个特性为我们提供了方便。
     
        Database workload capture and replay
     
        这一项与SQL replay不同的是搜集了整个数据库的负载情况。比如我们曾经出现过一个存储系统IO能力表现不佳的情况,厂商为了证明存储性能新搭建了一套环境,但我们却很难把真实应用放到新环境中去测试。最多也只是使用一些工具来模拟。后来打算换新存储,实际上在新系统上线前,我们无法预测新存储的表现到底能好到什么程度,这就存在着风险。如果有了Database workload capture and replay 这项功能,那么我们的困难也将迎刃而解。包括数据库要升级,也可以通过这个功能来做很好的性能预测。
     
        Result Set Caching
     
        这项功能的推出,再次表明oracle对细节的关注程度。当然,换个角度来讲,现代关系型数据库和计算机技术的发展,一直没有出现重大的突破,都是在几十年前的基础上不断地升级、修补。现在已经关注到客户应用的一些非常具体的需求上。这点其实从很多oracle有关执行计划的特点上也能看出来。Oracle推出了大量的只适合某些特定情况的执行计划,优化的触角伸到了非常精细的领域。回过来说result set caching 这项功能。这其实是我们众多用户在一些特定情况下所期望的但又和早先数据库系统的设计思想不一致的地方。oracle为了满足大家的要求,做出了这么一项功能。在还没有真切地感受这项功能的好处和限制之前,我们不妨先看一看特点。这项功能可以使得用户在使用 /*+result_cache*/ 提示的情况下,将查询的结果缓存。当查询被反复地执行的时候,不再需要到表中去获取,只需要来这个存放结果的地方就可以了。实际上这跟我们当前的一些web cache 的功能非常相似。这种cache应该更倾向于对结果集比较小、查询频繁切查询语句固定的情况。问题接踵而来,如果支持频繁的变化的数据,对性能有多大的影响,在使用上到底有些什么限制?很遗憾,我无法在这里详细地解释这些问题。一切都待我们做更多的实验来检验。
     
        Invisible index
     
        这是一项非常有用的功能,oracle虽然在8i就推出了虚拟索引的功能,但是,毕竟那还只是针对某个session的执行计划的观察和调整。现在我们可以选择实实在在的创建好index但却是invisiable 的状态,DML 也依然在维护这个index。然后我们可以通过使用提示走到index上来测试性能。当我们发现一切正常的时候,可以选择将index设置为visible 状态。如果我们想drop掉某个index但又担心不保险的时候,也可以选择将index设置为invisible状态,发现有问题再设置回visible状态。这样就可以避免经历drop之后再重新create的状况,在联机事务处理的大表上,create  index是一个非常消耗资源的任务。
     
        关于性能方面的补充
     
        当然在应用性能方面除了以上几种特性外,还有很多的新的特性,如SQL Plan Management 提供能类似store outline 的功能,Auto sql tuning可以自动的协助用户来对sql进行优化,更强大的ADDM,提高lob类型数据的io性能,总之,有非常多的值得关注的内容等待大家去探索。
     
     
    关注维护、关注管理
     
        Online Patch
     
        作为维护高可用数据库系统的DBA,最担忧的事情之一,就是遭遇无法回避的bug而被要求升级!以往升级有一个很重要的问题,那就是需要数据库停机!如果仅仅是更换rdbms obj文件并重新link,那么似乎rac可能在应用配合切换的前提下做到不停机。但如果升级需要在startup migrate下运行catpatch.sql ,则停机不可避免。虽然正常状况下这个过程不是特别长,如果在正运行的机器上使用独立的安装目录来打补丁,打完再替换原来的rdbms软件,则down time大约是替换时间加上运行catpatch.sql 的时间之和。也就是说运气不错的话能控制在5—10 分钟内。但应用的起停,往往却异常复杂。比如我们有几百台连接数据库的服务器包含了几十种形形色色的应用,做一个停机维护是一件大事。这直接就延长了down time。所以打补丁一事我们非常慎重,新上线数据库选择的版本也非常慎重。一定要选择稳定可靠的版本,应用一定要使用传统、可靠的数据库功能。这也使得很多新出来的数据库新特性我们不能及时地使用。传闻ebay一轮数据库升级大概需要2年时间,希望11g的online  patch 和Database workload capture and replay能缩短这个周期,也让DBA们能轻松一些。
        online patch 这类特性,我一直都期待数据库能实现。现在开放平台os的kernel升级基本做不到online,似乎只有存储在这方面做的不错,高端存储的软件和硬件升级都可以online(基本使用的是cluster接管交替升级模式)。主机也许因为变化太频繁以及成本原因,难以实现cluster交替升级的模式。但其实我也希望尽快研究一下oracle实现online patch的原理,是如何解决link与正在运行的程序之间的关系,以及catpatch时刻如何解决数据库内部对象的变化问题。
     
        Object dependency tracking
     
        在oracle中我们可以通过dba_dependencies查找到对象之间的依赖关系,如果被依赖的对象发生了DDL,不论这个改变是否会影响到依赖对象,依赖对象都invalid并需要重新编译。很多人在繁忙的oltp系统中遭遇过类似困境。比如表中lob的storage属性发生变化会影响到引用这个表的对象如procedure、function、trigger等。往往不经意之间,dba的一个改动,系统突然就挂了。那么11g在这方面有所改进,如果对象属性的变化不会影响到依赖对象,那么依赖对象就不会需要重新编译。
        既然oracle都实现online patch了,强烈希望将来在对象重新进行编译的时候可以手工控制,预先编译完成择机切换,类似表的online redefine一样。希望11g未来某个版本可以实现这个功能。
     
        Data Guard Snapshot
     
        这个特性是使得我们可以在standby上做出快照而保留下standby在若干时间点上状态的版本。这样我们就可以挑选某一个快照出来使用。可以做测试、可以核对数据。当然,我在netapp filesystem 上做oracle 9i版本standby snapshot 已经有几年了,这项功能我非常喜欢,可以随意open read only一个2星期甚至3星期前的数据库去查找当时的某些数据。现在11g提供了这项功能,则我们就不必局限在存储厂商所提供的快照功能上了。
     
        Query on Physical standby database
     
        这个消息犹如一个重磅炸弹,在众多资深DBA中激起了无穷的想象。Oracle在9iR2中实现了logical standby(传闻是quest工程师的支援下用logmnr实现),logical standby只能存在一个,可以被用于产生报表。如果oracle可以在物理standby上做查询,那么这个意义就重大的多。一个主数据库可以拖多个物理standby,假定采用最大数据保护模式(事务能及时地传递到standby并且立即被应用到standby),那么这跟mysql的集群类似了,一个写多个读。ebay就是在负载均衡设备F5 加quest同步工具shareplex的帮助下,实现了一个写入多个读的模式,从而支持了数据库性能的扩展,也使得数据库的维护变的更容易, 不再担心单个数据库的灾难带来致命的影响。那么现在oracle 似乎朝这个方向又迈进了一步。9iR2 提出并在10g大加宣扬的oracle streams在11g中并没有成为重点,看起来streams还不如shareplex和realsync更获得用户的认可。那么query on physical standby 看起来则是一个简单的廉价的解决方案。这个功能最终能做到什么程度,还有待实践来检验。但是,这个消息,给予了我们太多的期望!
     
        Auto Memory Tuning
     
        Oracle 从9i 开始,让PGA可以自动管理,不必为单独进程的各个pga组件设置大小,减轻了dba的工作量,让进程内存管理更容易。同时sga可以通过设置sga max size 上限,sga内部各组件可以动态调整大小,系统也根据动态统计信息给出sga组件设置大小建议。到了10g 开始可以支持sga各组件由系统自动调整分配。虽然这个功能还让大家放心不下,但毕竟自动化管理的方向是得到大家认可的。现在11g走的更进一步,sga和pga合起来可以由数据库自动分配。DBA只需要告诉oracle可以使用多少内存而不必去关注各组件的具体分配。看起来,DBA们的日子又将轻松一些。
     
        ASM and ILM
     
        存储厂商早就提出了信息生命周期管理的概念,看起来一切那么美好。当然,在存储厂商炒作这个概念的时候,我发现对于一般客户这并不是一个可行的低成本方案。我们关注新技术新概念(实际上大多都是老技术组合包装稍微加工一下就成了新技术),切实地分析其对我们能产生什么价值,实际上成本是一个非常重要的因素。Oracle 在10g中推出ASM是一个重大的新特性。但可惜ASM稳定性相对raw device还没得到用户的广泛认可。ASM 是oracle向存储管理软件延伸的一个重要标志。在我看来,除了在无传统cluster软件下做rac之外,更重要的是存储负载均衡的功能。当新增加存储设备的时候,oracle可以在系统IO相对空闲时期将数据移动到新存储设备上达到均衡分布的目的。尤其在数据仓库中这个功能非常好用。
        我一听见oracle  ILM 第一印象就是想到ASM,它应该可以配合ILM做很多的事情,ASM可以帮助DBA将不活跃数据在线迁移到其他设备上,这是信息生命周期管理的基础。oracle在不断地尝试,放弃被市场淘汰的功能,发展被市场认可的特性。
        我以前曾经多次论述oracle 跟 os之间相互学习的过程,现在看起来,数据库不仅跟os,还跟存储搅和在一起了。将来三者之间是相互竞争、相互合作的过程。不管如何,对于我们客户来说,能从中受益,那就是好事。
     
     
    后记
     
        Oracle数据库技术的发展,其实最近几年一直都在朝着关注细节的方向,如何满足客户差异化的需求,为客户提供特定环境下的最佳性能,是oracle领先于其他数据库厂商的重要原因。数据库、os、存储在某些功能上的融合,也有利于我们客户降低投资成本和管理成本。最后要感谢oracle的设计者,你们能真切地感受到客户的需求,并转变为现实。
        今年oracle将在北京、上海、广州、成都四地分别举办oracle DB 11g launch大会,9月19日在上海,开场15分钟我受邀将做一个不限制内容的演讲。从包括今年oracle open world的状况来看,oracle对中国市场的重视程度明显提高,对中国网络社区的关注程度也明显提高。希望大家可以加强交流,共同提高。
     
    September 10

    所谓天意

    看房子2个月,看中的房子有2个,一个是6月底7月初星洲花园,现在想来真是物美价廉,基本上挑不出啥毛病,但是那个时候lg在米国,我也在出差,没买成。2个月后这样的房子涨了有20万,我很后悔,早知道即使丢了工作也不去出差了,更倒霉的是,出差回来还真的丢了工作,这是后话。
     
    另一个是8月底亲亲家园,那个房子除了大点也没啥毛病,尤其是风景很漂亮,后面沿河前面对中心花园泳池。跟中介谈好准备下单那天,中介人在上海,说第二天一早签,结果第二天一早等来消息说那天晚上深更半夜被别人抢了去。
     
    由于实在喜欢那片风景,我们找了无数中介,终于找到一个同一栋楼同一个户型不同楼层的房子,这个房子贵了4万块,房东的要求也有些苛刻,我们都一一答应。我们想在9月1号之前搞定,1号~9号不在杭州,但是房东一直没空,要么就是土地证没拿到。8号中介还跟我们联系说等我们回去签合同。9号夜里回到杭州就给中介打电话,中介说,房东白天跟别人签掉了,房东答应给我的,却不讲信用。
     
    喔,信用,信用是什么东西?在利益面前,信用是什么东西?不仅仅是房东,都一样。
    天意如此,心怀释然。