45435 items (10645 unread) in 60 feeds
Blogger
(2012 unread)
Web2.0
(596 unread)
OpenSource
(1617 unread)
TechTrend
(1275 unread)
Database
(541 unread)
News
(3772 unread)
ITReview
(72 unread)
Geeks
(705 unread)
LifeMusic
(55 unread)
昨天和今天在IBM AIX5L上安装Oracle10gR2的RAC环境,这个环境并没有使用10g的全部新技术,而是一个混合体。数据文件仍然是裸设备,只有Flashback Area使用的是ASM,所以HACMP和CRS共存。碰到的问题总结一下:
1。在CRS安装的时候,Installer总是无法正确获得Public名称,虽然hostname和/etc/hosts都已经反复校验过了。
最后发现,Installer在启动了HACMP的环境中将自动获取HA的Cluster Node Name而不是hostname,将Cluster node name修改为跟hostname相同以后,问题解决。这个问题烦恼了我昨天一个下午和一个晚上。
2。在CRS安装最后,报告OCR盘update失败。
Metalink上有寥寥可数的几个例子都没有借鉴意义,最后发现居然是最低级的问题,IBM在做两个节点的裸设备时,没有完成同步,导致第二个节点的OCR裸设备没有写入的权限。重新在第二个节点上import裸设备,问题解决。
3。CRS安装最后报en0不是public节点,无法正常配置VIP。
手动运行vipca,手动配置VIP。
RAC这块儿很不熟悉,还有很多文档要看。
AIX5L
五爷的blog上提到了Cyril,这个活跃在日本的街头魔术师确实是神一般的人。
就地取材,在众目睽睽之下让你目瞪口呆,然后Cyril扬长而去。
在China Town的那一场,Cyril变没了一只鹦鹉,然后从旁边的杂货店里取了一个鸡蛋和一个柠檬,将鸡蛋变没了,然后取了一个桔子,把手边的柠檬变没了,至此为止也许还无惊人之处,大多数街头魔术师或许都可以轻而易举地实现这些。但是,接下来,Cyril取出一把刀,切开了桔子,取出了刚才那个柠檬!再切开柠檬,取出了刚才那个鸡蛋,最后捏碎鸡蛋,变回了最初的那只鹦鹉。
除了五爷blog里面给出的4段惊天地泣鬼神的video,这里还有更多。
虽然我无法相信这只是魔术,但是我仍然只能相信这是魔术。
BTW:五爷为什么会让人觉得狂,因为五爷哪怕只是在传播知识的时候,也要嘲笑打击他人。如果我们做到笑骂由人的话,五爷还是可爱的。:)
再BTW:to 五爷,我给的链接里面Boat trick是你那个第三段video的增强版,因为更加不可能实现,场所是在水底!而且最后隔窗取物!
Cyril
用ITPUB 2007精英年会测试一下Google Calendar的功能,点击上面的图片可以看到年会的详细信息。如果有人收到相关邮件请给个回复,让我也看看Google Calendar的功能。
Update@2006-12-18
coolyl和fenng都有回执,eygle这个不看gmail信箱的人没有音信。我原来以为会在gmail信箱中收到回执,然后点击阅读以后才会把他人的计划更新到自己的calendar中,然而却不是这样,calendar直接就更新了,恩,很方便,界面也很友好。

