预览模式: 普通 | 列表

极品天使的白靴美女[11P]

蒲公英网络免费空间PHP/ASP/200M/绑米/FTP/平台

蒲公英网络免费空间PHP/ASP/200M/绑米/FTP/平台

官方网站:http://www.pgy.cc
客户论坛:http://bbs.pgy.cc

简介:
蒲公英网络专注于为客户提供高性能,高速度,高服务的主机业务,长期为客户提供了稳定和满意的服务,我们的客户遍布各个领域。典型用户有:华军软件园授权代理商/感恩中国/商务零捌/远景论坛/安兴论坛/“玉米基地”/米吧.中国/等等。

本次重开放免费空间是为了报答用户对我们的长期以来的支持,并让更多人使用我们的空间,了解我们的产品。
出于对目前互联网的整顿及安全考虑,我们这次免费空间的审核将更加严格。

免费空间标准如下:

空间参数...
服务器系统:windows 2003 sp1
控制面板:7i24
空间大小:200M
mysql支持 :20M
IIS连接数:100个
FTP帐号:1个
子目录绑米:1个
支持类型 :html,asp,php,asp.net
相关功能:
自主修改FTP密码;
自主绑定域名;
自主管理mysql,phpmyadmin;
等等等等...


空间申请要求及流程:
1:技术支持论坛,请务必关注,否则任何问题我们不提供在线服务
http://bbs.pgy.cc
栏目:综合交流—用户支持

2:申请网址
http://www.pgy.cc/
栏目:虚拟主机
型号:pgy.cc-free-200

3:开通方法
在主站http://www.pgy.cc/注册一个新用户
提示:注册资料如不真实,我们将无条件删除ID和申请的空间。

在型号为pgy.cc-free-200 后面选择 实时在线开通
提醒:域名在开通后绑定上已经备案的域名,切记,没有备案过的域名不能绑定!

4:相关支持
我们不提供备份服务,网站有自动打包备份功能,请及时自己备份;
善意提醒您不要利用我们提供的空间于非法用途,或者放置一些敏感内容;
我们不提供QQ,EMAIL,电话支持,相关问题请到论坛提出,我们将尽我们最大的努力为大家提供尽可能的技术支持.让大家用得舒心.

金庸的小说一向以丰厚的历史文化底蕴而著称,但是翻译到欧美,他们会是什么反应呢?一位读者发来一篇美国畅销小说评论家阿尔蒂尔对英文版《金庸选集》评论的节选译文,或许能使我们了解美国人眼中的武侠是怎么回事。而且,如此译文,定能叫金庸迷读得前仰后合。———金庸小说不愧是最富娱乐性的文学作品。

  查教授所描写的,越是高级的格斗家,越不重视所使用的兵器是否锋利结实,甚至干
