IBM xSeries 255 RAID卡更换笔记

2009年6月18日 没有评论

早上开机,发现提示:

No SCSI boot device found
SCSI BIOS not installed!

查看RAID卡,发现后面灯不亮,初步判断RAID卡坏了,本机做的RAID1,磁盘柜做的RAID5+hotspare,打800电话,NND,过保了.赶紧从报废的老7100上下了一块4MX的RAID卡换上,希望能用.

更换RAID过程:

先把通道1和2的线拔了,硬盘数据安全第一 :)

系统检测到RAID卡后,出现提示按CTRL+I的信息了,很兴奋,哈哈,按了CTRL+I,进入RAID卡BIOS

Main memu
View cantroller status (显示RAID卡及硬盘状态)
View configuration
Advanced functions(高级设置)
EXIT

进入高级设置:

Restare to Factory Defanlt Settings 
Copy the configuration from drives to the controlle

先把原raid上记录的阵列信息清除.Restare to Factory Defanlt Settings

然后关机,接上通道1和2的连接线,恢复阵列,选copy the configuration from deives to the cotrolle

稍等片刻,按ESC重启,会有提示:

press F5 – accept new BBC and lose all data stored in BBC
按F5,然后又有一个提示:

162 configuration change hus occurred

进入CMOS清除日志后进入系统啦.

:razz:   :smile:

分类: 未分类 标签: ,

P43-DS3L成功安装iDeneb 10.5.5,声卡ALC888与显卡7300LE完美驱动

2008年12月12日 1 条评论

我的机器配置:

CPU :Intel Core 2 Duo E7200
主板:技嘉GA EP43-DS3L 
     北桥:Intel® P43 芯片组 
     南桥:Intel® ICH10 
     声卡:内建Realtek ALC888芯片
     网卡:内建Realtek 8111C芯片
显卡:MSi 7300LE 64MB
硬盘:希捷 SATA  320GB 
内存:  2GB DDR2 800

开始安装:

在BIOS将SATA传输模式改为AHCI,我硬盘原先安装的是VISTA,划出来30G空间,创建两个盘,一个20G,不要分配盘符,另一个10G,用FAT32格式,设为Z盘(至于人们说的主要或逻辑分区问题,我认为无所谓,我就没设),将下载的iDeneb 10.5.5文件写入Z盘(过程略了,至于AHCI后vista系统不能进入,双启动问题,不会的可以搜一下教程很多)

重启,选MAC OS X后,在4秒时间内按上下键进入最后一项安装MAC。选择磁盘工具把划分出来的20G盘抹盘,选MAC扩展日志格式,等一会就安装到这个盘上。

安装自定义选择:(重点,你的声卡能不能发声,网卡、显卡能不能工作,全看这了)

本地化语言:简体中文(看你喜欢用什么语言)

X11(个人选择,无所谓)

Fixed Kernel:(不选的话安装的是9.5内核,必须,否则ALC888声卡驱动不了)

Chipset:不选(千万别选 ICHx Fix)

Audio:不选(记不大清了,如果到时驱动不了的话就选择ALC888带6的那两个,勿多选)

Network:不选(安装好后会自动认出来)

显卡选择:nvi 那个128M的,因为找不到64M的  :)

软件选择看个人喜好,我选了OSx86 tools和Kext Helper b7

其它都别选了,特别提到ahciX fix、电源补丁和关机补丁,千万不要选,否则会造成重启不了、关机不断电和声卡驱动不了的问题。

开始安装,15分钟左右。看一会电视回来。发现安装好了,进系统的时候boot error,哈哈,拿出你的98启动盘fdisk /mbr或vista的,选修复磁盘就OK了。

终于进入了MAC的世界,欢迎界面真的很炫哦。:)

进入系统后把p43-alc888的两个文件拖到Kext Helper b7安装,用OS x86 tools修复一下权限声音已经出来了。设置一下ADSL,增加PPPoE,拨号成功!

pic-1

pic-2

pic-3

pic-4

祝大家都能吃上苹果〜

Faq:

A:拨号拨不上去,网卡只有发出的包接收不到包?

Q:安装时候内核选的不是9.5,重启安装或下官方的网卡驱动。ps:不重装的话你声卡是驱动不了的。

A:选择是9.5内核,声卡还是驱动不了或关机不断电

Q:安装的时候选择了电源补丁和关机补丁

或ahciX fix,重新安装。关机不断电请安装IOUSBFamily-303.4.5b.pkg.

分类: 乱七八糟 标签: ,

安徽人真正的本色是什么?

2008年10月20日 没有评论

安徽人灵柔不如南方仔,刚猛不如北方佬。处于淮河流域的安徽人有着南方人与北方人之间的过渡性格,这里的人刚柔相济,受到过传统文化严密的训练,他们的性格集中了周围陕西愣娃的老成、湖北九头鸟的心机、山东梁山好汉的沉勇、河北棉农的淳朴。
    在长江和淮河的两岸,拥挤地聚居着6410多万安徽人,居全国第8位。安徽是中国传统文化的一大堡垒,是中国古代哲学的故乡。安徽淮南市八公山发现的古猿化石证明中国是人类早期发源地,铜陵中国青铜文化发源地之一。
    安徽人牛劲十足,勤劳简朴,处处敢为天下先,自视甚高。早期的安徽人王直就是个有胆有识,有勇有谋为了商品贸易多次东渡日本,闯荡明朝海禁就是一个典型的安徽小农。