我一直觉得GTD不是一个人的事情,如果所处的环境,所接触的朋友,客户都能够使用相同的时间安排方法,那么GTD才算是真正进入日常生活。幻想有一天大家都可以通过Calendar来商定事情,策划出游,预定会议。
BTW:Google Calendar的Search Public Event功能貌似有问题,ITPUB 2007精英年会的事件我已经设置成Public了,但是无论以什么方式搜索都无法查到结果。
Google Calendar
申请Google Apps服务,纯为好玩。
现在我的域名也可以提供2G的邮件服务,还同时有日历,即时通信,以及网域网页的功能。
Google在做的是一个劲儿往客户身上砸存储,砸技术,然后收获内容,他日定有用处。
BTW:申请方法
Google Apps
用就用了,不标明原始出处和作者也罢了,但是还自己随便删删减减,实在不太厚道。
我的原文发表在eygle的blog上:
关于oracle的版权信息-一些你可能不知道的,一些可以看出Oracle野心的…
vongates引用了我才知道,不关vongates的事儿:
ORACLE不能进行双机热备
恩,其实我也没什么生气的,发个牢骚而已。
Update@2006-12-18
我更希望这是一个误会,转载尽量说明出处吧,以此共勉。
Oracle Database 10g中出现的ASM(Automatic Storage Management,自动存储管理)技术提供了一种镜像冗余的方法,用以保护可能出现的磁盘故障而导致的数据丢失。要知道,以前也许我们需要RAID来达到这样的目的,但是现在Oracle数据库本身就提供给你这样的选项了,Oracle的意思是,把所有的鸡蛋都放到Oracle这个篮子里面吧,我们是Unbreakable的。
ASM提供了3种冗余方法。
external redundancy表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术。
normal redundancy(默认方式)表示Oracle提供2路镜像来保护数据。
high redundancy表示Oracle提供3路镜像来保护数据。
先预告一下,有时间再写吧,相信我,有内部资料的(本文用词很多来自某些metalink internal资料的翻译,因为inernal所以就不做link了),呵呵。
什么是 ASM failure group?
Oracle通过failure group来提供数据的高可用性。ASM使用的镜像算法并不是镜像整个disk,而是作extent级的镜像。所以很明显如果为各个failure group使用不同容量的disk是不明智的,因为这样在Oracle分配下一个extent的时候可能就会出现问题。在normal redundancy模式下,ASM环境中每分配一个extent都会有一个primary copy和一个second copy,ASM的算法保证了second copy和primary copy一定是在不同的failure group中,这就是failure group的意义。通过这个算法,ASM保证了即使一个failure group中的所有disk都损坏了,数据也是毫发无伤的。
Oracle在分配extent的时候,所有failure group中的这个将拥有相同数据的extent称为一个extent set,当Oracle将数据写入文件的时候,primary copy可能在任何一个failure group中,而second copy则在另外的failure group中,当Oracle读取数据的时候,除非是primary copy不可用,否则将优先从primary copy中读取数据,通过这种写入无序,读取有序的算法,Oracle保证了数据读取尽量分布在多个disk中。
因为公用一个硬件模块的磁盘很可能会同时损坏或者失效,所以通常我们在设计failure group时,应该把一个大的盘阵中在一个tray中的磁盘放在一个failure group中,这样我们就可以拿走一个tray,失效这个failure group,然后换上新的tray和磁盘,这跟RAID的思想是一样的。
ASM的冗余方式一经设定就无法更改,如果我们想把normal redundancy改为high redundancy就只能是创建一个新的failure group,然后把旧failure group中的文件通过RMAN或者DBMS_FILE_TRANSFER的方法移动到新failure group中去。
如果在ASM环境中没有创建failure groups情况会怎样?
即使没有显式指定,failure groups也是始终会创建的。在这种情况下,每个disk都属于一个failure group,在创建磁盘组的时候,failure group也会默认创建,名称就是disk的名字。
应该创建多少failure groups?
什么时候该用external redundancy什么时候该用normal或者high redundancy?
如果failure group出现故障怎样恢复?
- 如何使用kfed实用程序来查看ASM Disk header
我们测试的数据库是Oracle10.2.0.2,首先需要编译生成kfed程序,在其它版本的Oracle中生成kfed的方法会略有不同。
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ikfed
此时$ORACLE_HOME/bin目录中将会产生kfed程序。
使用kfed的语法是:kfed read *devicename* text=*filename*
假设我们要读取/dev/raw/raw1的文件头,那么使用下面的语句
kfed read /dev/raw/raw1 text=raw1.out
这样raw1的文件头信息将会被dump到raw1.out文件中,大家有兴趣可以去看一下文件内容,基本上通过名字和值还是能猜测出都是些什么内容的,包括了这个ASM Disk创建时间是什么,每个block多大,Disk名字是什么,属于哪个Disk Group,Header Status是怎么样的。虽然大部分内容都可以从ASM实例的数据字典中获得,但是在我们碰到ASM磁盘故障的时候,kfed提供的信息往往更容易让我们判断问题点。
- 如何清理ASM Disk
有时候一个ASM Disk由于故障,导致我们删也删不掉,加也加不进去,通常现象是磁盘的header status状态不正确但是disk header中仍然保留了部分磁盘组的信息。此时我们就需要clear这个磁盘,然后再将它重新加入磁盘组中。
dd if=/dev/zero of= *diskname* bs= *blocksize* count=10000
注意:上述语句请谨慎操作,可能会出现问题。
ASM
平台:HP安腾2
操作系统:Redhat Enterprise Linux 4
数据库版本:Oracle 10.2.0.2
架构:6节点RAC
问题现象:
用数据泵方法导出一个表的两个分区数据很快,而导入却很慢
数据:
用数据泵导出,速度为29万条/秒(37MB/秒)
用数据泵导入,速度为300条/秒(39KB/秒)
解决过程:
开始没有看到环境,个人猜测也许是6节点的RAC在数据导入的时候同步Buffer Cache导致速度变慢,也许将涉及到Oracle本身的bug,所以建议用户可以先在单节点的同样环境中作一次测试,但是客户暂时没有单节点的环境。
于是在同样的6节点RAC环境中再作一个Data Pump导入,期间检查V$SESSION_WAIT,多次执行,发现确实有gc相关的等待事件,但是并不明显,然后查看V$ACTIVE_SESSION_HISTORY,用下面的SQL:
此时问题很明显的暴露出来了,大量的时间耗费在log file switch completion和log file switch (checkpoint incomplete)这两个事件上,于是查看数据库的redo logfile大小,发现只有50M。
由于客户的数据库运行在非归档模式上,所以直接将redo文件加大到1G,再次测试,速度超乎想像。客户很爽,我也很爽。
结论:
1。在没有V$ACTIVE_SESSION_HISTORY的10g以前版本中,不要奢望能通过频繁查询V$SESSION_WAIT来定位问题。
2。Oracle的bug虽然不少,但是也没有想象中那么多。
前几天在Fenng的文章里面看到一个有趣的游戏,Yahoo!推出的IT技术类的虚拟股票市场,有多项按照分类排好的人气IT产品可供选择,新注册的用户可以获得$10000的虚拟启动金币。
我12月2日,嘁哩咯插几乎花光了所有的启动资金买了下面的这几支股票,到今天已经赚了$104.29,还成,没亏。
WordPress帮我赚了最多的钱,确实是一个好用的Weblog发布系统,你们现在看到的我这个站点就是用Wordpress搭建的。
Firefox居然赔了,不过确实也是,我错过了Firefox发布2.0版本的那段大好时间,现在平稳下降也无可厚非。
Oracle属于长线平稳产品,是我吃饭的技术,也是我服务的公司,当然拼了老命也要买它的。
Ubuntu是Linux发行版的后起之秀,在Google的影响下,隐然有王者的气势显现,它是我第一个买的,当时不知道界面怎么操作,结果就买了4股,要不可以多赚些,^_^。
World of Warcraft是我一直在玩的网络游戏,是我的另外一个世界,选它自然是兴趣所在,相信圣诞的1.13版本和明年的“燃烧远征”资料片的推出会让它为我赚钱的。
这样的游戏由于少了真实的利益,所以显得格外轻松和好玩,当然也是因为少了真实的利益,所以这个虚拟科技股市的涨跌也就不会那么符合市场经济规律,总体来说仍然是大家兴趣的体现吧。
update@2006-12-11
Gain/Loss $465.18 赚入465美元
早上9:55的飞机,溜溜坐了4个多小时,下午2点多总算到了乌鲁木齐。
乌鲁木齐下过雪了,在飞机上往下看,绵延千里的雪原并没有那么白,差点儿以为是沙漠,心里还一个劲儿地惋惜,多好的地方啊,怎么就跟埋在沙子里一样,飞低了,才知道那是雪,暴汗。
去酒店的车上,司机说,可以去天池,现在有水还有冰精,好,干完活,抽一天时间去天池看看。
No Tags
在创建含有LOB字段的表时,出现这样的报错:
ORA-03001: unimplemented feature
OERR的解释是:
ORA-03001 unimplemented feature
Cause: At attempt was made to use a feature that is not currently implemented.
Action: Do not attempt to use this feature at this time.
这个很自然让人想到难道是LOB的功能没有安装?但是我们也知道对于LOB的支持是内置在Oracle数据库中的,不需要额外安装,那么到底是什么原因?
因为数据库版本是9.0.1.5,也就是是Oracle9i release1 的数据库,检查数据库的文档我们发现这样一段话:
Restrictions on AUTO:
* You can specify this clause only for permanent, locally managed tablespace.
* You cannot specify this clause for the SYSTEM tablespace.
* You cannot store LOBs in AUTO segment-managed tablespaces.
也就是在Oracle9iR1版本中,我们不能在ASSM的表空间中创建LOB字段,这个限制在9iR2中被移除了。
解决方法:
1。升级数据库到9iR2,或者
2。将LOB字段存储在非ASSM的表空间中。
比如:

正式放弃Bloglines,改用Google Reader作为RSS的阅读工具。
Google Reader在改版之后,舍弃了以往那种Cool but useless的用户体验,而带之以左侧目录树右侧文章集的常规模式,当然凭借Google对于ajax的良好把握,这次改版无疑是十分成功的。
更多的夸奖也没有了,总之Google又一次让我在日常的网络应用中投入她的怀抱。
让我们战栗且享受着吧。
Google Reader
Oracle数据库监听无法正常启动,在log文件中产生大量的错误信息。
28-NOV-2006 14:39:55 * 12531
TNS-12531: TNS:cannot allocate memory
28-NOV-2006 14:39:55 * 12531
TNS-12531: TNS:cannot allocate memory
OERR的解释是:
TNS-12531 TNS:cannot allocate memory
Cause: Sufficient memory could not be allocated to perform the desired activity.
Action: Either free some resource for TNS, or add more memory to the machine. For further details, turn on tracing and re-execute the operation.
实际上,可用内存肯定是足够的,最后发现原因居然是hosts文件中缺少主机定义。
配置监听我们使用的是netstat -in检查网卡绑定的IP地址,然后将IP写入listener.ora文件。
通常netstat -in中显示的IP地址在/etc/hosts文件中都会有配置,而偏偏这次没有,于是oracle的监听程序在启动的时候在hosts文件中检查不到listener.ora中配置的主机,所以无法正常启动。
另外,如果/etc/hosts中设置的IP和主机名称对应中没有本机hostname命令显示的主机名,也同样会报这个错误。
解决方法:
在/etc/hosts中配置正确的IP地址和主机名称
晚上出去吃饭,忽然想到夜晚的布达拉宫是怎样的呢?住的地方步行到布达拉宫用不了5分钟,于是信步走过去,看了一眼,立刻折返回酒店,揣了相机,又冲回去。
很多人也许都拍过布达拉宫的夜景,但是恐怕最多也就是站在人行道上仰望一下吧。
布达拉宫的正门在晚上是关闭的,也就是你决没有可能站在这个阶梯上如此近距离的感受布达拉宫的夜晚。
可惜的是,我也仅仅是走完了这层阶梯,就被人叫住了,义正严词地询问我,布达拉宫是国家一级文物,晚上不开放,你怎么进来的?
我是怎么进来的呢?一般人我不告诉他。
布达拉宫
每天中午都会到布达拉宫脚下的“雪茶室”去喝一壶甜茶,然后从布达拉宫脚下的大街仰视着布达拉宫走一遍,对于这座世界屋脊上的宫殿,每每看到它只有一个词浮现出来 - 俯瞰苍生。
她肃穆、冷静、默然地面对着脚下车水马龙的现代化街道,还有街道上来来去去的人群,她不说一句话,但是人们却唯有仰视和膜拜。
今天终于进入布达拉宫参观,可惜的是现在正值修缮期,内部的不少大殿都不让参观了,管理人员说半年以后吧,半年以后都会开放的。
宫殿内部不允许拍照,所以只有把看到的印在脑中。廊道交错,殿堂杂陈,仿似进入迷宫一般。佛像,经文,壁画,灵塔,坛城,纷至沓来,目不暇接。
因为我是一个人进来参观的,并没有解说员在旁边介绍,但也许正是这样,就少了一份匆忙,多了一份静谧,看着殿内的喇嘛将佛像前供奉的一杯杯圣水清理干净,然后仔细地拂拭本来已经不沾一尘的桌椅,又静静地将长明灯的火苗拨亮,所有的一切都是如此神圣肃穆。自己仿佛变成透明的空气游荡在一个毫不熟悉的世界里,然而心情却格外宁静。
从布达拉宫的后山下来,又跑到“雪茶室”要了一壶甜茶,点了一根烟,沉淀一下刚才的那份感动。明天我就要离开拉萨了,但是,布达拉宫,我一定还会再来看你的。
布达拉宫
这周三抵达拉萨,加班到高原反应明显,周四一天痛苦无比,周五的我又活了,哈哈,中午我去了布达拉宫哦。
先贴两张吧,告诉大家我还活着。更多图片参看photo album。
word版本的游记下载,很大哦,19M,估计是里面的图片没有压缩,也懒得再整的了。
Travel
本文对eygle的如何处理ORA-600 [2662]作一点补充。
通常我们对于ORA-600 [2662]错误的解决是通过10015 ADJUST_SCN事件来增进current SCN以达到比数据文件中最大的SCN还要大的目的,这样才可能启动数据库。
eygle的例子中报错信息如下:
ORA-00600: internal error code, arguments: [2662], [0], [547743994], [0], [898092653], [8388617], [], []
这个报错参数的含义在metalink中如此描述的:
Arg [a] Current SCN WRAP
Arg [b] Current SCN BASE
Arg [c] dependent SCN WRAP
为了存储更大的SCN值,当SCN BASE到足够大并开始重置的时候,SCN WRAP将加1。
Arg [d] dependent SCN BASE
Arg [e] Where present this is the DBA where the dependent SCN came from.
也就是Arg [d] 的值是从哪个block中找到的,通常是一个data block address。
通过这几个参数根据一定的规则可以计算出我们需要的level。计算规则如下:
1. Arg [c] *4得出一个数值,假设为V_Wrap
2. 如果Arg [d]=0,则V_Wrap值为需要的level
Arg [d]
Arg [d]
Arg [d]
仍旧看eygle的案例。
Arg [c] *4 = 0 * 4 = 0
Arg [d] = 898092653
所以level = 0+1 = 1
因此其实eygle不需要增进level 10,level 1就应该足够了。
看另外一个例子的报错信息,我们再来计算一次。
ORA-00600: internal error code, arguments: [2662], [0], [2179133], [8656], [70114056], [33855201], [], []
Arg [c] *4 = 8656 * 4 = 34624
Arg [d] = 70114056
所以level = 34624 + 1 = 34625
因此在这个例子中我们应该执行
因为忽然需要安装数个在AIX5L Based Systems (64-bit)上的Oracle9i RAC环境,而且都是手动创建,所以今天晚上创建到第三个的时候已经头晕了。
数据库软件打到9208的patch,是从最初的安装环境tar到新RAC环境的两个节点上的。
所有数据库目录结构手工创建。
所有init参数手工修改。
然后准备启动数据库实例到nomount状态,用create database手动创建数据库。
但是startup nomount却开始报错。
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:socket failed with status: 68
ORA-27301: OS failure message: Can’t assign requested address
ORA-27302: failure occurred at: sskgxpcre1
因为说实话环境太多,前面安装HACMP的IBM的哥们儿估计也被弄得有点儿晕了,忘记创建裸设备,忘记设置系统limits的事情前面也都发生过,所以一看是OS报的错误,不由不怀疑到是不是又忘了设置什么。
检查系统浪费了不少时间,后来自己检查,才发现原来是自己晕了。。。汗。
错误原因:
在init参数里面设置的cluster_interconnects参数还是原来那个环境的私有IP,所以当cluster_database=true的数据库实例启动时,Oracle无法正确取得节点间的心跳地址,故而报错。
解决方法:
cluster_interconnects参数改正确就好啦。
1。US的一个同事建议还是把WebIV的那篇文章删掉为好,因为better be safe than sorry,所以删掉了。
2。原来TAO是源码库,现在最新是9i的源码,只有analyst可以申请帐号,并且如果隔60天不登陆就会被封停。我觉得源码还是不用去看了,解决问题也不用看源码,再说看也看不懂。
3。AIX5L上安装Oracle9iRAC中,IBM的工程师跑回北京度周末了,剩我一个明天还得去继续工作。
4。酒店的电影台有3个,12点以后没有成人节目。
5。用这个DELL D620玩魔兽世界还是不爽,远景必须最小,否则FPS只有10以下,整个感觉都是飘的。
No Tags