脆放弃使用兵器。事实上,中国的格斗家并不看重通过我们俗常意义上的物理损伤来伤害对手。

  金庸先生是一位学者,确切地说,应称为查教授,但在中国等地一直以其十几部畅销小说闻名。他的小说,专门反映中国举世闻名的格斗术的历史。同西方一样,中国的格斗家使用各种各样的兵器,虽然与西方人所使用的兵器不尽相同。然而,从查教授的小说中可以看出一个重要的不同:当不使用兵器的时候,中国的格斗家主要是用手掌,而不是用拳头。不要以为这只是细节上的不同,事实上这是一个深刻的差别,理解这一点,是我们欣赏这些畅销小说的前提。

  按照现代西方人的理解,越是坚硬和尖锐的东西,越能给人以伤害,因此在格斗当中,拳头比手掌更为优越。采用兵器,也是质地越坚硬、表面越尖锐越好。而查教授所描写的格斗家,不仅在徒手时多采用手掌,并且似乎越是高级的格斗家,越不重视所使用的兵器是否锋利结实,甚至干脆放弃使用兵器。以前从没读过这一类小说的西方读者对此难以理解。事实上,中国的格斗家并不看重通过我们俗常意义上的物理损伤来伤害对手。这涉及到一个中国独有的贯穿于此类小说中的概念:内力。仅从字面上翻译这个词,对于西方读者的理解并没有多大帮助。如果一定要找一个是西方人觉得容易理解的类比,具有同样的神奇效果,并且具有类似的悠久历史,那就是魔法。但他们其实是完全不同的。

  要使内力达到较高的水平,还必须有一些特殊的辅助手段。通常是通过服用特殊的食物(这样的例子实在太多了),或者是采用一些辅助器械(比如功能类似电冰箱的床,但绝不耗电)。

  内力有如下一些特征:

  一、内力的练习通常对练习者的生理状况有一定的要求。这并不是说体弱的人不能够练习,而是一般而言,他们不容易取得比较大的成功。这比较容易理解,因为这毕竟是格斗。但另一方面,较高的智商对于练习内力往往是有帮助的,却并非总是如此。有时智商较低反而更好,比如《射雕英雄传》和《侠客行》中的男主角。对生理状况的要求有时很极端,例如需要进行阉割手术,或者大脑两半球联系障碍(双手互搏)。

  二、通过自修掌握内力的方法是非常困难的,通常要有一位老师传授,但是我们经常会发现,通过学习远古流传下来的经书的效果要比请教当代的老师更好。遗憾的事,这样的经书很难得到,而且通常不会流传很久。一本在一个时代非常著名的经书,到了另外一个时代便无人提起,显然是失传了。然而也有例外,例如出现于宋代的“独孤九剑”到了明代被人重新提起,然而似乎与宋代的大不相同,疑是托名伪作。

  三、要使内力达到较高的水平,还必须有一些特殊的辅助手段。通常是通过服用特殊的食物(这样的例子实在太多了),或者是采用一些辅助器械(比如功能类似电冰箱的床,但绝不耗电)。采用这些手段一般认为是要冒很大风险的,但从实际效果看,极少有失败的例子。

  四、内力像物质或热量那样可以传递,有时甚至可以进行非接触性的传递。这种传递大致可以分为三类,第一是攻击性的,即通过释放内力伤害对手。这就解释了为什么格斗家们喜欢用手掌而不是拳头:因为似乎手掌比拳头更能有效率地释放内力。第二种是赠与性的,通常用于传授、合作性的攻击行为,或者是治疗。因此我们可以理解在这些小说中看到的一个奇怪现象,杀人与救人都是用手掌。第三类是偷窃或夺取性的,将别人的内力据为己有。鉴于内力对格斗家们的重要性,这样的做法比吸血鬼更为严重,因此经常是反面人物的行为,如果正面人物偶尔做了,一定要强调不是故意的,虽然有时心中暗自得意。

  查教授在书中刻意描绘了一只白猿,用以暗示内力在人类的进化过程中一直存在。内力发展的高峰是在宋代,成为错综复杂的系统。但到了明代和清代,渐渐地没落了。

  因此我们在小说中看到的关于格斗家们的历史,其实是关于内力的发展的历史。正像中国的一句俗语所说:士兵像水一样流动,兵营却是铁做的(疑是“铁打的营盘流水的兵”的误用———译者),对内力的描述贯穿查教授小说的始终。下面我们可以对这一历史做一个简要的回顾。

  查教授最早的小说(原文如此,其实是反映历史年代最早的小说———译者),反映的是距今两千多年前的时代,被孔夫子命名为“春秋”。这时的中国已经有了高度发达的文明,但查教授仍然在书中刻意描绘了一只白猿,用以暗示内力在人类的进化过程中一直存在。然而从小说中看来,内力发展的高峰是在宋代,结合了来自印度、波斯、东南亚等地的练习方法,成为错综复杂的系统。但到了明代和清代,渐渐地没落了。看来的确如此,因为现在毕竟不知道还有谁以内力著称于世。宋代早期的一个不十分著名的格斗家(游坦之,与大仲马的铁面人类似)便能够掌握少林寺的《易筋经》,而明代的少林寺僧侣领袖却将其视为珍宝,因为起初不愿意用这本经书救人而被认为小气。在清代,可能是历史上最后一个以内力著称的人(归辛树)被一群远为平庸的格斗家杀死,暗示着内力的衰落。

  这一趋势是从明代格斗家对内力作用的怀疑开始的。这时,有一部分格斗家认为内力并不像人们一直认为的那样重要,他们所练习的格斗技术不要求一定要有内力。如同历史上所有的学术问题一样,争论本是好事,然而不幸的是,强调内力的一方被认为品质低下,最终被杀身亡。斗争的结果似乎证实了内力并非如此重要,但事实上却是因为这一时期没有人将内力练习到较高的水平。但这一成见既然形成,以后的情况便越来越糟。到了清代,虽然有人仍想练习内力,并达到了一定水平,但已经完全无法与宋代比较了。

  在相当长的一段时期内,关于内力和格斗的技巧基本上掌握在一些僧侣手中,包括佛教、道教、伊斯兰教、拜火教等等,许多格斗典籍常常与宗教经书混在一起。

  在清代,一个完全没有内力,只是智商较高,并善于逃脱术的男孩,居然成为全国瞩目的英雄人物,在中国与俄国的对抗中立下大功,并娶了很多妻子。这似乎是那些在历史上拥有许多高深内力的人做梦也想不到的成就。毕竟,世界已经进入智力时代,中国虽然发展较慢,也不可避免。上古和中世纪的浪漫传奇和英雄主义不见了,成了过时的古董。然而这一趋势却与当代的潮流更为接近。所以无怪乎大多数中国读者喜欢《鹿鼎记》,连查教授也认为这是他最好的作品。

  然而,除了格斗本身和格斗家们的事迹之外,这些小说还包含了有关中国历史文化的更多的内容,例如关于宗教。从这些小说中我们可以看出,在相当长的一段时期内,关于内力和格斗的技巧基本上掌握在一些僧侣手中,包括佛教、道教、伊斯兰教、拜火教等等,许多格斗典籍常常与宗教经书混在一起。但这种情形也有变化,到了明代,五个主要的击剑流派之中,倒是有三个与僧侣无关,佛教和道教的僧侣领袖,虽然很有名气,但很少出面,却很乐意在幕后策划,拜火教的领袖也是深居简出,但这时的拜火教已经退化成一个普通团体了,因为没有任何与宗教有关的仪式。

  我下面就将几部主要著作的内容作一简要介绍,以方便读者选择。

  《天龙八部》:探讨了对男女之情的几种看法。

  本书似乎有三个男主人公,他们后来成为朋友。其中的萧看起来是一个禁欲主义者,而段则与他相反,是个好色之徒(但尊重女性),另外一个(虚竹)介于二者之间,心里一直想禁欲,但当美女来到眼前时,又惊又喜最终成了一个国王的女婿,而且是一个女性社团的领袖。他们最终都成了英雄,反映了作者对这一问题所抱有的宽容态度。另外还有许多次要角色,可以看作是他们的变种,例如段的父亲,是一个彻底的好色之徒,最终吃了一些苦头;慕容为了事业完全不在乎男女之情,甚至加以利用,遭到可耻的失败;游坦之由于先天因素和后天的刺激,成了一个受虐狂;少林寺的僧侣领袖后来被人发现有私生子……诸如此类。

  《射雕英雄传》:对人类的智力的作用提出了质疑。

  书中有五个拥有最强内力的人,骄傲地将他们自己封为五个方向的虚拟君主(原文如此)。但在小说结尾,他们惊奇地发现自己并不比一个略为弱智的青年更强。书中一个似乎是拥有罕见美貌和聪明的女子,最终也被这个青年拥有了。更为微妙的是,这五个虚拟君主中的那个西方君主,后来似乎拥有最强大的内力,但他的智力情况却更糟———成了一个严重的失忆症患者。

  《神雕侠侣》:从一个侧面反映了蒙古兴起之初的畜牧业状况。

  书中有一个孤独的少女,是一位养蜂专家,但看来这个行业在当时实在不受重视,她惟一的学生———后来成了她的丈夫———并没有学会这门技艺,而是成了一个养雕专家,并因此一举成名。最后这门技艺只好传给了一个无所事事且极富孩子气的百岁老人。当然,他们都是很高级的格斗家,特别是其中的养雕专家后来可以通过吼声指挥许多动物,但其中唯独没有蜜蜂。他的妻子曾经想通过蜜蜂向他传递消息,但他视若无睹。

  《笑傲江湖》:反映了中国古代同性恋者的悲惨遭遇。

  第一个同性恋者为了保护他的同性恋对象而被杀死。另外两个更加可怜,因为还没有找到同性恋的对象,但作者强烈暗示,他们最终将发展成为与第一位同性恋者一样的人,也就是说,他们最终将成为同性恋这是毫无疑问的。这三个人有一个共同特征,即都是自愿通过外科手术放弃男性特征的,但是其中的东方在完成之后几乎放弃了他的事业,而岳和林则认为这才是他们事业的开端。他们在这部小说中并不是惟一进行了这种外科手术的人,还有一个刀手田,后来改名为不可,但他的情况有所不同,他的手术是被人强迫完成的,因此得到了大家的宽容,没遭到另外那三个人的厄运,但他日后是否会成为同性恋者则不得而知。另外值得注意的是,书中强烈主张内力的岳,后来成了伪君子的代名词。但在书中,他除了暗杀了两位女性佛教僧侣领袖之外,对别人的危害并不严重;而且这次暗杀并不符合他的目标,因为在后来五派合并的时候,如果一定要选出一位领袖,这两位女性一定会选择他而不是另外一个人。

  《碧血剑》:书中的主人公是内力没落之前的最后代表人物。

  内力的没落首先表现为精神上的没落,袁本来是一个英雄的儿子,但这一点在他身上看不到一点痕迹,他从小在一个与世隔绝的环境中长大,对现实一无所知。在离开了他学习的山区之后,显得有些无所适从。一个明显的证据是,他娶了下山之后认识的第一个女子为妻。一开始,他像一个孩子一样模仿周围的人,比如将自己打扮成一个青年学生,虽然他从未正式上过学。他的行为受到从小接受的道德教育的约束,但内心却被一个已经过世的狂放男子的事迹所吸引,后来知道这个人刚好是他的岳父,这或许平衡了他由于仓促订婚所产生的失落心情。然而这种情绪的摇摆使他一事无成,最终流亡海外,直至清代,他的同学归辛树被杀死的时候也没有一点消息

转:芙蓉姐姐得到一面魔镜……


.有人送芙蓉姐姐一面魔镜,芙蓉姐姐非常开心,马上来到魔镜面前。
  芙蓉姐姐:魔镜魔镜告诉我,谁是这个世界上最美丽的女人?
  魔镜:反正不是你~
  芙蓉姐姐:那世界上还有谁比我更漂亮?
  魔镜:贞子,赵本山,爱因斯坦,张飞……
  芙蓉姐姐生气了,把魔镜胖揍一顿。

  芙蓉姐姐:魔镜魔镜告诉我,谁是这个世界上最美丽的女人?
  魔镜:应该就是你~
  芙蓉姐姐:那世界上谁是第二漂亮的女人?
  魔镜:贞子,赵本山,爱因斯坦,张飞……
  芙蓉姐姐又生气了,把魔镜又胖揍一顿。

  芙蓉姐姐:魔镜魔镜告诉我,我这张妖媚性感的脸什么时候最耐看?
  魔镜“啪”的一声变成天文望远镜:啥也看不清的时候最好看!
  芙蓉姐姐:魔镜魔镜告诉我,我这身冰清玉洁的身材什么时候最有气质?
  魔镜“啪”的一声变成哈哈镜:身材变形的时候最有气质!
  芙蓉姐姐:魔镜魔镜告诉我,我全身哪个部位能火爆的让男人流鼻血?
  魔镜:拳头!
  芙蓉姐姐太生气了,把魔镜再胖揍一顿!

  芙蓉姐姐:你到底是不是魔镜啊,冒牌的吧?
  魔镜:我本来是魔镜,可被你照了几天后,我已经变成照妖镜了!(五色土)

ASP--八种方法防止数据库被下载