北方意味着干旱、寒冷、贫瘠、强悍和壮阔,南方意味着温暖、湿润、富庶、发达、柔婉和清丽。北方人意味着深沉的阳刚之美,厚重、严谨、朴实、豪放,南方人意味着婉约的阴柔之美,浪漫、灵敏、细腻、温情。安徽人既不是典型的北方人,也与南方人差别甚远。要描绘处在北南交汇地带的安徽人整体性格无疑有点困难,因为它缺乏醒目而鲜明的地域性特色。比方说我们提到陕北人的时候就会想起在黄土地上嚎着信天游大碗喝酒的绥德汉子,说到山东人,就会想到杀富济贫的梁山一百零八好汉,说到山西人就会想起两眼贼溜溜放光的钱庄柜台老板,说到浙江人就会想到身着绸衣水灵灵的采菱女。安徽人不是三言两言能够描绘的,从表面上,我们看不出貌似平实无奇的安徽人丰富的心灵世界。
    安徽人,历来与中原交通不便,与皇宫疏通不多,往而不亲,他们平凡、恬淡、沉静、甚至似乎满身土气,毫无风光,但当人们翻开他们浩繁的著述,阅读他们如入海蛟龙的文章的时候,便会感到他们那天成的灵性与深广的知识积累。全椒人吴敬梓,清代著名的小说家,创作的古典小说《儒林外史》对封建社会科举制度和腐朽的官僚政治进行了辛辣的讽刺,为中国的讽刺小说奠定了基础。历史上,安徽博采众家之长,汇聚了周围各个地区的文化营养。安徽文化是一种吃“万家奶”长大的文化,是中国历史文化的缩影。
    第二次世界大战结束后,一家欧美报纸登载了一则趣味性幽默——如果在各自房子里落了一根针的话,屋子里的意大利人、法国人和德国人会对此做出很不相同的反应。意大利人耸耸肩膀,满不在乎地离去;法国人顺手抄起一把扫帚把地胡乱扫了一通;德国人则用一把尺子和一根粉笔把地板划成一个个小方格,在每个格子里仔细寻找,直到找到这根针为止。这则幽默生动地体现了意大利人的散漫、豁达、不拘小节,法国人的浪漫、细腻、浮躁,德国人的严谨、求实、思辩、坚韧。
    这事要碰到安徽人身上,他们会一边悠闲地啃着馍馍,一边蹲下身来盯着地上看,不慌不忙找到针后立即收藏起来。他们不会像意大利人、法国人那样随心所欲,也不会像德国人那样过分拘泥严谨。他们凡事从容不迫,对自己的一切充满了良好的感觉。在近现代安徽人穷怕了,他们深知生活的艰辛和物质的来之不易,在他们眼里,一根针是生活中必不可少的东西,应该珍惜,一块钱实质上是一堆白花花的盐。
    尽管如今的安徽早已失去了昔时灿烂的光辉,整个文化有如江河日下垂垂老矣,然而面对沿海地区咄咄逼人的经济步伐,他们仍然对家乡怀着“中国惟有此地可居”“吃在杭州、玩在苏州、死在徽州”,的心理认同。自从汤显祖一句“一生痴绝处,无梦到徽州”开始,徽州成了世人的眷念之所。
    安徽人就像寒冬的土拨鼠一样蛰伏在淮河两岸的深处,他们慢慢舐吮自己的爪子,以备来年更加辛勤地耕耘。
    安徽人还是中国传统礼教观念较重的一个群体,他们保守而注重实惠,尤其注重自己在家族或周围人群中的名声。儒家传统的“三纲五常”、“三从四德”等礼教准则在许多安徽人那儿仍很有市场。
    “江淮熟,天下足”,“走千走万不如淮河两岸”并非是无缘由的空话。千百年来,横跨豫皖、苏、鲁四省的淮河,在造福两岸人民的同时,也给人民带来巨大的灾难。淮河之滨的凤阳出过朱元璋,那可是造反最成功的人物,安徽淮河沿岸人民由于经常受水灾,生活极端困苦,所以自古就有造反精神,陈胜、吴广、刘福通、朱元璋、捻军都是从这里杀出来的,他们对朝廷的震撼,每个统治者都应当知道。毛泽东曾经根据淮河灾情,借鉴历史经验,从政治高度出发,强调了根治淮河水患的重要性。据钱正英回忆,当时毛泽东认为,中国历史上好几个开国皇帝都出在淮河流域,刘邦是淮河流域沛县人,曹操是淮河流域亳县人,朱元璋是淮河流域凤阳人。其原因在于淮河流域天灾人祸多,是中国历史上农民起义的温床。为了新中国的安定,必须先把淮河治好。
    淮河流域一直是经济、政治和文化的中心,它是整个中国文明的焦点。这种漫长而古老的历史厚度,使得安徽人长期生活在世代因袭的观念中,并直接产生了两个后果:一方面安徽人深深地为脚下的大地所陶醉,这种独特的自豪感成为他们前进道路上重要的心理基础;而另一方面,穷则思变曾经是何等富庶的淮河一旦灾害频仍,安徽人就会思考变革。安徽人追求安逸,满足现状,只是在迫于无奈走投无路时才会去改革创新。安徽人向来都是追求安逸的,活不下去是才会本能的爆发,忍耐力很强,所以历史上的起义暴动很少首先发生在安徽,更多的时候他们是追随者,之所以如此沉寂是因为他们善于忍耐。因此要调动安徽人的积极性,激发出他们的热情还是应该有强大的压力,压得他们觉得必须改革,压出他们活不下去的恐惧,压出他们的创新思维。历史也证明安徽人有在压力下爆发的潜质。明太祖朱元璋不就是在活不下去的情况下落草为寇,打出了大明江山。小岗村民不也是在压力十足无法活路的情况下首创了联产承包责任制,然而目前的小岗村又沉寂了,因为他们有后下去了,又可以安逸了。目前安徽的经济实力在全国来说是比较靠后的了,但虽然落后,由安徽人的耐心似乎还未到能激发他们斗志的时候。再等等看,也许会再等出一个安徽人爆发的奇迹。
    安徽人是四平八稳的,既没有北方人的粗犷,也缺少南方人的灵秀,他们仿佛被沉重的历史重担压得直不起腰板来,在外国人看来中国人长得全差不多,面部神情千篇一律、僵硬而沉稳,这在安徽尤其突出。
    安徽人就像一口很深很深的井。由于深受儒家文化和道家思想的熏陶,他们不喜欢显山露水锋芒毕露充当出头鸟,而是更愿意将真实的本领掩盖起来,把好戏留在后头,螳螂捕蝉,黄雀在后,安徽人欣赏黄雀的老谋深算。若是初次见面的话,很难相信这些衣冠简朴神色平实的人实际上深不可测、内涵丰富。在安徽一个貌似文盲的乡村老头或一个摆地摊的小商贩也许就是一个饱学之士。
    中国人被权力社会折腾惨了,稍有不慎就会招来杀身之祸,人们不得不学会在政治漩涡中演戏,并狠下功夫钻营人生哲学。在一座黑暗的围城里怎样才能活得好一点呢?这是一个必须面对的人生大问题。在人生哲学方面安徽人显然很有一套,他们懂得在简单的物质条件下如何去打发快乐的日子。
