May 2007 Archives

这篇 Bash Shell Shortcuts 的快捷键总结的非常好。值得学习。下面内容大多数是拷贝粘贴与总结.

CTRL 键相关的快捷键:

Ctrl + a - Jump to the start of the line
Ctrl + b - Move back a char
Ctrl + c - Terminate the command  //用的最多了吧?
Ctrl + d - Delete from under the cursor
Ctrl + e - Jump to the end of the line
Ctrl + f - Move forward a char
Ctrl + k - Delete to EOL
Ctrl + l - Clear the screen  //清屏,类似 clear 命令
Ctrl + r - Search the history backwards  //查找历史命令
Ctrl + R - Search the history backwards with multi occurrence
Ctrl + u - Delete backward from cursor // 密码输入错误的时候比较有用
Ctrl + xx - Move between EOL and current cursor position
Ctrl + x @ - Show possible hostname completions 
Ctrl + z - Suspend/ Stop the command
补充:
Ctrl + h - 删除当前字符
Ctrl + w - 删除最后输入的单词 

ALT 键相关的快捷键:

平时很少用。有些和远程登陆工具冲突。
Alt + < - Move to the first line in the history
Alt + > - Move to the last line in the history
Alt + ? - Show current completion list
Alt + * - Insert all possible completions
Alt + / - Attempt to complete filename
Alt + . - Yank last argument to previous command
Alt + b - Move backward
Alt + c - Capitalize the word
Alt + d - Delete word
Alt + f - Move forward
Alt + l - Make word lowercase
Alt + n - Search the history forwards non-incremental
Alt + p - Search the history backwards non-incremental
Alt + r - Recall command
Alt + t - Move words around
Alt + u - Make word uppercase
Alt + back-space - Delete backward from cursor 
// SecureCRT 如果没有配置好,这个就很管用了。

其他特定的键绑定:

输入 bind -P 可以查看所有的键盘绑定。这一系列我觉得更为实用。
Here "2T" means Press TAB twice
$ 2T - All available commands(common) //命令行补全,我认为是 Bash 最好用的一点 
$ (string)2T - All available commands starting with (string)
$ /2T - Entire directory structure including Hidden one
$ ./2T - Only Sub Dirs inside including Hidden one
$ *2T - Only Sub Dirs inside without Hidden one
$ ~2T - All Present Users on system from "/etc/passwd" //第一次见到,很好用
$ $2T - All Sys variables //写Shell脚本的时候很实用
$ @2T - Entries from "/etc/hosts"  //第一次见到
$ =2T - Output like ls or dir //好像还不如 ls 快捷
补充:
Esc + T - 交换光标前面的两个单词

很多来自GNU 的 readline 库。另外一份总结也很好

记忆是所有技术人员的敌人。一次要把所有的都记住是不可能的。针对自己的使用习惯,对少数快捷键反复使用,短期内就会有效果。

你还知道那些好用的快捷键 ? 补充一下 ?

--EOF--

最早在和菜头处看到这个《激流中国--富人与农民工》(《激流中国--富人与穷人》)的视频,非常震撼。

透过镜头,看到了所谓的富豪是怎样的一副嘴脸。李晓华,据说以前在日本卖 101 生发水发家的,现在是中国股市的大鳄,一群谋士为其收集股市内部消息,并靠着其与政要的关系,获益甚丰。几个细节挺有意味,在其生日宴会上,对酒店服务员的态度极其跋扈,而一转眼就笑容满面的与来宾寒暄。其家里也挂着邓的照片,自称"感激邓小 平...他是先富起来的那一部分人"。车展上定购的汽车送到了,立刻让手下停止汇报,下楼玩车去也,"这车没事儿的时候休闲开开,很好"。

另外一位天津的金先生是属于新富人阶层的,干部子弟出身,靠着人脉经营着一家广告公司,并且通过各种内线消息炒楼盘。妻子是模特,儿子健康,生活是无比的幸福,很和谐。

片中的农民工夫妇,为了给孩子手臂骨折治病,进城打工,挣扎,其艰辛无以言表。农民工们留在老家的孩子学校没钱买煤取暖,夜里零下 20 度,睡觉只能挤在一起相互温暖。孩子们念作文的一段更让人辛酸。

前几天,看南方周末采访一位老经济学家杜润生,文末记者问老人中国的改革最需要警惕是什么,老人的答案是”权贵资本主义"。先暴富起来的这部分人怕是要永远占据最有利的社会资源,穷者愈穷,富者愈富。

--EOF--

图片防盗链应适可而止

| 15 Comments