1:发挥你的想象力 修改数据库文件名
  这个是最基本的。我想现在也没有多少连数据库文件名都懒得改的人吧? 至于改成什么,你自己看着办,至少要保证文件名复杂,不可猜测性。当然这个时候你的数据库所在目录是不能开放目录浏览权限的!

  2:数据库名后缀改为ASA、ASP等
  这个听说很流行,不过我测试了好多次,发现并不理想,如果真正要起到防止下载的作用,要进行一些2进制字段添加等设置,---一句话,繁而复杂(如果你的数据库有很多的话,这个方法实在不是很好)

  3:数据库名前加“#”
  只需要把数据库文件前名加上#、然后修改数据库连接文件(如conn.asp)中的数据库地址。原理是下载的时候只能识别 #号前名的部分,对于后面的自动去掉,比如你要下载:http://www.pcdigest.com/date/#123.mdb(假设存在的话)。无论是IE还是FLASHGET等下到的都是http://www.pcdigest.com/date/index.htm(index.asp、default.jsp等你在IIS设置的首页文档)
  另外在数据库文件名中保留一些空格也起到类似作用,由于HTTP协议对地址解析的特殊性,空格会被编码为"%",如http://www.pcdigest.com/date/123 ;456.mdb,下载的时http://www.pcdigest.com/date/123%456.mdb。而我们的目录就根本没有123%456.mdb这个文件,所以下载也是无效的这样的修改后,即使你暴露了数据库地址,一般情况下别人也是无法下载!

  4:加密数据库
  用ACCESS将你的数据库以独占方式打开后,在工具-安全-设置数据库密码,加密后要修改数据库连接页, 如:
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq=数据库路径"
  这样修改后,数据库即使被人下载了,别人也无法打开(前提是你的数据库连接页中的密码没有被泄露)
  但值得注意的是,由于Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行“异或”来形成一个加密串,并将其存储在*.mdb文件从地址“&H42”开始的区域内。所以一个好的程序员可以轻松制作一个几十行的小程序就可以轻松地获得任何Access数据库的密码。因此,只要数据库被下载,其信息安全依然是个未知数。


  二:有主机控制权 (当然虚拟空间的设置在这里依然可以用)

  5:数据库放在WEB目录外
  如你的WEB目录是e:webroot,可以把数据库放到e:data这个文件夹里,在e:webroot里的数据库连接页中修改数据库连接地址为:"../data/数据库名" 的形式,这样数据库可以正常调用,但是无法下载的,因为它不在WEB目录里!这个方法一般也不适合购买虚拟空间的用户。

  6:使用ODBC数据源 
  在ASP等程序设计中,如果有条件,应尽量使用ODBC数据源,不要把数据库名写在程序中,否则,数据库名将随ASP源代码的失密而一同失密,例如: DBPath = Server.MapPath(“../123/abc/asfadf.mdb ”)
conn.open “driver={Microsoft Access Driver (*.mdb)};dbq=”& DBPath
  可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密后,也很容易被下载下来。如果使用ODBC数据源,就不会存在这样的问题了: conn.open “ODBC-DSN名” ,不过这样是比较烦的,目录移动的话又要重新设置数据源了,更方便的方法请看第7,8法!

  7:添加数据库名的如MDB的扩展映射
  这个方法就是通过修改IIS设置来实现,适合有IIS控制权的朋友,不适合购买虚拟主机用户(除非管理员已经设置了)。这个方法我认为是目前最好的。只要修改一处,整个站点的数据库都可以防止被下载。无须修改代码即使暴露目标地址也可以防止下载。

  我们在 IIS属性---主目录---配置---映射---应用程序扩展那里添加.mdb文件的应用解析。注意这里的选择的DLL(或EXE等)似乎也不是任意的,选择不当,这个MDB文件还是可以被下载的, 注意最好不要选择选择asp.dll等。你可以自己多测试下
  这样修改后下载数据库如:http://192.168.1.5/HaoBbs/data/dvbbs6.mdb。就出现(404或500等错误)

  8:使用.net的优越性
  动网的木鸟就写过一个防非法下载文件的“WBAL 防盗链工具”。具体可以登陆http://www.9seek.com/WBAL/ ;
  不过 那个只实现了防止非本地下载的 ,没有起到真正的防下载数据库的功能。不过这个方法已经跟5法差不多可以通过修改.NET文件,实现本地也不能下载!

  这几个方法中,只有第7和8个是统一性改的,一次修改配置后,整个站点的数据库都可以防止下载,其他几个就要分别修改数据库名和连接文件,比较麻烦,不过对于虚拟主机的朋友也只能这样了!

  其实第6个方法应该是第5个方法的扩展,可以实现特殊的功能,但对于不支持.net的主机或者怕设置麻烦的话,还是直接用第5个方法了,而且默认情况下第6个方法,依然可以通过复制连接到同主机的论坛或留言本发表,然后就可以点击下载了(因为这样的引用页是来自同主机的)

  这几个方法各有长短,请自己选择性地使用。这些方法也不是绝对的安全,还需要网站管理员平时注意一些系统的安全,以及写ASP/ASP.NET/JSP代码本身的安全 ,否则依然是有可能被人下载或者修改数据库的!

推荐:CC的思路及防范方法

前置知识:ASP基本阅读能力

蝴蝶:前段时间上海一家游戏娱乐公司的网站遭到了基于页面请求的DDOS分布式拒绝服务攻击,网站陷入完全瘫痪状态,并被黑客的匿名信勒索,金额高达10万元,而在勒索过程中,这群黑客还表示会对腾讯QQ等网站下手,随后QQ“服务器维护”几天。12月5号的时候,全球BitTorrent服务器也受到了很强烈的DDOS攻击,一度陷入瘫痪。而DDOS攻击中最流行的也是威力最大的就是基于页面的DDOS以及将这个攻击理论发挥得淋漓尽致的攻击工具CC,本文特邀CC作者和我们共同了解CC的相关攻击原理和防范方法,希望能让更多的朋友了解这样的攻击方式并能防范它。


我写CC的思路及防范方法

文/ kiki

很多朋友都知道木桶理论,一桶水的最大容量不是由它最高的地方决定的,而是由它最低的地方决定,服务器也是一样,服务器的安全性也是由它最脆弱的地方决定的,最脆弱的地方有多危险服务器就有多危险。DDOS也是一样,只要你的服务器存在一个很耗资源的地方,限制又不够,就马上成为别人DDOS的对象。比如SYN-FLOOD,它就是利用服务器的半连接状态比完全连接状态更耗资源,而SYN发动方只需要不停的发包,根本不需要多少资源。

一个好的DDOS攻击必须是通过自己极少资源的消耗带来对方较大的资源消耗,否则比如ICMP-FLOOD和UDP-FLOOD都必须和别人一样大的带宽,对方服务器消耗多少资源自己也得赔上多少资源,效率极其低下,又很容易被人发现,现在基本没有什么人用了。

攻击原理

CC主要是用来攻击页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观,现在知道为什么很多空间服务商都说大家不要上传论坛,聊天室等东西了吧。

一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。

CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。很多朋友问到,为什么要使用代理呢?因为代理可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。

使用代理攻击还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接(我知道的记录是有人利用2000个代理产生了35万并发连接)。

可能很多朋友还不能很好的理解,我来描述一下吧。我们假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过1分钟,服务器的被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理。有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!还早,经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态。

蝴蝶:我们假设服务器处理Search只用了0.01S,也就是10毫秒(这个速度你可以去各个有开放时间显示的论坛看看),我们使用的线程也只有120,很多服务器的丢连接时间远比60S长,我们的使用线程远比120多,可以想象可怕了吧,而且客户机只要发送了断开,连接的保持是代理做的,而且当服务器收到SQL请求,肯定会进入队列,不论连接是否已经断开,而且服务器是并发的,不是顺序执行,这样使得更多的请求进入内存请求,对服务器负担更大。

当然,CC也可以利用这里方法对FTP进行攻击,也可以实现TCP-FLOOD,这些都是经过测试有效的。

防范方法

说了攻击原理,大家肯定会问,那么怎么防御?使用硬件防火墙我不知道如何防范,除非你完全屏蔽页面访问,我的方法是通过页面的编写实现防御。

1. 使用Cookie认证。这时候朋友说CC里面也允许Cookie,但是这里的Cookie是所有连接都使用的,所以启用IP+Cookie认证就可以了。

2. 利用Session。这个判断比Cookie更加方便,不光可以IP认证,还可以防刷新模式,在页面里判断刷新,是刷新就不让它访问,没有刷新符号给它刷新符号。给些示范代码吧,Session:

<%if session(“refresh”)<> 1 then
Session(“refresh”)=session(“refresh”)+1
Response.redirect “index.asp”
End if
%>

这样用户第一次访问会使得Refresh=1,第二次访问,正常,第三次,不让他访问了,认为是刷新,可以加上一个时间参数,让多少时间允许访问,这样就限制了耗时间的页面的访问,对正常客户几乎没有什么影响。

3. 通过代理发送的HTTP_X_FORWARDED_FOR变量来判断使用代理攻击机器的真实IP,这招完全可以找到发动攻击的人,当然,不是所有的代理服务器都发送,但是有很多代理都发送这个参数。详细代码:

<%
Dim fsoObject
Dim tsObject
dim file
if Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" then
response.write "无代理访问"
response.end
end if
Set fsoObject = Server.CreateObject("Scripting.FileSystemObject")
file = server.mappath("CCLog.txt")
if not fsoObject.fileexists(file) then
fsoObject.createtextfile file,true,false
end if
set tsObject = fsoObject.OpenTextFile(file,8)
tsObject.Writeline Request.ServerVariables("HTTP_X_FORWARDED_FOR")&"["&Request.ServerVariables("REMOTE_ADDR")&"]"&now()
Set fsoObject = Nothing
Set tsObject = Nothing
response.write "有代理访问"
%>

这样会生成CCLog.txt,它的记录格式是:真实IP [代理的IP] 时间,看看哪个真实IP出现的次数多,就知道是谁在攻击了。将这个代码做成Conn.asp文件,替代那些连接数据库的文件,这样所有的数据库请求就连接到这个文件上,然后马上就能发现攻击的人。

4. 还有一个方法就是把需要对数据查询的语句做在Redirect后面,让对方必须先访问一个判断页面,然后Redirect过去。

5. 在存在多站的服务器上,严格限制每一个站允许的IP连接数和CPU使用时间,这是一个很有效的方法。

CC的防御要从代码做起,其实一个好的页面代码都应该注意这些东西,还有SQL注入,不光是一个入侵工具,更是一个DDOS缺口,大家都应该在代码中注意。举个例子吧,某服务器,开动了5000线的CC攻击,没有一点反应,因为它所有的访问数据库请求都必须一个随机参数在Session里面,全是静态页面,没有效果。突然发现它有一个请求会和外面的服务器联系获得,需要较长的时间,而且没有什么认证,开800线攻击,服务器马上满负荷了。