像周瑜、鲁肃、李鸿章、段祺瑞这样的安徽智者多了,他们谈笑间“樯橹灰飞烟灭”不动声色就将一切事情都搞定了。
安徽人悠悠然不慌不忙,稳健,老成持重,心眼多,有分寸,近情近理,不偏不倚,不露头脚而具有最大适应性的潜力。
    美国最著名的中国问题专家费正清在总结中国人的国民性时指出:“中国人的忍耐,重视道德伦理,讲调和,守中庸,保守知足,崇拜祖先,尊敬老人和有学问的人等,体现了一种醇熟的人文主义,这种人文主义中心是人而不是神。”“中国的理想君子是一个置身于生产需要之上,能够优游岁月,致力于象征安闲的人。”他的这番话可以应对到安徽人人身上。
    安徽人韧性十足,是有名的“徽骆驼”和“绩溪牛”能够应付各种不同的困难,同时他们的质朴不容置疑。然而安徽人的质朴与山东人的质朴是不尽相同的,山东人的质朴很少掺杂水分在里头,而安徽人的质朴却很有分寸,猜不透葫芦里卖的是什么药。真正聪明的人是不会小瞧安徽人的,因为他们深知有大聪明的人都是很质朴的。早在几千年前早期的安徽人老子说大巧若拙,大音稀声,大智若愚;安徽人是不能小瞧的,谁小瞧了安徽人,谁就将搬起石头砸自己的脚。
    江淮大地古风犹存。说安徽人是传统文化的残余势力也罢,说安徽人跟不上现代文明前进的步伐也好,他们全然不去理会,照旧悠哉悠哉地过自己的小日子,而不是像邻近的河南人一样背着行囊背井离乡去金银满地的大都市去当打工族。安徽人不是不憧憬灯红酒绿的花花世界,而是实在舍不下家中的妻儿老小和生养自己的土地。
儒家道德精神和农耕文化编织成的小农意识,塞满了安徽人的脑袋瓜子,同时他们有着强烈的自我保护意识。
    安徽人的性格兼具南北,粗犷且细腻,完全可以用中庸来形容之,即不左不右,不激进也不死板,这可以解释为什么安徽历史上的名人不少,如古代的老子、管子、庄子、吴敬梓,嵇康、朱熹、包拯、曹操、范增、张良。现代的陈独秀、李鸿章、胡适等,这些名人的一个共同特点是都不算弄武人士,文化水平较高,曹操虽带兵打仗,可也文才出众,反到朱元璋是个异数,结果就做了皇帝。
    安徽人特别服从权威,性格温顺,但这种温顺与江南人胆小怕事柔弱有余的温顺不大相同,它包含有一层刚健的东西在里头。安徽是中国古代哲学的故乡,老子、庄子都是安徽人,他们所推崇的“无为而治”,安徽人继承了道家则比较超然通达,同时也学会了儒家倡导进取型的人生。所以在处事上有进有退,一刚一柔把安徽人的群体性格展示得淋漓尽致。从儒家的入世精神到老庄的无为而治,一阴一阳谓之道,安徽人刚柔相济,淳朴沉勇。成功的人谈儒家,不成功的人谈道家,还是拿破仑的那句话好:要生存,只有靠自己。
安徽为什么会文化优秀呢,想必与那里山清水秀有关,虽说地理上跨南北,可离江南最近,因而近水楼台,加之离古代文化较为集中的山东、河南不远,可以说是占了天时地利,接受新东西快,这算是安徽得天独厚的优势了。
    安徽的重要性,可从历史上就是兵家必争之地看出来,楚汉争霸,刘邦项羽就一直打到安徽灵壁东南的垓下,项羽最后拔剑自刎,一世英雄就如此壮烈而去,怪只怪项羽没用安徽人做谋士,让范增回了老家,让张良跟了刘邦,而出计将项羽置于死地的正是张良,安徽人的智谋于此可见一斑。
    朱熹是继孔孟之后的大思想家,他的理论可以说是明代后中国统治阶级的治国方略,简言之就是一个字,忍,小不忍则乱大谋在朱熹这有了进一步的完善,无论皇亲国戚、庶民百姓,为人处世都要忍字当头,这非常好地刻画了安徽人的性格,后来的李鸿章、陈独秀等都是如此行事风格,换了其他地方人,怕是不能做到如此具有忍耐性,这不能不说是一个优点,但不张扬确实是安徽人自古的传统,也算是忍的一种表现了。
    安徽近代最大的事件就是太平天国和皖南事变了。太平天国年代,安徽是洪秀全对抗清朝的重要地带,因为那里有长江下游几大要塞,安庆、芜湖都是天国的重镇,洪秀全的部队曾国藩的部队在此激战无数,直打的天昏地暗,最后洪秀全败了,而曾国藩则一战成名,湘军至此无敌天下,无湘不成军由此而来。皖南事变是国民党对新四军发起的反革命事件,叶挺将军因此被俘,“千古奇冤,江南一叶,同室操戈,相煎何急。”说的就是这次事件。这两次历史说明,安徽的地理位置相当重要,上可去江苏、山东,下可去上海、浙江、江西,地扼长江天险,谁都需要。
    皖南多英才,皖北多雄才。安徽是中国人文荟萃的渊薮,皖南为明朝之后出现历史名人最多的地区,而在明朝之前头把交椅非皖北莫属。皖南英才多清柔灵敏之人,皖北雄才多雄浑沉勇之人。
    当年以皖北人为主力的捻军消灭满清中央军队,汉族军阀的淮军从此成为满清主要军事力量。满清中叶,外敌入侵,太平天国从广西一路杀出,占了南京,但其终究无法进入满清政权的中心区域,华北。这时,安徽涡阳雉河集,捻军高举反清大旗,十万骑兵从此活跃于江淮河南山东大地,直接威胁北京,满清中央的最后军事王牌,僧格林沁的蒙古骑兵也亡于捻军,老僧在山东高唐被砍了头。中央无力,地方就称霸了。
    当年李鸿章的淮军也是在皖北淮河流域成长起来的,这支队伍以好勇善斗出名。刚刚剿灭了太平天国的湘军被调来剿捻,但湖南人受不了江淮地区的寒冷,并且适应不了与骑兵作战,剿捻最终由同样来自安徽的淮军完成。
    淮军首领合肥人李鸿章在满清后期成了一人之下万人之上,晚清的历史离不开他,不论功过,谁也不可否认他对晚清中国历史的重大影响。其中他将淮军扩大改组成北洋军,汉族将领从此敢于同满人争高下,这是推翻满清的一个重要因素,以后,北洋军在辛亥革命中起了重要作用。所以枪杆子理出政权。