现在可以从OTN上下载OTN’s “Greatest Hits” CD。
这张cd大概120M,包括了过去12个月来OTN上最热门的技术文章,示例代码,被人查的最多的Oracle文档,另外还有一些podcast音频,比如我们可以听听Tom Kyte对Oracle Database 10g Express Edition的看法,Tom长得秀气,声音居然也很秀气,甚至可以说有些羞赧呢。
当然,仍然有些跟不上的变化的地方,比如推荐的OTN Blog中在ORACLE EMPLOYEE BLOGS分类中有Stefan Roesch这位RAC专家的blog,但是其实Stefan Roesch已经不再是Oracle的雇员了,在Oracle工作了7年以后他现在跳槽到了微软。
Oracle
作为新员工,根据Role的不同会被自动加入一些公司内部的邮件组中,这在Oracle称为helpinglist。
比如helpperf就是关于Oracle数据库性能问题的邮件组,平时没有自己工作的时候看看这些往来的技术邮件也是挺有意思的。
helpperf今天上午就有一个关于select count(*) from a如何提高性能的讨论,a表中有44 million的数据。
有人提出的建议就很有实验意义,可惜今天没有可以用于实验的数据库环境,否则就测试一下了。
So in order to speed it up you need to read less blocks and do it in parallel … you need to find the smallest column that has a not null constraint … create a global partition index by hash …
也就是对于一个有索引的大数据量表进行select count(*),能够提高性能的就是读最少的index block并且并行,那么我们可以在一个最小的非空列上创建一个hash类型的全局分区索引。这样index fast full scan就有可能提高速度了。
Oracle内部的高手一定很多,但是在外声名显赫的无非就是Tom那几个人,也许这个helpinglist也是原因之一吧,既然公司内部就有广泛交流的渠道,当然就少了很多动力去外面抛头露面了。
Oracle
当不是Oracle员工的时候,在外面听说到传奇的WebIV总是无限向往,想象着里面会蕴藏着多少神奇的宝藏。然而当这个东西真正放到了眼前,你会bookmark他然后心里说,放着吧,以后再看,典型的贱骨头作法,嗯,我也不例外,呵呵。
这个就是传说中的WebIV了,其实也就是一个文档库和issue处理方法库,顺序浏览几乎是不可能完成的,因为文章太多了,通常的用处是在碰到问题以后进行搜索。
Oracle
入职Oracle的第一天,总得来说让人满意。
配发的笔记本DELL-D620,宽屏,Intel Centrino Duo1.8G双核CPU,100G硬盘,2G内存,蓝牙,DVD刻录,虽然显卡内置差了一些,外观也没有IBMT系列那么诱人,但是已经足够好了。想起在PCCW笔记本的待遇,实在是天壤之别。
那个夸张的CISCO电话机,功能超强,居然还有触摸屏,记得以前Oracle是北电的话机,不知道什么时候换成这个庞然大物了。
中午老板请客,算是迎新宴,十几个同事,颇为热闹,平易近人的好boss不可多得。
下午员工帐号出了些问题,打电话到Global IT Service去,搞定之后,用ThunderBird收邮件,感觉颇为欣喜,Oracle的预装机器居然带有Firefox和ThunderBird,看来Oracle在Open和Free上确实身先士卒着。
再次品尝到免费的咖啡,惬意。
希望这是一个好的开端,Be professional!
Update@2006-11-14
今天发现还有免费的饼干,乐芝的,花生夹心,不知道会不会经常换花样呢?