我的订阅列表里有一些 Blog 使用门户站点提供的 BSP 服务,比如新浪网易百度什么,虽然我特别讨厌门户网站,可有些人在上面写的文章内容还是挺好的。最近这些站点好像集体抽风,纷纷用上了图片防盗链,结果遇到了图片就是一个傻乎乎的替代图片"你看的图片来自某某站"或者是"此图片仅限于...用户之间交流与沟通",遇到这样的心情大坏,有的时候我不依不饶的直接点开这个图片,可要是不刷新,还是看不到到底是什么内容。

如果是用户自己的图片文件,你凭什么说"图片仅限于...用户之间交流与沟通"? 图片防盗链这个功能,如果是小网站防止大网站盗图片用用还情有可原,对于那些直接给用户上传的图片打上水印的垃圾门户站,适可而止吧,别总让给读者设置阅读障碍,不就是少看一点你们的广告么? 干脆你别提供 RSS 不就成了? 一方面默认用户从其他网站复制图片过来,一方面又防止站内的图片被别人用,这什么事儿啊?

对于我个人来说,你不让我直接从 Blog 里看到你的图片,我干脆就不看你站点上的内容--不订阅你站点的内容不就成了么?

网络侠客行大会后记 2

| 14 Comments

原谅我最近的更新频率吧。上回说的基本是 19 日上午的事情,再来说说下午的情况

吃过午饭,赶回人民大会堂。下午的技术演讲已经开始了。我参加的是操作系统的部分。进入会场,第一场章文嵩博士关于 LVS 的讲座已经接近尾声。我胡乱拍了几张照片后发现了阿北。到了提问时间,阿北问了一个关于 LVS 一般会遇到 IO 瓶颈还是 CPU 瓶颈(大意如此)。这个问题提问过后,有个自称是在电信做手机视频工作的朋友走过来和阿北聊了几句,我在旁边介绍说,这就是豆瓣的阿北啊,那个兄弟似乎没听说过,坐在阿北旁边的一个兄弟这时候也转过头来聊了几句,他是 51.com 的,我听说 51.com 买了几十台 EMC 的存储设备用来存储会员上传的视频,一问,这位仁兄很自豪的确认,没错,一天数据量就达到 1T 了。可惜互联网不是单靠数据量取胜,否则这位仁兄更该骄傲了。

第二场是雷鸣的《Linux平台下的高性能系统设计》,演讲内容和 Linux 其实关系不大,如果说成 "Web 高性能系统设计" 也很切题。一场讲座听下来,感觉雷鸣经验的确非常丰富。可能别人觉得挺空洞,不过他举的几个例子倒是对我挺有启发。

下一场则是关于 .net 的了,阿北说没意思,于是走到会议室外面聊天。博文视点的方舟还有 InfoQ 的泰稳也在外面,方舟对 Python 非常着迷,几乎是见人就推荐 Python 的好,刚好豆瓣堪称是国内最成功最大的 Python Web 应用...

最后我和阿北聊起了豆瓣,其实聊的内容有些类似于采访的形式了,基本上是我问,阿北在答。如果能把整个聊天的内容都记录下来,我相信肯定比那些外行的记者采访要精彩一些。豆瓣的经营理念可以说绝对是特立独行的,而且,不功利,从这一点上看,与国内所有的互联网公司经营理念都不同。开始和阿北接触,感觉他是个不善言谈的人,但是围绕豆瓣说开来后,简直是滔滔不绝,到了最后,我只得心里感叹我对豆瓣了解的还太少了。这次和阿北一起来的是 hongqn,他在豆瓣上的 Logo 很容易让人记住:带口罩的。

4 点多,各自准备回去休息一下。我在路边打车,足足等了有 30 分钟,晚上约阿北和 Hongqn 吃饭,结果...我又迟到了,在杭州两年多了,还不如刚来杭州的人熟悉地形呢,丢人。

吃过饭后,和他们两位一起去参加晚上在卡萨布兰卡酒吧的"大侠风尚"网络工程师沙龙,听信了一个出租车司机的话,"没多远", 沿着湖滨路走了整整半个小时,才算看到了湖边的酒吧招牌,我这个带路的,又丢人一次,我路过多少次,都没有注意到这里有个酒吧。

看到了 Rasmus Lerdorf 和 Jeremy Zawodny ,在里面悠闲的喝着啤酒。过了一会儿, Lerdorf 拿着个相机,这拍拍,那拍拍的,这个时候终于没人打扰他了。

其实工程师到酒吧,谈的也都是技术。几位平时就相互很了解的做 DBA 的朋友,见了面还是谈数据库 :) .这次总算见到了高春辉,上次在北京住的地方离他很近,不过时间不凑巧。其实我俩还算半个同乡,他是沈阳人,我是吉林的。老高给我免费培训了一下他的 ECSHOP,现在回想起来,我还是觉得这个产品很有市场,一定会被某个 C2C 大站点看上。