生活在江淮之间的人,从小就在南北文化的碰撞中生存,知道怎样调和,怎样捣糨糊。所以安徽、江苏出宰相。李鸿章和周恩来是代表。
  安徽这样南北文化冲突的省,容易出先知先觉的人。陈独秀、胡适都是代表。胡适晚年在美国,收了唐德刚这个关门弟子,又是安徽老乡。而且唐的前辈在北京和胡适过从很密。唐德刚是合肥附近的,和李鸿章、吴邦国是老乡,胡适是徽州绩溪的。唐德刚在《胡适杂忆》里写道:胡适和我们说话,动不动就是我们安徽。其实,他们的徽州话,我们合肥人根本听不懂,连饮食习惯也不一样。而唐德刚为文,嬉笑怒骂,揶揄嘲讽,像说书一样。典型的淮河两岸那种风格,也许和蒙城的庄子文风有承继关系。而胡适,绝对是有九分证据,不说十分话。“今天哪有学问呀,无思想自由便无学问。”这是胡适先生讲的。当年大陆组织各位专家写文章批判胡适。胡适在美国将这些文章全部看完,觉得不值一驳。唐德刚问他:难道里面没有一点学术么?胡适说:无学术自由哪有什么真正的学术。
    安徽的历史如此丰富,也令安徽人多少有些厚重感,他们比较能忍辱负重,不善于表达而善于行动。改革开放初期,就是安徽的农民率先开展承包责任制,为打破二十多年的大锅饭开了个好头,所以中国的改革也是源自于农村,最后包围了城市的,这就是中国的特点,干什么事得为农民着想,否则什么也干不成。
老子曰:“我恒有三宝:一曰慈,二曰俭,三曰不敢为天下先。”虽然这古训倍受推崇,但实际不过是一张“护身符”。“不敢为天下先”,就是不敢勇挑大梁,不敢锐意创新。在这腾飞的新时代,人人要敢为天下先!
    这里曾是中华民族古文化的摇篮和发祥地之一,农耕文化积淀深厚,才子、名人辈出,浩荡的淮河,俊朗的黄山、婉约的九华山天下驰名。在夏商到明清的漫长时期里,淮河与长江流域温暖湿润的气候和肥沃的土地是安徽物阜民丰的基本保证。所以安徽人向来有着浓厚的江淮情节,安徽是江淮大地,安徽人是江淮儿女,甚至莲安徽的富庶也与江淮休戚相关,“江淮熟,天下足”。
    安徽人在口味上多半是爱辣嗜酒,爱辣的人们能把辣椒的辣享受得淋漓尽致飘飘欲仙,正如嗜酒的人们能把酒喝得酣畅淋漓腾云驾雾一样。对于嗜酒者而言,酒称之美酒,对于爱辣者而言,辣椒自然也可以称之美辣了。嗜酒的种群,其性格总要偏向率真豪放、刚毅勇武、粗犷剽悍的;嗜辣,可令人率性落拓,豪放不羁;可令人好事善行,敢做敢当;可令人豪情澎湃,壮怀激烈……
    据说武汉人的基本性格是外向型的,而且爽直,偏又性急,说话节奏之快常常如同吵架。武汉人自己将闲聊就叫做“聒天”,这在吴越人氏看来未免有点可怕。我想这很大程度上跟吃辣是分不开的。旧时代所谓“湖北佬”,其性格特征的形成,恐怕多半也要从辣椒里面去找源头原因的。辣椒影响力之所及,恐怕最后是要通向尚武精神,湖北有个大名鼎鼎的“将军县”,也不是偶然的吧?湖南人的“好胜尚气”也是很出名的,清末湖南巡抚陈宝箴在给皇帝的奏折中曾说,“其民气之勇,士气之盛,实甲于天下”,湖南人在近代以来的中国历史舞台上叱咤风云,驰骋宇内,更是辉煌的一页。这也不是偶然的。据有关史料显示,两百年前湖南在华夏大地上一向是寂然无声的,近代湖南志士杨毓麟也曾感叹道:清代咸同以前,我湖南人碌碌无所重于天下,亦不知有所谓对天下之责任。想想,这湖湘之地几千年沿袭下来的民风,在一两百年间就发生如此之大逆转,这难道跟湘人在近两三百年来的嗜辣习性毫不相干吗?而相对于吴越江南人氏呢?学者张仁福在《一方水土一方人》中是这么概括的:“个性相对文弱,气质相对纤细,情感温和,多愁善感,哀而不壮”。可见安徽人更多的是两者兼而有之。
    文明的衰落在劫难逃。星空黯然失色,历史伟丽的天鹅绒大幕徐徐降下。安徽丧失了所有政治、经济、文化上的轴心地位。博大而富丽的文化气象一落千丈。昔日的盛况已成为明日黄花,不复重现。
    虽然雄富的江淮大地上景物花容失色,虽然肩负着古老农耕文化传统重负的安徽进入近现代后,虽然步履蹒跚的江淮大地已不是什么中国或世界文明的领头羊了,虽然有人偏激的认为安徽人在近现代彻底地落伍了,他们只能在模糊的记忆中深情地缅怀古老时代的荣光。真正的智者会发现安徽正在崛起,安徽人虽然没有腾飞的翅膀,但是安徽人依旧是现在社会进程中不可或缺的“徽骆驼”和“绩溪牛”。

PS:这只是对安徽人性格的总结评价,不要往自己身上靠,也不要给自己的不一样而怎么着,这说的是整个安徽,大部分的安徽,而不是特指的安徽的某个地方!

分类: 乱七八糟 标签: ,

90个冷门知识看你知道多少

2008年6月3日 没有评论