终于Firefox2.o露面了,没有什么大的惊喜,也没有什么问题,所有喜欢FF的人都会去第一时间下载,Mozilla控制住自己全球浏览器市场份额12.5%这个数字理应没有什么困难,因为IE7同样是没有一招毙命的绝技。
华尔街日报称:新版本的IE有了长足进步,不过令人失望的是,微软五年磨一剑,推出的却不过是个跟风弱小竞争对手的产品.
Firefox2.0在每个tab页上添加了一个关闭按钮,据说为了是否添加这个按钮经过了Google和NASA的多项调查,最终决定还是添加这个按钮,甚至我们在安装完Firefox2之后在第一个页面就可以看到这个按钮的宣传页面。

PortableFirefox还没有推出2.0的版本,我就暂时先用这个安装的官方版了,所幸的是大多数需要用的插件都已经快速地跟进到了2.0版本,Tabmix Plus还没有,那就先点点Mozilla力推的这个关闭按钮吧。
在安装插件的时候发现了一个有趣的事情,Foxmarks Bookmark Synchronizer是我一直在用的书签同步插件,以前跟Delicious Bookmarks一直相安无事,但是这次,Delicious却说检查到了Foxmarks,不是他死就是我亡,是他是我选一个吧。
难道Yahoo收购了Delicious就要这么专横吗?美味书签跟浏览器的书签根本就是两个概念的事情,所以,抱歉,我只好选择Foxmarks。
Firefox