代码层的防御需要从点点滴滴做起,一个脚本代码的错误,可能带来的是整个站的影响,甚至是整个服务器的影响,慎之!
我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看“任务管理器”才发现CPU占用达到100%。这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在本文中笔者将从硬件,软件和病毒三个方面来讲解系统资源占用率为什么会达到100%。

  经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面:
  CPU占用率高的九种可能
  1、防杀毒软件造成故障


  由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。


  2、驱动没有经过认证,造成CPU资源占用100%


  大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。


  3、病毒、木马造成


  大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和_blank">防火墙,加强防毒意识,掌握正确的防杀毒知识。


  4、控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。


  5、开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。


  6、查看“svchost”进程。


  svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。


  7、查看网络连接。主要是网卡。


  8、查看网络连接


  当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。


  要解决此问题,我们可以通过修改注册表来解决:在注册表编辑器中依次展开[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出:


  如果计算机有512MB以上的内存,键入“1024”;如果计算机内存小于512 MB,键入“256”。


  9、看看是不是Windows XP使用鼠标右键引起CPU占用100%


  前不久的报到说在资源管理器里面使用鼠标右键会导致CPU资源100%占用,我们来看看是怎么回事?


  征兆:


  在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题:


  任何文件的拷贝操作在那个时间将有可能停止相应

  网络连接速度将显著性的降低

  所有的流输入/输出操作例如使用Windows Media Player听音乐将有可能是音乐失真成因:

  当你在资源管理器里面右键点击一个文件或目录的时候,当快捷菜单显示的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。


  解决方法:


  方法一:关闭“为菜单和工具提示使用过渡效果”


  1、点击“开始”--“控制面板”

  2、在“控制面板”里面双击“显示”

  3、在“显示”属性里面点击“外观”标签页

  4、在“外观”标签页里面点击“效果”


  5、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。


  方法二:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠标右键弹出快捷菜单。


  CPU占用100%解决办法


  一般情况下CPU占了100%的话我们的电脑总会慢下来,而很多时候我们是可以通过做一点点的改动就可以解决,而不必问那些大虾了。


  当机器慢下来的时候,首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较搞的比例,如果是某个大程序那还可以原谅,在关闭该程序后只要CPU正常了那就没问题;如果不是,那你就要看看是什幺程序了,当你查不出这个进程是什幺的时候就去google或者baidu搜。有时只结束是没用的,在xp下我们可以结合msconfig里的启动项,把一些不用的项给关掉。在2000下可以去下个winpatrol来用。


  一些常用的软件,比如浏览器占用了很搞的CPU,那幺就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点不兼容,当然我们可以试下xp系统下给我们的那个兼容项,右键点该.exe文件选兼容性。


  svchost.exe有时是比较头痛的,当你看到你的某个svchost.exe占用很大CPU时你可以去下个aports或者fport来检查其对应的程序路径,也就是什幺东西在掉用这个svchost.exe,如果不是c:Windowssystem32(xp)或c:winntsystem32(2000)下的,那就可疑。升级杀毒软件杀毒吧。


  右击文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了。官方的解释:先点左键选中,再右键(不是很理解)。非官方:通过在桌面点右键-属性-外观-效果,取消”为菜单和工具提示使用下列过度效果(U)“来解决。还有某些杀毒软件对文件的监控也会有所影响,可以关闭杀毒软件的文件监控;还有就是对网页,插件,邮件的监控也是同样的道理。


  一些驱动程序有时也可能出现这样的现象,最好是选择微软认证的或者是官方发布的驱动来装,有时可以适当的升级驱动,不过记得最新的不是最好的。


  CPU降温软件,由于软件在运行时会利用所以的CPU空闲时间来进行降温,但Windows不能分辨普通的CPU占用和降温软件的降温指令之间的区别,因此CPU始终显示100%,这个就不必担心了,不影响正常的系统运行。


  在处理较大的word文件时由于word的拼写和语法检查会使得CPU累,只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉。


  单击avi视频文件后CPU占用率高是因为系统要先扫描该文件,并检查文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索,允许索引服务编制该文件夹的索引的勾。


  CPU占用100%案例分析


  1、dllhost进程造成CPU使用率占用100%


  特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。


  直接原因:


  有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其它线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。


  解决办法:


  安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件,


  启用”查找死锁模块”,设置:


  --wblock=yes

  监控的目录,请指定您的主机的文件所在目录:

  --wblockdir=d: est


  监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm


  停止IIS,再启动“首席文件检查官IIS健康检查官”,再启动IIS,“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。


  过了一段时间后,当问题出来时,例如CPU会再次一直处100%的水平,可以停止IIS,检查logblock.htm所记录的最后的十个文件,注意,最有问题的往往是计数器类的ACCESS文件,例如:”**COUNT.MDB”,”**COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动IIS,看看问题是否再次出现。我们相信,经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的。


  找到这个文件后,可以删除它,或下载下来,用ACCESS2000修复它,问题就解决了。


  2、svchost.exe造成CPU使用率占用100%


  在win.ini文件中,在[Windows]下面,“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们。一般情况下,它们的等号后面什幺都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如“AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。


  在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。


  在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun”下的Explorer 键值改为Explorer=“C:Window***piorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USERSoftwareMicrosoftWindowsCurrentVersionRun”、“HKEY-USERS****SoftwareMicrosoftWindowsCurrentVersionRun”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”下找到“木马该病毒也称为“Code Red II(红色代码2)”病毒,与早先在西方英文系统下流行“红色代码”病毒有点相反,在国际上被称为VirtualRoot(虚拟目录)病毒。该蠕虫病毒利用Microsoft已知的溢出漏洞,通过80端口来传播到其它的Web页服务器上。受感染的机器可由黑客们通过Http Get的请求运行scripts/root.exe来获得对受感染机器的完全控制权。


  当感染一台服务器成功了以后,如果受感染的机器是中文的系统后,该程序会休眠2天,别的机器休眠1天。当休眠的时间到了以后,该蠕虫程序会使得机器重新启动。该蠕虫也会检查机器的月份是否是10月或者年份是否是2002年,如果是,受感染的服务器也会重新启动。当Windows NT系统启动时,NT系统会自动搜索C盘根目录下的文件explorer.exe,受该网络蠕虫程序感染的服务器上的文件explorer.exe也就是该网络蠕虫程序本身。该文件的大小是8192字节,VirtualRoot网络蠕虫程序就是通过该程序来执行的。同时,VirtualRoot网络蠕虫程序还将cmd.exe的文件从Windows NT的system目录拷贝到别的目录,给黑客的入侵敞开了大门。它还会修改系统的注册表项目,通过该注册表项目的修改,该蠕虫程序可以建立虚拟的目录C或者D,病毒名由此而来。值得一提的是,该网络蠕虫程序除了文件explorer.exe外,其余的操作不是基于文件的,而是直接在内存中来进行感染、传播的,这就给捕捉带来了较大难度。


  ”程序的文件名,再在整个注册表中搜索即可。


  我们先看看微软是怎样描述svchost.exe的。在微软知识库314056中对svchost.exe有如下描述:svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。


  其实svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个svchost.exe不用那幺担心。


  svchost.exe到底是做什幺用的呢?


  首先我们要了解一点那就是Windows系统的中的进程分为:独立进程和共享进程这两种。由于Windows系统中的服务越来越多,为了节约有限的系统资源微软把很多的系统服务做成了共享模式。那svchost.exe在这中间是担任怎样一个角色呢?


  svchost.exe的工作就是作为这些服务的宿主,即由svchost.exe来启动这些服务。svchost.exe只是负责为这些服务提供启动的条件,其自身并不能实现任何服务的功能,也不能为用户提供任何服务。svchost.exe通过为这些系统服务调用动态链接库(DLL)的方式来启动系统服务。


  svchost.exe是病毒这种说法是任何产生的呢?


  因为svchost.exe可以作为服务的宿主来启动服务,所以病毒、木马的编写者也挖空心思的要利用svchost.exe的这个特性来迷惑用户达到入侵、破坏计算机的目的。


  如何才能辨别哪些是正常的svchost.exe进程,而哪些是病毒进程呢?


  svchost.exe的键值是在“HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionSvchost”,如图1所示。图1中每个键值表示一个独立的svchost.exe组。


  微软还为我们提供了一种察看系统正在运行在svchost.exe列表中的服务的方法。以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist /svc。系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表。如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染,svchost.exe的服务出现异常的话通过搜索svchost.exe文件就可以发现异常情况。一般只会找到一个在:“C:WindowsSystem32”目录下的svchost.exe程序。如果你在其它目录下发现svchost.exe程序的话,那很可能就是中毒了。


  还有一种确认svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。


  上面简单的介绍了svchost.exe进程的相关情况。总而言之,svchost.exe是一个系统的核心进程,并不是病毒进程。但由于svchost.exe进程的特殊性,所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可以确认是否中毒。
3、Services.exe造成CPU使用率占用100%


  症状


  在基于 Windows 2000 的计算机上,Services.exe 中的 CPU 使用率可能间歇性地达到100 %,并且计算机可能停止响应(挂起)。出现此问题时,连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接。您可能还需要重新启动计算机。如果 Esent.dll 错误地处理将文件刷新到磁盘的方式,则会出现此症状。


  解决方案


  Service Pack 信息


  要解决此问题,请获取最新的 Microsoft Windows 2000 Service Pack。有关其它信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:


  260910 如何获取最新的 Windows 2000 Service Pack


  修复程序信息


  Microsoft 提供了受支持的修补程序,但该程序只是为了解决本文所介绍的问题。只有计算机遇到本文提到的特定问题时才可应用此修补程序。此修补程序可能还会接受其它一些测试。因此,如果这个问题没有对您造成严重的影响,Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack。


  要立即解决此问题,请与“Microsoft 产品支持服务”联系,以获取此修补程序。有关“Microsoft 产品支持服务”电话号码和支持费用信息的完整列表,请访问 Microsoft Web 站点:


  注意 :特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新程序能够解决您的问题,可免收通常情况下收取的电话支持服务费用。对于特定更新程序无法解决的其它支持问题和事项,将正常收取支持费用。


  下表列出了此修补程序的全球版本的文件属性(或更新的属性)。这些文件的日期和时间按协调通用时间 (UTC) 列出。查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中的“日期和时间”工具中的 时区 选项卡。


  状态


  Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。此问题最初是在 Microsoft Windows 2000 Service Pack 4 中更正的。


  4、正常软件造成CPU使用率占用100%


  首先,如果是从开机后就发生上述情况直到关机。那幺就有可能是由某个随系统同时登陆的软件造成的。可以通过运行输入“msconfig”打开“系统实用配置工具”,进入“启动”选项卡。接着,依次取消可疑选项前面的对钩,然后重新启动电脑。反复测试直到找到造成故障的软件。或者可以通过一些优化软件如“优化大师”达到上述目的。另:如果键盘内按键卡住也可能造成开机就出现上述问题。


  如果是使用电脑途中出项这类问题,可以调出任务管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),进入”进程“选项卡,看”CPU“栏,从里面找到占用资源较高的程序(其中SYSTEM IDLE PROCESS是属于正常,它的值一般都很高,它的作用是告诉当前你可用的CPU资源是多少,所以它的值越高越好)通过搜索功能找到这个进程属于哪个软件。然后,可以通过升级、关闭、卸载这个软件或者干脆找个同类软件替换,问题即可得到解决。


  5、病毒、木马、间谍软件造成CPU使用率占用100%


  出现CPU占用率100% 的故障经常是因为病毒木马造成的,比如震荡波病毒。应该首先更新病毒库,对电脑进行全机扫描 。接着,在使用反间谍软件Ad—Aware,检查是否存在间谍软件。论坛上有不少朋友都遇到过svchost.exe占用CPU100%,这个往往是中毒的表现。


  svchost.exe Windows中的系统服务是以动态链接库(DLL)的形式实现的,其中一些会把可执行程序指向svchost.exe,由它调用相应服务的动态链接库并加上相应参数来启动服务。正是因为它的特殊性和重要性,使它更容易成为了一些病毒木马的宿主。


  6、explorer.exe进程造成CPU使用率占用100%


  在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。


  在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun”下的


  Explorer 键值改为Explorer=“C:Window***piorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USERSoftwareMicrosoftWindowsCurrentVersionRun”、“HKEY-USERS****SoftwareMicrosoftWindowsCurrentVersionRun”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”下找到“木马”程序的文件名,再在整个注册表中搜索即可。


  7、超线程导致CPU使用率占用100%


  这类故障的共同原因就是都使用了具有超线程功能的P4 CPU。我查找了一些资料都没有明确的原因解释。据一些网友总结超线程似乎和天网_blank">防火墙有冲突,可以通过卸载天网并安装其它_blank">防火墙解决,也可以通过在BIOS中关闭超线程功能解决。


  8、AVI视频文件造成CPU使用率占用100%


  在Windows XP中,单击一个较大的AVI视频文件后,可能会出现系统假死现象,并且造成exploere.exe进程的使用率100%,这是因为系统要先扫描该文件,并检查文件所有部分,建立索引。如果文件较大就会需要较长时间并造成CPU占用率100%。解决方法:右键单击保存视频文件的文件夹,选择”属性—>常规—>高级“,去掉”为了快速搜索,允许索引服务编制该文件夹的索引“前面复选框的对钩即可。


  9、杀毒软件CPU使用率占用100%


  现在的杀毒软件一般都加入了,对网页、邮件、个人隐私的即时监空功能,这样无疑会加大系统的负担。比如:在玩游戏的时候,会非常缓慢。关闭该杀毒软件是解决得最直接办法。


  10、处理较大的Word文件时CPU使用率过高


  上述问题一般还会造成电脑假死,这些都是因为WORD的拼写和语法检查造成的,只要打开WORD的“工具—选项”,进入“拼写和语法”选项卡,将其中的“键入时检查拼写”和“键入时检查语法”两项前面的复选框中的钩去掉即可。