1.看看你的拉链,如果上面有YKK三个字母,那么说明这是全球最大的拉链制造商Yoshida Kogyo Kabushibibaisha的产品
2.麦当劳40%的利润来自Happy Meals的销售
3.1996版的韦伯斯特词典有315处拼写错误
4.每天平均有12个新生儿被交给错误的父母
5.巧克力对于狗来说是致命的,只要几盎斯就可以使一只小狗,因为心脏和神经系统受损而死亡
6.19世纪30年代番茄酱是作为药品来销售的
7.达芬奇可以一手写字,同时另一手作画
8.剪刀是达芬奇发明的
9.描绘蒙娜丽莎的嘴唇花费了达芬奇10年的时间
10.二战期间颁发的奥斯卡奖座是木制的,因为当时金属是稀缺物资
11.拉斯维加斯的赌场都没有钟
12.李小龙的动作非常快,快到看不清,所以拍电影时只好放慢胶片的速度
13.仰面躺着并缓缓地抬起双腿,可以免于陷入流沙之中
14.驱蚊水并不驱蚊而是干扰蚊子的感觉器官,这样它们就找不到人在哪里
15.牙医建议,牙刷应放置于距离盥洗室至少6英尺远,以避开冲马桶时产生并漂浮于空气中的各种微粒
16.最早被打上条形码的产品是箭牌口香糖
17.迈克尔.乔丹每年从耐克得到的收入多于马来西亚的耐克工厂工人的薪水总和
18.玛丽莲.梦露的一只脚上有6个指头
19.希特勒的母亲曾考虑堕胎,不过被医生劝阻了
20.一生中人会脱落40磅的皮肤
21.要是不小心被鳄鱼咬到了,你就狠狠地戳它的眼球,它会放你走
22.人平均只需7分钟就可以入睡
23.在菲律宾溜溜球曾被作为武器
24.猫是圣经里面唯一没有提到的家养动物
25.冷藏时橡皮筋可以保存得更好
26.56%的键盘录入由左手完成
27.”dreamt”是唯一以”mt”结尾的英文单词
28.即使没有头,蟑螂仍可存活10天
29.打喷嚏时无法睁着眼睛
30.墨西哥城每年下沉10英寸
31.睡眠时的脑比看电视时更活跃
32.80%的美国人最喜欢蓝色
33.在这个星球上鸡比人多
34.大拇指的指甲长得最慢,中指的指甲长得最快
35.在美国华盛顿电话比人还多
36.48个最贫困的国家其资产总和还比不上全球最富有的三大家族
37.万宝路香烟公司的第一任老总死于肺癌
38.聪明人的头发中含有更多的锌和铜
39.世界上最年轻的父母是1910年一对中国的小孩,分别8岁和9岁
40.出生时,我们的眼睛多大,现在还是多大。但是鼻子和耳朵一直都在长
41.睡觉时耗费的热量比看电视时还要多
42.人不睡觉大约10天就会死亡
43.切洋葱时嚼口香糖就不会流泪
43.蒙娜丽莎没有眉毛
44.如果月亮正好在头顶上方,那么你的体重会稍微的减少
45.发明了电话的亚历山大.贝尔从未给他的母亲或妻子打过电话,因为她们都失聪了
47.”I am.”是英语中最短的完整句
48.如同指纹,每个人的舌纹都不同
49.”bookkeeper”是英语中唯一一个连续3次重复字母的单词
50.惯用右手的人们平均比惯用左手的人们寿命长9年
51.”The quick brown fox jumps over the lazy dog”用到了英语中所有的字母
52.如果所有的中国人排成一线从你面前走过,由于过高的出生率,这条线将永远没有尽头
53.在中国使用英语的人比美国还多
54.人体每平方英寸的皮肤包含有20英尺长的血管
55.人平均每天使用洗手间6次
56.婴儿出生时有300块骨骼,成人后只有206块
57.胡须是生长速度最快的人体毛发。如果一名男性从不修容,终其一生他将蓄出30英尺长 的胡须
58.先有鸡还是先有蛋?根据《圣经 创世纪 1:20-22》,先有鸡
59.仍在使用的最长的地名是:Taumatawhakatangihangaoauauotameteaturi-
Pukakpikimaungahoronukupokaiwhenuakitanatahu,那是新西兰的一处丘陵
60.如果你早上7点乘坐飞机离开东京,那么当你到达檀香山的时候,时间是昨天下午4点半
61.澳大利亚帕凯斯天文台的科学家们曾以为他们接收到了来自地外文明的电波,经过调查 ,发现那道电波其实来自天文台里的一个微波炉
62.戴耳塞一小时,耳朵里的细菌数量将是原来的700倍
63.一个French kiss可以交换超过40000个寄生虫和250种细菌
64.男性较女性视力好,女性较男性听力好
65.可口可乐最初是绿色的
66.世界上最常见的名字是:穆罕默德
67.如果不把”north”和”south”算在内,在英语中,七大州的首尾字母都相同
68.平均每个美国人有两张信用卡
69.”typewriter”是用QWERTY键盘的单排按键所能够写出的最长英文单词
70.失明的女性是男性的两倍
71.人不会因为屏息而死
72.当你打喷嚏的时候,你的心脏会停止跳动约1毫秒
73.猪无法看到天空
74.”Sixth sick sheik’s sixth sheep’s sick”是英语中最绕口的绕口令
75.过于剧烈的喷嚏会震裂肋骨,而试图憋住喷嚏将使颈部或者颅内的血管破裂从而致命
76.扑克牌中每个花色的K都代表着历史上的伟大君王:黑桃是大卫王,梅花是亚历山大大帝,红桃是查理大帝,方块是凯撒大帝
77.111,111,111 x 111,111,111 = 12,345,678,987,654,321
78.当你看到一尊骑士的雕像,如果马是四脚腾空的,那么此人战死沙场
79.同上,如果马的一只前脚抬起,那么此人因在战斗中负重伤而牺牲
80.同上,如果马的四脚皆着地,那么此人死于自然原因
81.蜂蜜不会变质
82.鳄鱼无法伸出它的舌头
83.蜗牛一觉可以睡上3年
84.所有的北极熊都是左撇子
85.1987年,美国航空公司在向头等舱提供的每份沙拉中,减少1颗橄榄,从而节省了40000 美元
86.蝴蝶的味觉器官在它们的脚上
87.大象跳不起来
88.在过去的4000年里,没有新的动物被驯养
89.一般来说,人们害怕蜘蛛胜过死亡
90.”assassination”和”bump”这两个词是莎士比亚创造的

分类: 乱七八糟 标签: ,

今天收到SYBASE快速参考手册了

2008年3月3日 没有评论

今天一进办公室,发现桌上有一封挂号信,拆开一看,是SYBASE的手册寄到了,共四本,V3和V4各两册,里面内容很不错.正在阅读中.

感谢SDN,感谢无言.

分类: 乱七八糟 标签:

轻松一下:一位程序员的演变历程

2007年9月26日 没有评论

The Evolution of a Programmer
High School/Junior High

10 PRINT “HELLO WORLD”
20 END

First year in College

program Hello(input, output)
begin
writeln(’Hello World’)
end.

Senior year in College

(defun hello
(print
(cons ‘Hello (list ‘World))))

New professional

#include
void main(void)
{
char *message[] = {”Hello “, “World”};
int i;

for(i = 0; i < 2; ++i)
printf(”%s”, message[i]);
printf(”\n”);
}

Seasoned professional

#include
#include

class string
{
private:
int size;
char *ptr;

public:
string() : size(0), ptr(new char(’\0′)) {}

string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}

~string()
{
delete [] ptr;
}

friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};

ostream &operator<<(ostream &stream, const string &s)
{
return(stream << s.ptr);
}

string &string::operator=(const char *chrs)
{
if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}

