Tag Archives: DBA

网络侠客行大会后记

距离网络工程师侠客行大会成功举行已经有好几天了,总算有点空,也简单的写一下我的参会感受。
周五晚上加完班刚到家,接到刚下飞机的阿北的电话,问我下午技术研讨的场次是否可以调整,我也不知道公司同事对票是怎么控制的,赶紧在 IM 上找在线的同事联系了一下关于场次以及晚上酒吧活动的事情。之前比较忙,也顺便看了一下会场信息什么的。
周六正在洗脸,接到张磊的电话,我答应给他要一张票的。收拾停当,赶紧出门,要知道在杭州作出租车有的时候要靠运气,紧赶慢赶,总算正式开始之前赶到了人民大会堂。把票给了张磊后遇见了几位同事,会场里只有最后一两排还有座位了。
前面的嘉宾致辞都很短,不愧是技术性的会议。接下来的第一个主题演讲就是 PHP 之父 Rasmus Lerdorf 的《激情下的 PHP》,Lerdorf 是典型的 Nerd 形象,为了练练英语听力,我特地跑到最前排,坐在地上听完了演讲。Lerdorf 看来在美国也是到处走穴,演讲的经验很丰富,刚开始明显感觉他也有些紧张,到了后半段就非常放松了。可能这是我在最前面能感觉到的一点吧。在自由提问的时候有人问到下一个版本的 PHP 会有哪些特性,Lerdorf 不加思索的说 “Unicode”,最后的一句话很有意思,大意是”如果要问我再下一个版本是怎样的,我也不知道”.
Rasmus Lerdorf
上午的第二个主题演讲者是 Yahoo! 著名 Blogger Jeremy Zawodny, Jeremy 的 Blog 是业界比较知名的,他在 MySQL 方面的经验非常丰富(如果他做这个主题可能更受欢迎),”将 MySQL 成功的大规模部署在 Yahoo! 上”, 他这次的演讲主题确是关于 Web Service 方面的。 Jeremy 在此行之前做了不少功课,包括对中国的了解,以及 How I write a Presentation,车东说他是个 Geek ,诚如所言。
中场休息的时候认识来自博文视点的周筠老师以及 CSDN 的龙如俊,还有霍泰稳
, 他现在在负责InfoQ 中文,还有其他几位编辑,以前在网上多有联系,这次总算见到这几位真人了。
周筠老师非常有亲和力,其他几位编辑也都非常热情,盛情邀请几位 DBA 一起吃午饭,吃饭的细节汪海已经有所描述(就是他来的比较晚 :)),需要补充的是,我临走还获赠了两本图书,一本是著名的《代码大全》,一本是 《Effective C++》第三版,的确是好书,不能独享,已经转赠给公司开发团队的图书室了。
这是 19 号周六上午的流水账,有空我再继续写。
EOF

又熬了一夜

昨天 23 点的时候从家里出来到公司,外面风好大。到公司电梯里,惊奇的遇到两个打完羽毛球到公司上班(?)的同事,惊讶。
其实昨天身体很不舒服,头疼欲裂,可没办法,这不,硬挺着,又熬了一夜。
EOF

AIX RAW LVM 的 4k Offset 问题

这可能是 Oracle 在 AIX 平台上最重要的一个潜在问题。

一般情况下,AIX 的逻辑卷前 4k 用于存储 control block (LVCB),在 Oracle 9iR2 之前,Oracle 软件自动跳过这 4k 而不用。这带来了一个潜在的问题,当 Oracle 的 db_block_size 大于 4k 的时候,一个 Block 可能跨在两个 PV/LUN/磁盘 上(如果做了条带化,那么将总有数据块跨在两个条带上–其实也还是将跨在不同的 PV/LUN/磁盘上。这样当系统崩溃的时候,很有可能造成大量的 IO 不完整,一个 PV 上 IO 写入,另一边可能未完成,启动 Oracle 的时候将会看到 ORA-1578 错误,这几乎是致命的。

为了解决这个问题,AIX 推出了 Big Volume Groups 作为应对。建立 Big VG 后,创建 LV 的时候可以通过 -T O 的参数强制征用 LV 的前 4K 空间, LVCB 的信息保存在 VGDA(volume group describe area) 里面。前 4k 空间被使用的 LV 有了一个新的设备子类型(devsubtype)标记: DS_LVZ,通过 lslv 可以看到。(Oracle 也在 9.2.0.3 之后自动识别 AIX 的新 LV 类型,直接开始使用 LV 的前 4K 空间)

对于 AIX 的可扩展性 VG,则默认创建的 LV 就会 DS_LVZ 类型,不使用 -T O 也是这样子。Big VG 可能只是一个过度类型。

在 IBM 的系统手册中可以看到:

The IOCINFO ioctl operation returns the devinfo structure, as defined in the /usr/include/sys/devinfo.h file

如何知道当前裸设备创建的时候使用了 -TO ? Oracle 10g 的文档中说 $ORACLE_HOME/bin/offset 工具可以做到。可是我居然找不到这个工具。莫非是忽悠人来着? 通过另一个工具可以看到相关信息:

$ dbfsize /dev/rfoo01_pay
Database file: /dev/rfoo01_pay
Database file type: raw device without 4K starting offset
Database file size: 920 8192 byte blocks

要想得到完美的东西太难了, AIX 在 BIG VG 上仍然还有很多问题,目前已知的当属这个“MKLV -TO ON BIG VOLUME GROUPS FAILS TO PUT SOME LV INFORMATION”最为严重–得不到正确的devsubtype 类型,Oracle 则会报告读取数据文件头错误,这个更要人命。
DBA 这个工作,还真是脑袋悬在腰带上,风险莫测。
EOF
Updated: offset 命令工具需要安装 RAC 组件才可用,Oracle 另外提供了一个补丁来弥补这个问题,在 Patch 3242957 中可以找到,直接解压缩,把工具提取出来即可用。

劳动节,身体力行要劳动

昨天9点半一直到现在,一直奋战到现在。几乎每个小时都有新情况。总算坚持过去了,暂且告一段落。
劳动节,就要劳动嘛。
从4月上旬一直忙到现在,这段时间工作强度可真的让身体有些吃不消。每次感觉坚持不住的时候再熬熬其实也就过去了。
EOF