11、网络连接导致CPU使用率占用100%


  当你的Windows2000/xp作为服务器时,收到来自端口445上的连接请求后,系统将分配内存和少量CPU资源来为这些连接提供服务,当负荷过重,就会出现上述情况。要解决这个问题可以通过修改注册表来解决,打开注册表,找到HKEY—LOCAL—MACHNESYSTEMCurrentControlSetServiceslanmanserver,在右面新建一个名为";maxworkitems";的DWORD值.然后双击该值,如果你的电脑有512以上内存,就设置为";1024";,如果小于512,就设置为256.


  一些不完善的驱动程序也可以造成CPU使用率过高


  经常使用待机功能,也会造成系统自动关闭硬盘DMA模式。这不仅会使系统性能大幅度下降,系统启动速度变慢,也会使是系统在运行一些大型软件和游戏时CPU使用率100%,产生停顿。


  进程占用CPU 100%时可能中的病毒


  system Idle Process


  进程文件: [system process] or [system process]


  进程名称: Windows内存处理系统进程


  描 述: Windows页面内存管理进程,拥有0级优先。


  介 绍:该进程作为单线程运行在每个处理器上,并在系统不处理其它线程的时候分派处理器的时间。它的CPU占用率越大表示可供分配的CPU资源越多,数字越小则表示CPU资源紧张。


  Spoolsv.exe


  进程文件: spoolsv or Spoolsv.exe


  进程名称: Printer Spooler Service


  描 述: Windows打印任务控制程序,用以打印机就绪。


  介 绍:缓冲(spooler)服务是管理缓冲池中的打印和传真作业。


  Spoolsv.exe→打印任务控制程序,一般会先加载以供列表机打印前的准备工作


  Spoolsv.exe,如果常增高,有可能是病毒感染所致


  目前常见的是:


  Backdoor/Byshell(又叫隐形大盗、隐形杀手、西门庆病毒)


  危害程度:中


  受影响的系统: Windows 2000, Windows XP, Windows Server 2003


  未受影响的系统: Windows 95, Windows 98, Windows Me, Windows NT, Windows 3.x, Macintosh, Unix, Linux,


  病毒危害:


  1. 生成病毒文件


  2. 插入正常系统文件中


  3. 修改系统注册表


  4. 可被黑客远程控制


  5. 躲避反病毒软件的查杀


  简单的后门木马,发作会删除自身程序,但将自身程序套入可执行程序内(如:exe),并与计算机的通口(TCP端口138)挂钩,监控计算机的信息、密码,甚至是键盘操作,作为回传的信息,并不时驱动端口,以等候传进的命令,由于该木马不能判别何者是正确的端口,所以负责输出的列表机也是其驱动对象,以致Spoolsv.exe的使用异常频繁......


  Backdoor.Win32.Plutor


  破坏方法:感染PE文件的后门程序


  病毒采用VC编写。


  病毒运行后有以下行为:


  1、将病毒文件复制到%WINDIR%目录下,文件名为";Spoolsv.exe";,并该病毒文件运行。";Spoolsv.exe";文件运行后释放文件名为";mscheck.exe";的文件到%SYSDIR%目录下,该文件的主要功能是每次激活时运行";Spoolsv.exe";文件。如果所运行的文件是感染了正常文件的病毒文件,病毒将会把该文件恢复并将其运行。


  2、修改注册表以下键值:


  HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentversionRun


  增加数据项:";Microsoft Script Checker"; 数据为:";MSCHECK.EXE /START";


  修改该项注册表使";MSCHECK.EXE";文件每次系统激活时都将被运行,而";MSCHECK.EXE";用于运行";Spoolsv.exe";文件,从而达到病毒自激活的目的。


  3、创建一个线程用于感染C盘下的PE文件,但是文件路径中包含";winnt";、";Windows";字符串的文件不感染。另外,该病毒还会枚举局域网中的共享目录并试图对这些目录下的文件进行感染。该病毒感染文件方法比较简单,将正常文件的前0x16000个字节替换为病毒文件中的数据,并将原来0x16000个字节的数据插入所感染的文件尾部。


  4、试图与局域网内名为";admin";的邮槽联系,创建名为";client";的邮槽用于接收其控制端所发送的命令,为其控制端提供以下远程控制服务:


  显示或隐藏指定窗口、屏幕截取、控制CDROM、关闭计算器、注销、破坏硬盘数据。


  那些病毒会造成CPU占有率过高


  震荡波蠕虫


  利用微软操作系统的LSASS缓冲区溢出漏洞进行远程主动攻击和传染,导致系统异常和网络严重拥塞,具有极强的危害性,病毒如果攻击成功,则会占用大量系统资源,使CPU占用率达到100%,出现电脑运行异常缓慢的现象。


  如果中了这种病毒可采用下面的四种方法进行清除。


  1、断网打补丁


  如果不给系统打上相应的漏洞补丁,则连网后依然会遭受到该病毒的攻击,用户应该先下载相应的漏洞补丁程序,然后断开网络,运行补丁程序,当补丁安装完成后再上网。


  2、清除内存中的病毒进程


  要想彻底清除该病毒,应该先清除内存中的病毒进程,用户可以按CTRL+SHIFT+ESC三或者右键单击任务栏,在弹出菜单中选择“任务管理器”打开任务管理器界面,然后在内存中查找名为“avserve.exe”的进程,找到后直接将它结束。


  3、删除病毒文件


  病毒感染系统时会在系统安装目录(默认为C:WINNT)下产生一个名为avserve.exe的病毒文件,并在系统目录下(默认为C:WINNTSystem32)生成一些名为<;随机字符串>;_UP.exe的病毒文件,用户可以查找这些文件,找到后删除,如果系统提示删除文件失败,则用户需要到安全模式下或DOS系统下删除这些文件。


  4、删除注册表键值


  该病毒会在电脑注册表的HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentversionRun项中建立名为“avserve.exe”,内容为:“%Windows%avserve.exe”的病毒键值,为了防止病毒下次系统启动时自动运行,用户应该将该键值删除,方法是在“运行”菜单中键入“REGEDIT” 然后调出注册表编辑器,找到该病毒键值,然后直接删除。


  bride病毒


  此病毒可以在Windows 2000、Windows XP等操作系统环境下正常运行,病毒运行时会释放出一个FUNLOVE病毒并将之执行,而FUNLOVE病毒会在计算机中大量繁殖,造成系统变慢,网络阻塞。


  病毒清除方法


  此病毒可以用趋势、诺顿、瑞星、金山和江民等杀毒软件进行清除。


  小知识:系统进程


  一款好的_blank">防火墙并不能发现所有病毒;一个好的杀毒软件并不能歼灭所有的带毒程序!遇到这些情况我们该做何处理呢?很简单——手工杀毒。而要论到手工杀毒,就不能不提到系统进程了。


  进程、病毒?


  书上说:“进程为应用程序的运行实例,是应用程序的一次动态执行。”看似高深,我们可以简单地理解为:它是操作系统当前运行的执行程序。在系统当前运行的执行程序里包括:系统管理计算机个体和完成各种操作所必需的程序;用户开启、执行的额外程序,当然也包括用户不知道,而自动运行的非法程序(它们就有可能是病毒程序)。


  危害较大的可执行病毒同样以“进程”形式出现在系统内部(一些病毒可能并不被进程列表显示,如“宏病毒”),那幺及时查看并准确杀掉非法进程对于“手工杀毒有起着关键性的作用。


  如何打开系统进程列表?


  要通过进程列表查看系统是否染毒,必须打开当前的执行程序进程列表,Microsoft的每种系统都有相应的打开方法,但能够显示的能力却因(系统)不同,有所差异:


  1.Windows 98 /Me系统


  打开系统进程的方式很简单,快捷键“Ctrl+Alt+Delete”(如图1),这个窗口大家应该比较熟悉,使用Windows系统的用户都知道用这个方法来关闭程序,不过它同样用于显示系统进程,只是Windows 98系统较初级,对进程的显示局限于名称,且里面所显示的还有打开的文件及目录名,查看时易混淆。Windows Me的进程打开方式和Windows 98相同。


  Windows 9x系统打开的进程列表混乱且不完全,显然不便于查看系统的具体进程状况,所以建议使用一些工具程序来为Windows 9x系统显示进程,如“Windows优化大师”,在“优化大师”的“系统安全优化”项内打开“进程管理”,在图2所示的“Windows 进程管理”窗口内,可以详细查看当前计算机所运行的所有进程,及具体程序所在的位置,这样更方便完成后面要介绍的如何利用进程进行查毒、杀毒。


  2.Windows 2000/ XP/2003系统


  Windows 2000、Windows XP、Windows 2003打开进程窗口的方式与Windows 9x系统相同,只是三键后打开的是“Windows 任务管理器”窗口,需要选择里面的“进程”项。Windows 2000系统只显示具体进程的全名,占用的内存量;Windows XP、Windows 2003系统相比Windows 2000会显示该进程归属于那个用户下,如操作系统所必须的基础程序,会在后面的“用户名”内显示为“SYSTEM”,由用户另外开启的程序则用户名为当前的系统登录用户名。


  经进程发现病毒


  在介绍具体的查毒和杀毒前,笔者先回答开篇提出的两个问题。为什幺杀毒软件并不能全面的查找和杀掉病毒?首先,病毒_blank">防火墙是通过对程序进行反汇编,然后与自己的病毒库进行对比来查找病毒,如果病毒较新,而杀毒软件又未能及时升级便不能识别病毒。其次,杀毒软件在发现病毒后,如果是独立的可执行病毒程序,会选择直接删除的处理方式,而病毒如果被当作进程执行了,杀毒软件就无能为力了,因为它没有功能和权限先停止掉系统的这些进程,被当作进程执行的程序是不能被删除的(这也是大家在删除一个程序时,提示该程序正在被使用不能删除的原因)。所以在使用杀毒软件杀毒时,才会有杀毒完成后,又出现病毒提示的原因。   回到原来话题上!通过进程如何发现和杀掉病毒呢?由前面的知识介绍可知,Windows 9X和Windows 2000系统只能显示进程的名称,这对判断该进程是否是病毒还不够,如果要准确的断定病毒,最好使用前面介绍的“Windows优化大师”来查看进程程序的源路径,如果是“C:Windowssystem”下的一些未知的“EXE”那便极有病毒的可能性了。Windows XP和Windows 2003系统,进程后会有“用户名”的显示,病毒是不可能获得“SYSTEM”权限的,所以应注意“用户名”是当前登录用户的进程,一旦发现是病毒,可以立即“杀掉”。这里介绍两个技巧:


  1.发现可疑进程后,利用Windows的查找功能,查找该进程所在的具体路径,通过路径可以知道该进程是否合法,譬如由路径“C:Program Files3721assistse.exe”知道该程序是3721的进程,是合法的。


  2.在对进程是否病毒拿不定主意时,可以复制该进程的全名,如:“xxx.exe”到googl.com或baidu.com这样的全球搜查引擎上进行搜查,如果是病毒会有相关的介绍网页。


  确定了该进程是病毒,首先应该杀掉该进程,对于Windows 9x系统,选中该进程后,点击下面的“结束任务”按钮,Windows 2000、Windows XP、Windows 2003系统则在进程上单击右键在弹出菜单上选择“结束任务”。“杀掉”进程后找到该进程的路径删除掉即可,完成后最好在进行一次杀毒,这样就万无一失了。


  一次利用进程杀毒的具体过程是这样的:“通过进程名及路径判断是否病毒——杀掉进程——删除病毒程序”,为了让读者更好的判断进程,在这里补充一些Windows的进程资料给大家:
进程名描述


  smss.exe Session Manager


  csrss.exe 子系统服务器进程


  winlogon.exe 管理用户登录


  services.exe 包含很多系统服务


  lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。


  svchost.exe  Windows 2000/XP 的文件保护系统


  Spoolsv.exe  将文件加载到内存中以便迟后打印。


  explorer.exe 资源管理器


  internat.exe 托盘区的拼音图标


  mstask.exe允许程序在指定时间运行。


  regsvc.exe允许远程注册表操作。(系统服务)→remoteregister


  tftpd.exe 实现 TFTP Internet 标准。该标准不要求用户名和密码。


  llssrv.exe证书记录服务


  ntfrs.exe 在多个服务器间维护文件目录内容的文件同步。


  RsSub.exe 控制用来远程储存数据的媒体。


  locator.exe  管理 RPC 名称服务数据库。


  clipsrv.exe  支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。


  msdtc.exe 并列事务,是分布于两个以上的数据库,消息队列,文件系统或其它事务保护资源管理器。


  grovel.exe扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空间(只对 NTFS 文件系统有用)。


  snmp.exe 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。


  以上这些进程都是对计算机运行起至关重要的,千万不要随意“杀掉”,否则可能直接影响系统的正常运行。


  微软还为我们提供了一种察看系统正在运行在svchost.exe列表中的服务的方法。


  以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist /svc。系统列出服务列表。如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。


  如果你怀疑计算机有可能被病毒感染,svchost.exe的服务出现异常的话通过搜索svchost.exe文件就可以发现异常情况。一般只会找到一个在:“C:WindowsSystem32”目录下的svchost.exe程序。如果你在其它目录下发现svchost.exe程序的话,那很可能就是中毒了。


  还有一种确认svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。


  上面简单的介绍了svchost.exe进程的相关情况。总而言之,svchost.exe是一个系统的核心进程,并不是病毒进程。但由于svchost.exe进程的特殊性,所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可以确认是否中毒。

MySQL数据库和备份与恢复

在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表以破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事!

  备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp、cpio或tar等)。每种方法都有其优缺点:

  mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库,也会发生同样的问题:如果数据库表在文件系统备份过程中被修改,进入备份的表文件主语不一致的状态,而对以后的恢复表将失去意义。文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程,这样你能采取措施确保服务器让表不受干扰。

  mysqldump比直接拷贝要慢些。

  mysqldump生成能够移植到其它机器的文本文件,甚至那些有不同硬件结构的机器上。直接拷贝文件不能移植到其它机器上,除非你正在拷贝的表使用MyISAM存储格式。ISAM表只能在相似的硬件结构的机器上拷贝。在MySQL 3.23中引入的MyISAM表存储格式解决了该问题,因为该格式是机器无关的,所以直接拷贝文件可以移植到具有不同硬件结构的机器上。只要满足两个条件:另一台机器必须也运行MySQL 3.23或以后版本,而且文件必须以MyISAM格式表示,而不是ISAM格式。

  不管你使用哪种备份方法,如果你需要恢复数据库,有几个原则应该遵守,以确保最好的结果:

  定期实施备份。建立一个计划并严格遵守。

  让服务器执行更新日志。当你在崩溃后需要恢复数据时,更新日志将帮助你。在你用备份文件恢复数据到备份时的状态后,你可以通过运行更新日志中的查询再次运用备份后面的修改,这将数据库中的表恢复到崩溃发生时的状态。

  以文件系统备份的术语讲,数据库备份文件代表完全倾倒(full dump),而更新日志代表渐进倾倒(incremental dump)。

  使用一种统一的和易理解的备份文件命名机制。象backup1、buckup2等不是特别有意义。当实施你的恢复时,你将浪费时间找出文件里是什么东西。你可能发觉用数据库名和日期构成备份文件名会很有用。例如:

  %mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02
  %mysqldump menagerie >/usr/archives/mysql/menagerie.1999-10-02

  你可能想在生成备份后压缩它们。备份一般都很大!你也需要让你的备份文件有过期期限以避免它们填满你的磁盘,就象你让你的日志文件过期那样。

  用文件系统备份备份你的备份文件。如果遇上了一个彻底崩溃,不仅清除了你的数据目录,也清除了包含你的数据库备份的磁盘驱动器,你将真正遇上了麻烦。也要备份你的更新日志。

  将你的备份文件放在不同于用于你的数据库的文件系统上。这将降低由于生成备份而填满包含数据目录的文件系统的可能性。

  用于创建备份的技术同样对拷贝数据库到另一台机器有用。最常见地,一个数据库被转移到了运行在另一台主机上的服务器,但是你也可以将数据转移到同一台主机上的另一个服务器。

1、使用mysqldump备份和拷贝数据库


  当你使用mysqldumo程序产生数据库备份文件时,缺省地,文件内容包含创建正在倾倒的表的Create语句和包含表中行数据的Insert语句。换句话说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。
  你可以将整个数据库倾倒进一个单独的文本文件中,如下:

  %mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02

  输出文件的开头看起来象这样:

  # MySQL Dump 6.0
  #
  # Host: localhost Database: samp_db
  #---------------------------------------
  # Server version 3.23.2-alpha-log
  #
  # Table structure for table 'absence'
  #
  Create TABLE absence(
  student_id int(10) unsigned DEFAULT '0' NOT NULL,
  date date DEFAULT '0000-00-00' NOT NULL,
  PRIMARY KEY (student_id,date)
  );
  #
  # Dumping data for table 'absence'
  #
  Insert INTO absence VALUES (3,'1999-09-03');
  Insert INTO absence VALUES (5,'1999-09-03');
  Insert INTO absence VALUES (10,'1999-09-08');
  ...... 

  文件剩下的部分有更多的Insert和Create TABLE语句组成。

  如果你想压缩备份,使用类似如下的命令:

  %mysqldump samp_db | gzip >/usr/archives/mysql/samp_db.1999-10-02.gz

  如果你要一个庞大的数据库,输出文件也将很庞大,可能难于管理。如果你愿意,你可以在mysqldump命令行的数据库名后列出单独的表名来倾到它们的内容,这将倾倒文件分成较小、更易于管理的文件。下例显示如何将samp_db数据库的一些表倾到进分开的文件中:

  %mysqldump samp_db student score event absence >grapbook.sql
  %mysqldump samp_db member president >hist-league.sql

  如果你生成准备用于定期刷新另一个数据库内容的备份文件,你可能想用--add-drop-table选项。这告诉服务器将Drop TABLE IF EXISTS语句写入备份文件,然后,当你取出备份文件并把它装载进第二个数据库时,如果表已经存在,你不会得到一个错误。

  如果你倒出一个数据库以便能把数据库转移到另一个服务器,你甚至不必创建备份文件。要保证数据库存在于另一台主机,然后用管道倾倒数据库,这样mysql能直接读取mysqldump的输出。例如:你想从主机pit-viper.snake.net拷贝数据库samp_db到boa.snake.net,可以这样很容易做到:

  %mysqladmin -h boa.snake.net create samp_db
  %mysqldump samp_db | mysql -h boa.snake.net samp_db

  以后,如果你想再次刷新boa.snake.net上的数据库,跳过mysqladmin命令,但要对mysqldump加上--add-drop-table以避免的得到表已存在的错误:
%mysqldump --add-drop-table samp_db | mysql -h boa.snake.net samp_db
mysqldump其它有用的选项包括:

  --flush-logs和--lock-tables组合将对你的数据库检查点有帮助。--lock-tables锁定你正在倾倒的所有表,而--flush-logs关闭并重新打开更新日志文件,新的更新日志将只包括从备份点起的修改数据库的查询。这将设置你的更新日志检查点位备份时间。(然而如果你有需要执行个更新的客户,锁定所有表对备份期间的客户访问不是件好事。)

如果你使用--flush-logs设置检查点到备份时,有可能最好是倾倒整个数据库。如果你倾倒单独的文件,较难将更新日志检查点与备份文件同步。在恢复期间,你通常按数据库为基础提取更新日志内容,对单个表没有提取更新的选择,所以你必须自己提取它们。


  缺省地,mysqldump在写入前将一个表的整个内容读进内存。这通常确实不必要,并且实际上如果你有一个大表,几乎是失败的。你可用--quick选项告诉mysqldump只要它检索出一行就写出每一行。为了进一步优化倾倒过程,使用--opt而不是--quick。--opt选项打开其它选项,加速数据的倾倒和把它们读回。

  用--opt实施备份可能是最常用的方法,因为备份速度上的优势。然而,要警告你,--opt选项确实有代价,--opt优化的是你的备份过程,不是其他客户对数据库的访问。--opt选项通过一次锁定所有表阻止任何人更新你正在倾倒的任何表。你可在一般数据库访问上很容易看到其效果。当你的数据库一般非常频繁地使用,只是一天一次地调节备份。

  一个具有--opt的相反效果的选项是--dedayed。该选项使得mysqldump写出Insert DELAYED语句而不是Insert语句。如果你将数据文件装入另一个数据库并且你想是这个操作对可能出现在该数据库中的查询的影响最小,--delayed对此很有帮助。

  --compress选项在你拷贝数据库到另一台机器上时很有帮助,因为它减少网络传输字节的数量。下面有一个例子,注意到--compress对与远端主机上的服务器通信的程序才给出,而不是对与本地主机连接的程序:

  %mysqldump --opt samp_db | mysql --compress -h boa.snake.net samp_db
  mysqldump有很多选项,详见《MySQL参考手册》。

  2、使用直接拷贝数据库的备份和拷贝方法

  另一种不涉及mysqldump备份数据库和表的方式是直接拷贝数据库表文件。典型地,这用诸如cp、tar或cpio实用程序。本文的例子使用cp。

  当你使用一种直接备份方法时,你必须保证表不在被使用。如果服务器在你则正在拷贝一个表时改变它,拷贝就失去意义。

  保证你的拷贝完整性的最好方法是关闭服务器,拷贝文件,然后重启服务器。如果你不想关闭服务器,要在执行表检查的同时锁定服务器。如果服务器在运行,相同的制约也适用于拷贝文件,而且你应该使用相同的锁定协议让服务器“安静下来”。

  假设服务器关闭或你已经锁定了你想拷贝的表,下列显示如何将整个samp_db数据库备份到一个备份目录(DATADIR表示服务器的数据目录):

  %cd DATADIR
  %cp -r samp_db /usr/archive/mysql

  单个表可以如下备份:

  %cd DATADIR/samp_db
  %cp member.* /usr/archive/mysql/samp_db
  %cp score.* /usr/archive/mysql/samp_db
  ....

  当你完成了备份时,你可以重启服务器(如果关闭了它)或释放加在表上的锁定(如果你让服务器运行)。

  要用直接拷贝文件把一个数据库从一台机器拷贝到另一台机器上,只是将文件拷贝到另一台服务器主机的适当数据目录下即可。要确保文件是MyIASM格式或两台机器有相同的硬件结构,否则你的数据库在另一台主机上有奇怪的内容。你也应该保证在另一台机器上的服务器在你正在安装数据库表时不访问它们。

  3、复制数据库(Replicating Database)

  复制(Replication)类似于拷贝数据库到另一台服务器上,但它的确切含义是实时地保证两个数据库的完全同步。这个功能将在3.23版中出现,而且还不很成熟,因此本文不作详细介绍。

4、用备份恢复数据


  数据库损坏的发生有很多原因,程度也不同。如果你走运,你可能仅损坏一两个表(如掉电),如果你倒霉,你可能必须替换整个数据目录(如磁盘损坏)。在某些情况下也需要恢复,比如用户错误地删除了数据库或表。不管这些倒霉事件的原因,你将需要实施某种恢复。

  如果表损坏但没丢失,尝试用myisamchk或isamchk修复它们,如果这样的损坏可有修复程序修复,你可能根本不需要使用备份文件。关于表修复的过程,见《数据库维护与修复》。

  恢复过程涉及两种信息源:你的备份文件和个更新日志。备份文件将表恢复到实施备份时的状态,然而一般表在备份与发生问题之间的时间内已经被修改,更新日志包含了用于进行这些修改的查询。你可以使用日志文件作为mysql的输入来重复查询。这已正是为什么要启用更新日志的原因。

  恢复过程视你必须恢复的信息多少而不同。实际上,恢复整个数据库比单个表跟容易,因为对于数据库运用更新日志比单个表容易。

  4.1 恢复整个数据库

  首先,如果你想恢复的数据库是包含授权表的mysql数据库,你需要用--skip-grant-table选项运行服务器。否则,它会抱怨不能找到授权表。在你已经恢复表后,执行mysqladmin flush-privileges告诉服务器装载授权标并使用它们。

  将数据库目录内容拷贝到其它某个地方,如果你在以后需要它们。

  用最新的备份文件重装数据库。如果你用mysqldump产生的文件,将它作为mysql的输入。如果你用直接从数据库拷贝来的文件,将它们直接拷回数据库目录,然而,此时你需要在拷贝文件之前关闭数据库,然后重启它。

  使用更新日志重复做备份以后的修改数据库表的查询。对于任何可适用的更新日志,将它们作为mysql的输入。指定--one-database选项使得mysql只执行你有兴趣恢复的数据库的查询。如果你知道你需要运用所有更新日志文件,你可以在包含日志的目录下使用这条命令:

  % ls -t -r -1 update.[0-9]* | xargs cat | mysql --one-database db_name

  ls命令生成更新日志文件的一个单列列表,根据服务器产生它们的次序排序(主意:如果你修改任何一个文件,你将改变排序次序,这导致更新日志一错误的次序被运用。)

  很可能你会是运用某几个更新日志。例如,自从你备份以来产生的更新日志被命名为update.392、update.393等等,你可以这样重新运行:

  %mysql --one-database db_name < update.392
  %mysql --one-database db_name < update.393
  .....

  如果你正在实施恢复且使用更新日志恢复由于一个错误建议的Drop DATABASE、Drop TABLE或Delete语句造成丢失的信息,在运用更新日志之前,要保证从其中删除这些语句。

  4.2 恢复单个表

  恢复单个表较为复杂。如果你用一个由mysqldump生成的备份文件,并且它不包含你感兴趣的表的数据,你需要从相关行中提取它们并将它们用作mysql的输入。这是容易的部分。难的部分是从只运用于该表的更新日志中拉出片断。你会发觉mysql_find_rows实用程序对此很有帮助,它从更新日志中提取多行查询。

  另一个可能性是使用另一台服务器恢复整个数据库,然后拷贝你想要的表文件到原数据库中。这可能真的很容易!当你将文件拷回数据库目录时,要确保原数据库的服务器关闭。