int main()
{
string str;

str = “Hello World”;
cout << str << endl;

return(0);
}

Master Programmer

[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
// bring in the master library
importlib(”actimp.tlb”);
importlib(”actexp.tlb”);

// bring in my interfaces
#include “pshlo.idl”

[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};

[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{

// some code related header files
importheader();
importheader();
importheader();
importheader(”pshlo.h”);
importheader(”shlo.hxx”);
importheader(”mycls.hxx”);

// needed typelibs
importlib(”actimp.tlb”);
importlib(”actexp.tlb”);
importlib(”thlo.tlb”);

[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable
]
coclass CHello
{
cotype THello;
};
};

#include “ipfix.hxx”

extern HANDLE hEvent;

class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);

CHello(IUnknown *pUnk);
~CHello();

HRESULT __stdcall PrintSz(LPWSTR pwszString);

private:
static int cObjRef;
};

#include
#include
#include
#include
#include “thlo.h”
#include “pshlo.h”
#include “shlo.hxx”
#include “mycls.hxx”

int CHello::cObjRef = 0;

CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}

HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf(”%ws\n”, pwszString);
return(ResultFromScode(S_OK));
}

CHello::~CHello(void)
{

// when the object count goes to zero, stop the server
cObjRef–;
if( cObjRef == 0 )
PulseEvent(hEvent);

return;
}

#include
#include
#include “pshlo.h”
#include “shlo.hxx”
#include “mycls.hxx”

HANDLE hEvent;

int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();

hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);

CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);

// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);

// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();

// Tell OLE we are going away.
CoUninitialize();

return(0); }

extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;

CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0×2573F891,
0xCFEE,
0×101A,
{ 0×9A, 0×9F, 0×00, 0xAA, 0×00, 0×34, 0×28, 0×20 }
};

UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0×2573F890,
0xCFEE,
0×101A,
{ 0×9A, 0×9F, 0×00, 0xAA, 0×00, 0×34, 0×28, 0×20 }
};

#include
#include
#include
#include
#include
#include “pshlo.h”
#include “shlo.hxx”
#include “clsid.h”

int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];

// get object path
wcsPath[0] = ‘\0′;
wcsT[0] = ‘\0′;
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, “Object path must be specified\n”);
return(1);
}

// get print string
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L”Hello World”);

printf(”Linking to object %ws\n”, wcsPath);
printf(”Text String %ws\n”, wcsT);

// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

if(SUCCEEDED(hRslt)) {

hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

if(SUCCEEDED(hRslt)) {

// print a string out
pHello->PrintSz(wcsT);

Sleep(2000);
ulCnt = pHello->Release();
}
else
printf(”Failure to connect, status: %lx”, hRslt);

// Tell OLE we are going away.
CoUninitialize();
}

return(0);
}

Apprentice Hacker

#!/usr/local/bin/perl
$msg=”Hello, world.\n”;
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, “>” . $outfilename) || die “Can’t write $arg: $!\n”;
print (FILE $msg);
close(FILE) || die “Can’t close $arg: $!\n”;
}
} else {
print ($msg);
}
1;

Experienced Hacker

#include
#define S “Hello, World\n”
main(){exit(printf(S) == strlen(S) ? 0 : 1);}

Seasoned Hacker

% cc -o a.out ~/src/misc/hw/hw.c
% a.out

Guru Hacker

% cat
Hello, world.
^D

New Manager

10 PRINT “HELLO WORLD”
20 END

Middle Manager

mail -s “Hello, world.” bob@b12
Bob, could you please write me a program that prints “Hello,
world.”?
I need it by tomorrow.
^D

Senior Manager

% zmail jim
I need a “Hello, world.” program by this afternoon.

Chief Executive

% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout

分类: 乱七八糟 标签:

Sybase ASE15的分区

2007年9月17日 没有评论

摘自chinaunix.net willa.yuan 、51CTO.com 崔灿
一、分区表的类型
数据分区可以将大的表或者索引分割成小的数据片,并存放在不同的存储单元中。数据库管理员可以在底层处理数据的存储、维护和管理工作。

“segment(段)”在ASE中被定义为设备的单元。它常常被用来存储特定类型数据,例如:系统数据、日志数据和用户数据。分区可以存贮在不同的段上或者不同的分区存储在同一个段上。类似的,一个或多个段可以存放在任何的逻辑或物理设备上,这样可以分离I/O来提高性能和数据的可用性。

在一个分区上的表或索引数据可以以不同于其他分区的方式来管理和操作。查询只须访问那些包含所需数据的分区。

数据库管理员可以更快捷地管理和维护这些较小的分区,而不是像以前那样不得不面对巨型的表和索引。一些日常的任务甚至可以在多个分区上并行地执行,这不但可以节省时间,还可以在分区上自动运行。当数据增长时,只需添加新的分区即可。

在ASE15中提供了四种数据分区的方式:
1、轮循分区(round-robin),是在ASE15之前版本中唯一提供的分区方式。这种方式是在分区上顺序排列数据,没有办法决定数据在分区上的存储位置,并且查询操作会涉及所有的分区。

create table office_table (
office_id char(3) not null,
office_name varchar(30) not null,
address varchar(40) not null,
office_mgr int not null )
partition by roundrobin (
part1 on seg1,
part2 on seg2,
part3 on seg3 )

2、范围分区(Range Partitioning),在ASE15中将被广泛使用的方式。利用这种分区方式,数据库管理员可以通过数据的范围确定数据在分区上的存储位置。

create table customer (
ord_date datetime not null,
name varchar(20) not null,
address varchar(40) not null)
partition by range (ord_date) (
ord_date1 values <= (3/31/05) on segment1,
ord_date2 values <= (6/30/05) on segment2,
ord_date3 values <= (9/30/05) on segment3,
ord_date4 values <= (12/31/05) on segment4)

3、列表分区(List Partitioning),可以将不同的数据分割存放在不同的分区上。

create table customer (
cust_id char(10) not null,
cust_name varchar(30) not null,
state char(2) not null,
phone char(10) not null)
partition by list (state) (
west values (’CA’, ‘OR’) on seg1,
east values (’NY’, ‘NJ’) on seg2)

4、哈希分区(Hash Partitioning)。在这种方式下数据是根据特定的列和内部哈希运算法则来确定数据的存放方式。

create table lineitem (
l_orderkey int not null,
l_partkey char(10) not null,
l_suppkey char(4) not null,
l_linenumber int not null,
l_quantity int not null)
partition by hash (l_orderkey, l_linenumber)(
litem_hash1 on seg1,
litem_hash2 on seg2,
litem_hash3 on seg3)