酒吧还看到了不少新老同事,好几位前同事辞职创业,在搞一个很有趣的项目,暂时替他们保密一下。本来和王皓说好这个礼拜天去上海看胡德夫的演唱会,又食言了,他至少给我推荐过二十场我感兴趣的演唱会,可是我...一场都没去过,尤其是上次 Roger Waters 的,我那个后悔啊,谁让我总加班呢??

Yupoo 也来了两位朋友,小橘子,还有他们的内容总监。小橘子送我一个 Yupoo 的 小纪念品,挺好玩的。对了,已经和他们约好,过一段时间参加他们举办的摄影活动去。

--EOF--

AIX 6 预览版

| 3 Comments

IBM 官方站点发布了 AIX 6 预览版的相关信息,预告大约在 07 年中(很快了)提供 Open Beta 测试。

在列出的相关新特性中,Dynamic tracing 毫无疑问对开发人员是个福音,这个功能看简介多少有点模仿 Solaris Dtrace 的意思。对于系统管理人员来说,基于 Web 的 System Management Interface Tool (SMIT) 或许能带来管理上的一些便利。我倒是对 Concurrent AIX kernel update 挺期盼的,希望这个能在维护操作系统的时候大大减少不必要的停机时间。

今天看到的另外一个消息是 IBM 正式发布 Power6 处理器。"双核设计,主频 4.7GHz,IBM 把它称为“有史以来最快的微处理器"。其实单就芯片技术来说,IBM 恐怕领先竞争对手三到五年的样子,多年的大手笔研发投入终于得到了应有的回报。

Power 6 + AIX 6,会有好戏看。

--EOF--

网络侠客行大会后记

| 3 Comments

距离网络工程师侠客行大会成功举行已经有好几天了,总算有点空,也简单的写一下我的参会感受。

周五晚上加完班刚到家,接到刚下飞机的阿北的电话,问我下午技术研讨的场次是否可以调整,我也不知道公司同事对票是怎么控制的,赶紧在 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--

又熬了一夜

| 13 Comments

昨天 23 点的时候从家里出来到公司,外面风好大。到公司电梯里,惊奇的遇到两个打完羽毛球到公司上班(?)的同事,惊讶。

其实昨天身体很不舒服,头疼欲裂,可没办法,这不,硬挺着,又熬了一夜。

--EOF--

今天一边参加周会一边看完了《谁认识马云》,现在阅读速度越来越快了(也越来越粗糙)。看到最后,估计了一下书中介绍的细节 99% 都是在其他报刊杂志上看到过,现在给企业家写书真是越来越容易,什么时候技术作不下去了,也找企业家写传记去。

唯一有印象的书中的一句话:心有激雷而面如平湖者,可拜上将军。很有意思的一句话,也有作"胸有激雷而面如平湖者,可拜上将军".

最近一直加班,搞得身心疲惫,瘦的直掉裤子,虽然还没掉链子,估计这么下去也快了。明天要去参加公司举办的网络工程师侠客行大会,估计能见到不少朋友,本来说上午还有体检的,幸好可以以后再去。

后天下午要去上海,周一能在上海停留一上午,难得休息一下。

--EOF--

Oracle 10g R2 的 Data Pump 是一个好工具,弥补了传统 export/import 工具的很多不足。相关信息可以参考一下我以前对 Data Pump 的介绍

最近在 Linux 平台上经常遇到 ORA-39095 错误。这个错误。这个错误号,文档的解释:

ORA-39095:Dump file space has been exhausted: Unable to allocate string bytes
Cause: The Export job ran out of dump file space before the job was completed.
Action: Reattach to the job and add additional dump files to the job restarting the job.

这个解释只针对一般情况。我遇到的这个案例,目录的空间还有很多,可是也一样报错了。而且,一般在第 100 个 导出文件出错(更正:%U参数是2位,定长的,最大99)。开始以为是 Bug,可是遍查 Metalink,发现和 ORA-39095 错误有关只有两条信息,和我遇到的情况不符。

偶然在阅读 Oracle Database Utilities 手册的时候,发现了这一段话:

Because each active worker process or I/O server process writes exclusively to one file at a time, an insufficient number of files can have adverse effects. Some of the worker processes will be idle while waiting for files, thereby degrading the overall performance of the job. More importantly, if any member of a cooperating group of parallel I/O server processes cannot obtain a file for output, then the export operation will be stopped with an ORA-39095 error. Both situations can be corrected by attaching to the job using the Data Pump Export utility, adding more files using the ADD_FILE command while in interactive mode, and in the case of a stopped job, restarting the job.

真是孤陋寡闻了,我的并行度用的是 4 ,减小这个并行度,该错误不再出现。

You can supply multiple file_name specifications as a comma-delimited list or in separate DUMPFILE parameter specifications. If no extension is given for the filename, then Export uses the default file extension of .dmp. The filenames can contain a substitution variable (%U), which implies that multiple files may be generated. The substitution variable is expanded in the resulting filenames into a 2-digit, fixed-width, incrementing integer starting at 01 and ending at 99. If a file specification contains two substitution variables, both are incremented at the same time. For example, exp%Uaa%U.dmp would resolve to exp01aa01.dmp, exp02aa02.dmp, and so forth.