二、使用ASE15分区的前提条件是什么?
条件1.获得允许使用分区的许可并安装在资产管理器(SYSAM-2_0)中
条件2.用isql等连接ASE中,用如下方式设置允许使用分区

1> sp_configure “enable semantic partitioning”,1
2> go

三、如何修改number of open partitions分区数配置参数?
ASE使用 “number of open partitions” 参数来控制允许最多的分区数,注意该参数配置愈大将占用更多的内存。

1> sp_configure “number of open partitions”,800
2> go

四、初始时如何计算合适的分区数?
在系统闲时,执行如下命令可得到所应该配置的分区数

1> sp_countmetadata “open partitions”
2> go
There are 647 user partitions in all database(s), requiring 617 Kbytes of
memory. The ‘open partitions’ configuration parameter is currently set to 500.

五、使用过程中如何监控分区数是否合适?
在系统高峰时段或大量建表删除表和分区后使用如下命令监控分区数

1> sp_monitorconfig “open partition”
2> go

Name Num_free Num_active Pct_act Max_Used Num_Reuse
————————- ———– ———– ——- ———– ———–
number of open partitions 443 357 44.63 397 0

在“Max_Used”基础上再加10%的开销既是应该配置的合适分区数
397 * 1.1 = 436.7 > 437

1> sp_configure “number of open partitions”,437
2> go

六、如何估计分区数所占用的内存或一定内存所能配置的分区数?

1> sp_helpconfig “number of open partitions”,”1000″
2> go
……
Configuration parameter, ‘number of open partitions’, will consume 953K of memory if configured at 1000.
Changing the value of ‘number of open partitions’ to ‘1000′ increases the amount of memory ASE uses by 474 K.

1> sp_helpconfig “number of open partitions”,”10M”
2> go
……
Configuration parameter, ‘number of open partitions’, can be configured to 10736 to fit in 10M of memory.

七、如何取消分区
如要取消分区,必须先将分区修改为 roundrobin,且在一个段上。

1> alter table lineitem partition by roundrobin (part1)
2> go

其实如此该表就没分区了

然后就可重新分区

1> alter table lineitem partition by hash(l_orderkey)
2> (hash1,hash2,hash3,hash4)
3> go

八、分区注意事项
1.代理表和系统表不能分区
2.“alter table”与“create table”的分区语法相同,可以:
将单个分区修改为多分区
在改变分区类型的同时改变分区的数量
改变键值和边界值
改变分区所在的段
仅有范围(range)和列表(list)分区可以增加分区

注意修改分区类型等时,ASE系统要将表中的数据按照修改后的分区类型重新分配,如果是大表最好在并行方式且数据库的“select into”开关应打开,这样速度快.
3.分区操作要注意:
分区不能删除,但分区的表可“truncate table”和“select into”
取消分区可通过将分区修改为一个roundrobin的分区来实现
分区的键值和边界值要与数据类型兼容。“rang”分区的键值必须是升序且数据类型不能是“BLOB”、“Java”、“bit”和计算列
4.分区与索引
当改变分区策略或分区键,或者将没分区的表分区时均应删除索引
改变分区其它属性时不必删除索引
主键必须是分区的条件,因为主键和分区都会决定数据的物理存放顺序,一个表是不可能有两种数据的物理存放顺序的。如果主键不是分区的条件,一个变通的办法是将主键建为唯一值索引,如:

create table sales
(cust_id char(10) not null,
ord_id char(10) not null,
salesdate date not null,
salespsn int not null)
partition by range (salesdate)
(q1 values <= (’3/31/2005′) on seg1,
q2 values <= (’6/30/2005′) on seg2,
q3 values <= (’9/30/2005′) on seg3,
q4 values <= (MAX) on seg4)

create unique index idx1 on sales(cust_id,ord_id)

九、可以对单个分区做的操作

truncate table sales partition jan
update statistics sales partition feb
update table statistics sales partition mar
delete statistics sales partition apr
reorg forwarded_rows sales partition may
reorg reclaim_space sales partition jun
reorg compact sales partition jul
reorg rebuild sales local_idx partition aug
bcp custdb..sales partition sept, oct, nov out months.dat …
dbcc checktable (sales, null, dec)

浅谈ASE15.0.2 性能优化

2007年8月30日 6 条评论

调整共享内存:
/sbin/sysctl -w kernel.shmmax=3416386150
关于shmmax是最大共享内存段,如果服务器上没有别的应用并且使用raw device可以将此参数调整到物理内存的90%,如果使用file system device 的话相应调小,因为file system buffer需要开销内存!修改后重新启动系统。
数据库的创建
tempdb数据和日志分离:

USE master
Go
DISK INIT name = 'tempdbdev01', physname = '/opt/sybase/data/tempdbdev01.dat' , size = '1G',dsync = 'false'
Go
DISK INIT name = 'tempdblogdev01', physname = '/opt/sybase/data/tempdblogdev01.dat', size = '1G',dsync = 'false'
Go
ALTER DATABASE tempdb ON tempdbdev01 = '1G' LOG ON tempdblogdev01 = '1G'
Go
USE tempdb
Go

删除tempdb上使用的master段:

EXEC sp_dropsegment 'logsegment', 'tempdb', 'master'
go
EXEC sp_dropsegment 'system', 'tempdb', 'master'
go
EXEC sp_dropsegment 'default', 'tempdb', 'master'
Go

如果已针对 tempdb 建立了设备,则只需禁用 dsyncio,但需要重新启动 Adaptive Server:

EXEC sp_deviceattr 'tempdbdev01', 'dsync', 'false'
Go
EXEC sp_deviceattr 'tempdblogdev01', 'dsync','false'
Go

数据库设备最好设置Direct IO,获得的性能相信会让你满意。

Sybase ASE 15.0.2运行中的配置参数及调优
1、内存
sp_configure “max memory”,0,”2600M” (设置为共享内存的75%,重启生效)
sp_configure “allocate max shared mem”,1 (启动的时候自动分配max memory指定的最大内存)
sp_cacheconfig “default data cache”,”1300m”(设置数据缓存为max memory的一半)
sp_cacheconfig “default data cache”,”cache_partition=2″ (在SMP的环境中还有一个问题就是螺旋锁的竞争,当用sp_sysmon观察到资源缓存螺旋锁争夺超过10%时就需要分区。)
sp_poolconfig “default data cache”,”128m”,”16k” (增加一个16K I/O缓存池,解决排序等大IO操作,需要在长期观察后才能使用性能最佳化.)
sp_configure “procedure cache size”,102400 (过程高速缓存,通常是Max mem20%,这里是200M)
sp_cacheconfig ‘tempdb_cache’,'200m’,'mixed’ (创建一个200M命名高速缓存tempdb_cache给temdpb使用)
sp_bindcache ‘tempdb_cache’,tempdb (将tempdb_cache绑定到tempdb)

2、CPU(默认值为1)
当服务器的CPU个数多于一个时,可以考虑多CPU进行并行处理。(并行查询、并行dbcc、并行建立索引、并行bcp)
可根据实际CPU数来修改,若CPU>1时,一般设置为N-1。实际上OS会自动调度。
sp_configure “max online engines”,8
sp_configure “number of engines at startup”,8
sp_configure “number of worker processes”,8 (并行度*并发连接数*1.5倍)
sp_configure “max parallel degree”,1 (允许CPU并行)

3、连接数(默认数为25,可根据应用需要来修改。)
sp_configure “number of user connections”,600

4、锁
sp_configure “number of locks”,100000

6、索引对像
数据库空闲状态下运行:sp_countmetadata “open indexes”
正常运行时运行:sp_monitorconfig “open indexes”
来确定一个最佳值,增加10%左右。
sp_configure “number of open indexes”,2000
sp_configure “number of open objects”,2000
sp_configure “number of open partitions”,1500

还有一个关于OLTP的配置,俺没有试了,有兴趣的可以试一试:
sp_configure “optimization goal”,”allow_oltp”

如何配置ASE来做远程备份

2007年8月3日 没有评论

作者:银铠圣袍
/*如何配置SQL Server来做远程备份,准备条件:实现远程备份,必须有一台远程备份服务器,
可以安装在有空间的pc机上,安装sybase数据库管理系统,启动数据库和备份*/
/*在ASE版本12.5以上测试通过* /

在业务生产机的本地机器上:
1.修改interfaces文件,添加远程机器上Backup Server的条目(Backup Server的名称,地址,端口号)

——Windows平台使用dsedit实用工具添加
——在ini文件中有如下内容
[dbservernameE_BS]
master=NLWNSCK,dbservername,5001
query=NLWNSCK,dbservername,5001

2.在sysservers系统表中添加远程Backup Server名
sp_addserver LOGNZHOUSRVE_BS ,null
go

3.使用sp_helpserver查看至少存在以下3个条目:
——本地ASE名称
——本地Backup Server名称
——远程Backup Server名称
服务器名称 网络名称

dbservername_BS dbservername_BS /*远程Backup Server名称*/
dbservername dbservername /*本地ASE名称*/
dbservername_XP dbservername_XP
SYB_BACKUP dbservername_BS /*本地Backup Server名称*/

4.在本地机器上实现远程备份:
/*为远程备份服务器上的绝对路径文件*/
dump database dbservername to “路径名” at dbservername_BS
go
在本地机器上恢复备份:
load database dbservername to “路径名” at dbservername_BS
go

注:
1.如果要实现远程的双向备份,请在远程机器上做与本地机器相同的配置.
2.本地的Backup Server的名称要求与远程的Backup Server的名称不一样.

[修订版]MASTER被删除时利用数据库设备文件恢复数据

2007年7月30日 没有评论

MASTER被删除时利用数据库设备文件恢复数据这篇文章,当时发表的时候写的比较粗,不够详细,中间可能还有些许的错误,行了(QQ呢称)结合自己的经验写出的完整的处理步骤,相信对SYBASE初学者有帮助.
1、重新建立一个master设备文件*.dat

确保ASE数据库已经关闭
例如:建立50M大小的文件master.dat
12.5(含12.5)以上
UNIX:
dataserver -b50M -d/sybase/data/master.dat
WIN:
sqlsrvr -b50M -dc:\sybase\data\master.dat

12.5版本以下(size in 2K blocks)
UNIX:
buildmaster -d/sybase/data/master.dat -s25600
WIN:
bldmastr -dc:\sybase\data\master.dat -s25600

2、如果需要调整配置数据库的参数,例如调整”number of devices” 参数(*.cfg/ *.ini)
The default value for “number of devices” is 10 on most platforms.

3、特殊方式下启动ASE数据库
编辑文件启动文件,添加选项:
UNIX:
RUN_服务名
-d/sybase/data/master.dat -T3608 -m
WIN:
RUN_服务名.bat
-dc:\sybase\data\master.dat -T3608 -m

在这个特殊的启动参数下,单用户方式启动ASE
UNIX:
startserver -f RUN_服务名
WIN:
RUN_服务名.bat

注意,工作完成后,启动脚本要及时恢复成原来的启动参数。
附录:
-T3608:不回滚master数据库
-T3607:不回滚所有数据库

4、如果觉得第1步master库的尺寸不合适,调整 master 库的大小。向master数据库,追加master设备的空间50M。
alter database master on master = 50

5、执行disk reinit命令恢复sysdevices表的内容,
重新构建 master..sysdevices 数据
重建用户原来的设备
格式:disk reinit name = “device_name”,physname = “物理文件名”,vdevno = x,size = xx
例如:
disk reinit name = “master_log”,physname = “d:\data\master_log.dat”,vdevno = 1,size = 10240
disk reinit name = “data1″,physname = “d:\data\data1.dat”,vdevno = 2,size = 614400
disk reinit name = “log1″,physname = “d:\data\log1.dat”,vdevno = 3,size = 409600
disk reinit name = “temp_db”,physname = “d:\data\temp_db.dat”,vdevno = 4,size = 100M
disk reinit name = “temp_log”,physname = “d:\data\temp_log.dat”,vdevno = 5,size = 200M

6、执行disk refit 命令恢复sysdatabases表和sysusages表的内容
重建用户原来的数据库
disk refit
在disk refit重建系统表后,ASE数据库将自动关闭。

7、编辑启动脚本,恢复正常启动参数。在单用户模式下,再次启动ASE
UNIX:
startserver -m -f RUN_服务名
WIN:
RUN_服务名.bat -m

8、执行installmaster T-SQL脚本和installmodel T-SQL脚本

installmaster
UNIX:
isql –Usa -P –i/sybase/ASE-12_5/scripts/installmaster
WIN:
c:\sybase\ASE-12_5\scripts\instmstr

installmodel
UNIX:
sql –Usa –P –i/sybase/ASE-12_5/scripts/installmodel
WIN:
c:\sybase\ASE-12_5\scripts\instmodl

9、建立需要的登录用户角色
10、shutdown,正常模式下,启动数据库
UNIX:
startserver -f RUN_服务名
WIN:
RUN_服务名.bat