--EOF--

好久没怎么正式更新 Blog 了,快荒芜了,长满了 Spam 的荒草。

最近其实发现了不少可以和大家一起学习的好内容。FlickrJohn AllspawMySQL Conf 2007 作了一个题为 Capacity planning for LAMP (下载PDF文件) 的技术报告,说起容量规划,多少有点空对空的意思,不过这个 PPT 还是介绍了不少 Flickr 的网站运维经验。

Flickr 的数据量的确越来越惊人了,根据文档中透漏的数据:

Squid Cache 中共有 3500 万张图片;
在 Squid RAM 中有 200 万张图片;
4.7亿的图片,每张图片有4到5种尺寸;
每秒钟 38000 个到 memcached 的请求;
2 PB 裸存储容量(周日需要消耗1.5T 的空间)

三个主要步骤:

计划

基于实际业务,而不是抽象的理论。John Allspaw 认为基准测试(Benchmark) 作用并不大,这一点我也很赞同。在业务频繁变化的环境中,Benchmark 根本不能与实际业务情况匹配。

部署

Flickr 使用SystemImager/SystemConfigurator(自动化安装、软件分发),CVSup(网络中的文件分发、更新),Subcon(配置管理工具)提高部署效率。

度量(图形化展现)

Flickr 使用了 Ganglia 来进行容量数据的展现。Ganglia 最初设计是用于高性能集群计算的监控上面,也是以 RRDTool 为基础来进行图形展示。Ganglia 最主要的优点还是管理的方便性: Client/Server 结构, 各自跑 Demon 进行数据交互(XML形式)。相比起来, Cacti + Collectd 需要进行很多手工配置,在面对大量需要监控的主机的时候的确不那么方便。

Web 2.0 站点的运维似乎大家都在摸索着走。期望这次阿里巴巴组织的侠客行大会上也有有朋友坐下来聊聊这个话题(Flickr 的架构师本来可以来的,因为时间的问题不能成行,挺遗憾的)。

--EOF--

睡不着

| 7 Comments | 1 TrackBack

可能是最近太累,昨天一口气从一点睡到了18点,邻居家的装修都没能让我清醒。当然中午的时候还是清醒了一会儿吃了一点东西就接着睡的。

结果晚上无论如何也睡不着。干躺了几个小时,干脆还是起来算了。

清晨小区里的鸟叫的不是一般的欢。不知道是什么鸟,反正这种鸟杭州特别多。

--EOF--

AIX RAW LVM 的 4k Offset 问题

| 27 Comments

这可能是 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 中可以找到,直接解压缩,把工具提取出来即可用。

前几天收到了一封来自 SI Object Browser 公司人员的一封电子邮件,说这款来自日本的数据库工具正在中国寻找商业合作伙伴。(邮件里说是通过 ACE 的页面找到的我)

要不是收到这封邮件可能我还不知道 SI Object Browser 这款数据库工具。据说这个工具在日本市场"very popular":

SI Object Browser is a development tool for Oracle database, providing all required functions, SQL creation, Object creation, removal of stored program's bugs in the operation by GUI(Graphical User Interface), which can contribute to your database development productivity. And it prepares functions for DBA, data export, user monitoring and tracing. SI Object Browser provides and prepares any other many functions for Oracle development, and we've already distributed 90,000 licenses over in Japan since released in 1997.

以前倒是对来自日本的另外一个数据库性能优化工具 Performance Insight(PI) 挺有兴趣的,不过据我所知,这个 PI 在国内也没什么市场。还不如卖服务更容易让用户接受。

这些第三方 Oracle 开发工具,包括 Quest 的 Toad,国内的用户群体还是不小的,但是掏钱买 License 的寥寥无几,抛开国内用盗版的一贯习性,另外一个主要原因还是和价格策略有关吧。我们的收入毕竟和欧美的还有很大差距。

话说回来,如果国内有哪家代理商愿意与 SI Object Browser 合作,可以直接着他们联系,或者我代为转达。

--EOF--

劳动节,身体力行要劳动

| 6 Comments

昨天9点半一直到现在,一直奋战到现在。几乎每个小时都有新情况。总算坚持过去了,暂且告一段落。

劳动节,就要劳动嘛。

从4月上旬一直忙到现在,这段时间工作强度可真的让身体有些吃不消。每次感觉坚持不住的时候再熬熬其实也就过去了。

--EOF--

关于这篇归档

This page is an archive of entries from May 2007 listed from newest to oldest.

April 2007 is the previous archive.

June 2007 is the next archive.

Find recent content on the main index or look in the archives to find all content.