2013年5月4日星期六

MySQL中MyISAM与InnoDB的区别



    show table status; 

    查看表采用何种引擎。

    MySQL Administrator建数据库的时候,表缺省是InnoDB类型。原来是MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。
     MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。这样就可以根据数据表不同的用处是用不同的存储类型。

    另外,MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。
--------------------------------------------------------------
    mysql数据库中最常使用的两种表类型为 innodb和myisam。这两种类型各有优缺点,视具体应用而定。
    InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
    InnoDB 提供了行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECTs)。这些特性均提高了多用户并发操作的性能表现。  
    在InnoDB表中不需要扩大锁定(lock escalation),因为 InnoDB 的列锁定(row level locks)适宜非常小的空间。
    InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN KEY constraints)的表引擎。
    InnoDB 的设计目标是处理大容量数据库系统,它的 CPU 利用率是其它基于磁盘的关系数据库引擎所不能比的。
    在技术上,InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。
     InnoDB 把数据和索引存放在表空间里,可能包含多个文件,这与其它的不一样,举例来说,在 MyISAM 中,表被存放在单独的文件中。
     InnoDB 表的大小只受限于操作系统的文件大小,一般为 2 GB。
     InnoDB所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件), 相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump。 

2013年5月3日星期五

centos下 mysql 5.5 数据库主从配置(测试成功!)

主服务器设定为:'192.168.1.253',前提是主从服务器都正确安装完毕,centos操作系统.
一、主数据库配置
 1、编辑/etc/my.cnf 主数据库配置文件。
server-id = 1
#需要进行复制的数据库
binlog-do-db = mydatabase
#不需要进行复制的数据库
replicate-ignore-db = mysql
#生成的同步数据所需要的文件
log-bin=syslog

2、重启mysql,登陆Mysql,设置从数据库所需要的权限,设置为可以从任何机器登陆,账号/密码:slave/123456
grant replication slave,reload,super on *.* to 'slave'@'%' identified by '123456';

3、查看状态
show master status;

二、从数据库配置
1、编辑/etc/my.cnf 从数据库配置文件。
由于Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数,用配置文件设置主从同步时,出现:mysqld: unknown variable 'master-host=127.0.0.1'
#将配置文件中的server-id该为2
server-id = 2
#需要进行同步的数据库名称
replicate-do-db = mydatabase
2、重启mysql,登陆Mysql,设置同步设置,其中syslog.000001为日志文件,master_log_pos=0为日志开始复制的位置,即:从syslog.000001的0位置同步数据,日志文件和行号根据实际情况进行处理。
change master to master_host='192.168.1.253',master_user='slave',master_password='123456',master_log_file='syslog.000001',master_log_pos=0;
3、启动从数据库数据同步命令:
   start slave;
4、查看从数据库同步状态,Slave_IO_Status,Slave_Io_Running,Slave_SQL_Running
  show slave status;
5、需要重新进行同步的时候,先停止同步服务器,重新设置,同步的日志文件master_log_file和同步起始位置master_log_pos:
   stop slave;

Mysql错误Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist



数据库运行一段时间出现如下错误:Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist ,这到底是为什么呢?我们该怎么样解决呢

解决办法如下:不过数据丢了 气愤。。。。。。。。。。。。。。。。。。
进入mysql应用目录,cd /usr/local/mysql ;l然后执行./bin/mysql_install_db –usrer=mysql datadir=/var/lib/mysql 这个是我的datadir目录,你可以去/etc/my.cnf里面查找就ok了!最后启动mysql

/usr/local/mysql/bin/mysqld_safe –user=mysql& 然后登陆数据库,如果提示/tmp/mysql.sock错误的话,就重新链接一下mysql.sock文件即可。链接命令如下:
ln -s /var/lib/mysql/mysql.sock /tmp/ 这样就可以登陆数据库了
如果是yum安装或是rpm安装的包,则需要完全卸载,然后在安装,重启就ok了!

yum remove mysql*

MySQL Daemon failed to start


  一般MYSQL不能正常启动的时候,需要查看下日志文件:
tail /var/log/mysqld.log 显示所有日志
tail -n 20 /var/log/mysqld.log 显示最近的20条日志
根据日志情况,具体分析处理,一般是
mysql 数据库的权限问题:chmod 777 -r /var/lib/mysql;
注意数据库用户:chown -R mysql:mysql /var/lib/mysql

2013年5月2日星期四

专家:有日本间谍混入救援队参加汶川救援(哎,日本啊)



核心提示:据深圳卫视报道,在国际救援中,常常会出现受灾国不愿接受国际救援的情况,救援队甚至被当做间谍对待。就是日本救援队所携带的机具,除了救灾机具,他们还带了测绘的器材,其用意已经超过救灾。
  据深圳卫视报道,在国际救援中,常常会出现受灾国不愿接受国际救援的情况,救援队甚至被当做间谍对待。

  台北专家称,五年前的汶川地震当中,日本救援队从组成成员到携带的工具都引发联想。日本第一批救援队是31个人,其组成包括日本外务省国际情报局的人,还有海上防卫厅的人,这些人员的身份不得不引起猜疑。

  其次,就是日本救援队所携带的机具,除了救灾机具,他们还带了测绘的器材,其用意已经超过救灾。虽然在救援中,中方会统一管制,但这种时刻显然是好的机会做情搜。
来源:http://news.cntv.cn/2013/05/02/VIDE1367452083036134.shtml

2013年4月27日星期六

RIP路由协议及工作原理


下面内容摘自笔者编著的网管员必读——网络基础》(第2版)一书。

9.11.1 RIP路由协议及工作原理

RIPRouting information Protocol路由信息协议)是应用较早、使用较普遍的内部网关协议(Interior Gateway ProtocolIGP),适用于小型同类网络的一个自治系统(AS)内的路由信息的传递。RIP协议是基于距离矢量算法(Distance Vector AlgorithmsDVA)的。它使用跳数,即metric来衡量到达目标地址的路由距离。文档见RFC1058RFC1723。它是一个用于路由器和主机间交换路由信息的距离向量协议,目前最新的版本为v4,也就是RIPv4
至于上面所说到的内部网关协议,我们可以这样理解。由于历史的原因,当前的 INTERNET 网被组成一系列的自治系统,各自治系统通过一个核心路由器连到主干网上。而一个自治系统往往对应一个组织实体(比如一个公司或大学)内部的网络与路由器集合。每个自治系统都有自己的路由技术,对不同的自治系统路由技术是不相同的。用于自治系统间接口上的路由协议称为外部网关协议,简称EGPExterior Gateway Protocol);而用于自治系统内部的路由协议称为内部网关协议,简称 IGP。内部网关与外部网关协议不同,外部路由协议只有一个,而内部路由器协议则是一族。各内部路由器协议的区别在于距离制式(distance metric, 即距离度量标准)不同,和路由刷新算法不同。RIP协议是最广泛使用的IGP类协议之一,著名的路径刷新程序Routed便是根据RIP实现的。RIP协议被设计用于使用同种技术的中型网络,因此适应于大多数的校园网和使用速率变化不是很大的连续线的地区性网络。对于更复杂的环境,一般不使用RIP协议。

1RIP工作原理

RIP协议是基于Bellham-Ford(距离向量)算法,此算法1969年被用于计算机路由选择,正式协议首先是由Xerox1970年开发的,当时是作为Xerox“Networking ServicesNXS协议族的一部分。由于RIP实现简单,迅速成为使用范围最广泛的路由协议。
路由器的关键作用是用于网络的互连,每个路由器与两个以上的实际网络相连,负责在这些网络之间转发数据报。在讨论 IP 进行选路和对报文进行转发时,我们总是假设路由器包含了正确的路由,而且路由器可以利用 ICMP 重定向机制来要求与之相连的主机更改路由。但在实际情况下,IP 进行选路之前必须先通过某种方法获取正确的路由表。在小型的、变化缓慢的互连网络中,管理者可以用手工方式来建立和更改路由表。而在大型的、迅速变化的环境下,人工更新的办法慢得不能接受。这就需要自动更新路由表的方法,即所谓的动态路由协议,RIP协议是其中最简单的一种。
在路由实现时,RIP作为一个系统长驻进程(daemon)而存在于路由器中,负责从网络系统的其它路由器接收路由信息,从而对本地IP层路由表作动态的维护,保证IP层发送报文时选择正确的路由。同时负责广播本路由器的路由信息,通知相邻路由器作相应的修改。RIP协议处于UDP协议的上层,RIP所接收的路由信息都封装在UDP协议的数据报中,RIP520UDP端口上接收来自远程路由器的路由修改信息,并对本地的路由表做相应的修改,同时通知其它路由器。通过这种方式,达到全局路由的有效。
RIP路由协议用更新(UNPDATES请求(REQUESTS这两种分组来传输信息的。每个具有RIP协议功能的路由器每隔30秒用UDP520端口给与之直接相连的机器广播更新信息。更新信息反映了该路由器所有的路由选择信息数据库。路由选择信息数据库的每个条目由局域网上能达到的IP地址与该网络的距离两部分组成。请求信息用于寻找网络上能发出RIP报文的其他设备。
RIP路程段数(即跳数)作为网络距离的尺度。每个路由器在给相邻路由器发出路由信息时,都会给每个路径加上内部距离。在如图9-31中,路由器3直接和网络C相连。当它向路由器2通告网络142.10.0.0的路径时,它把跳数增加1。与之相似,路由器2把跳数增加到2”,且通告路径给路由器1,则路由器2路由器1与路由器3所在网络142.10.0.0的距离分别是1跳、2跳。
9-31  RIP工作原理示例
然而在实际的网络路由选择上并不总是由跳数决定的,还要结合实际的路径连接性能综合考虑。在如9-32所示网络中,从路由器1到网络3RIP协议将更倾向于跳数为2的路由器1->路由器2->路由器31.5Mbps链路,而不是选择跳数为156Kbps,直接的路由器1->路由器3路径,因为跳数为156Kbps串行链路比跳数为21.5Mbps串行链路慢得多。
9-32   路由选择不仅限于跳数考虑的示例

2路由器的收敛机制

任何距离向量路由选择协议(如RIP)都有一个问题,路由器不知道网络的全局情况,路由器必须依靠相邻路由器来获取网络的可达信息。由于路由选择更新信息在网络上传播慢,距离向量路由选择算法有一个慢收敛问题,这个问题将导致不一致性产生。RIP协议使用以下机制减少因网络上的不一致带来的路由选择环路的可能性。
l              记数到无穷大机制
RIP协议允许最大跳数为15。大于15的目的地被认为是不可达。这个数字在限制了网络大小的同时也防止了一个叫做记数到无穷大的问题。
记数到无穷大机制的工作原理如下(如图9-33所示):
9-33  路由器收敛机制示例
1)现假设路由器1断开了与网络A相连,则路由器1丢失了与网络A相连的以太网接口后产生一个触发更新送往路由器2和路由器3。这个更新信息同时告诉路由器2和路由器3,路由器1不再有到达网络A的路径。假设这个更新信息传输到路由器2被推迟了(CPU忙、链路拥塞等),但到达了路由器3,所以路由器3会立即从路由表中去掉到网络A的路径。
2)路由器2由于未收到路由器1的触发更新信息,并发出它的常规路由选择更新信息,通告网络A2跳的距离可达。路由器3收到这个更新信息,认为出现了一条通过路由器2的到达网络A的新路径。于是路由器3告诉路由器1,它能以3跳的距离到达网络A
3)在收到路由器3的更新新后,就把这个信息加上一跳后向路由器2和路由器3同时发出更新信息,告诉他们路由器1可以以3跳的距离到达网络A
4)路由器2在收到路由器1的消息后,比较发现与原来到达网络A的路径不符,更新成可以以4,跳的距离到达网络A。这个消息再次会发往路由器3,以此循环,直到跳数达到超过RIP协议允许的最大值(在RIP中定义为16)。一旦一个路由器达到这个值,它将声明这条路径不可用,并从路由表中删除此路径。
由于记数到无穷大问题,路由选择信息将从一个路由器传到另一个路由器,每次段数加1。路由选择环路问题将无限制地进行下去,除非达到某个限制。这个限制就是RIP的最大跳数。当路径的跳数超过15,这条路径才从路由表中删除。
l              水平分割法
水平分割规则如下:路由器不向路径到来的方向回传此路径。当打开路由器接口后,路由器记录路径是从哪个接口来的,并且不向此接口回传此路径。
Cisco可以对每个接口关闭水平分割功能。这个特点在“non broadcast mutilple access”NBMA,非广播多路访问)环境下十分有用。在如图9-34所示网络中,路由器2通过帧中继连接路由器1和路由器3,两个PVC都在路由器2的同一个物理接口(S0)中止。如果在路由器2的水平分割功能未被关闭,那么路由器3将收不到路由器1的路由选择信息(反之亦然)。用“no ip split-horizon”接口子命令可关闭水平分割功能。
9-34  水平分割法原理示例
l              破坏逆转的水平分割法
水平分割是路由器用来防止把一个接口得来的路径又从此接口传回导致的问题的方案。水平分割方案忽略在更新过程中从一个路由器获取的路径又传回该路由器。有破坏逆转的水平分割方法是在更新信息中包括这些回传路径,但这种处理方法会把这些回传路径的跳数设为16(无穷)。通过把跳数设为无穷,并把这条路径告诉源路由器,有可能立刻解决路由选择环路。否则,不正确的路径将在路由表中驻留到超时为止。破坏逆转的缺点是它增加了路由更新的的数据大小。
l              保持定时器法
保持定时器法可防止路由器在路径从路由表中删除后一定的时间内(通常为180秒)接受新的路由信息。它的思想是保证每个路由器都收到了路径不可达信息,而且没有路由器发出无效路径信息。例如在图6-32所示网络中,由于路由更新信息被延迟,路由器2向路由器3发出错误信息。但使用保持计数器法后,这种情况将不会发生,因为路由器3将在180秒内不接受通向网络A的新的路径信息,到那时路由器2将存储正确的路由信息。
l              触发更新法
有破坏逆转的水平分割将任何两个路由器构成的环路打破,但三个或更多个路由器构成的环路仍会发生,直到无穷(16)时为止。触发式更新法可加速收敛时间,它的工作原理是当某个路径的跳数改变了,路由器立即发出更新信息,不管路由器是否到达常规信息更新时间都发出更新信息。

3RIP报文格式

如图9-35所示为RIP信息格式。各字段解释如下:
Command:命令字段,8位,用来指定数据报用途。命令有五种:Request(请求)、Response(响应)、Traceon(启用跟踪标记,自v2版本后已经淘汰)、Traceoff(关闭跟踪标记,自v2版本后已经淘汰)和 Reserved(保留)。
VersionRIP版本号字段,16位。
Address Family Identifier:地址族标识符字段,24位。它指出该入口的协议地址类型。由于 RIP2版本可能使用几种不同协议传送路由选择信息,所以要使用到该字段。IP协议地址的Address Family Identifier2
9-35  RIP协议信息格式
Route Tag:路由标记字段,32位,仅在v2版本以上需要,第一版本不用,为0。用于路由器指定属性,必须通过路由器保存和重新广告。路由标志是分离内部和外部 RIP 路由线路的一种常用方法(路由选择域内的网络传送线路),该方法在 EGPIGP都有应用。
IP Address:目标IP地址字段,IPv4地址为32位。
Subnet Mask:子网掩码字段,IPv4子网掩码地址为32位。它应用于IP地址,生成非主机地址部分。如果为0,说明该入口不包括子网掩码。也仅在v2版本以上需要,在RIPv1中不需要,为0
Next Hop:下一跳字段。指出下一跳IP地址,由路由入口指定的通向目的地的数据包需要转发到该地址。
Metric:跳数字段。表示从主机到目的地获得数据报过程中的整个成本。 

林彪提前培养儿子犯了毛泽东的大忌

林彪韬晦了几十年,但到了最后时刻却利令智昏。这个报告到了毛泽东那儿,包括军队空军对林立果的吹捧,毛产生了负面的看法。
林彪提前培养儿子犯了毛泽东的大忌 - 龙往事 - 龙往事
 九大是林彪由盛而衰的转折点
林彪的一些想法在九大上和毛泽东是有分歧的,林彪是比较主张“文革”结束国家开始搞现代化,恢复常规恢复秩序,毛泽东要不断革命。毛废弃了陈伯达给林彪写的稿子,那个稿子是林彪比较欣赏的,就是“文革”结束以后,应该搞经济建设。毛不看,用的是张春桥的稿子,张春桥的稿子就是继续革命不断革命。那么,林彪在九大作政治报告的时候,事先稿子是一个字都没有看的,他是很不高兴的。九大上,毛主席正式安排林彪为接班人,又来试探林彪了。九大时间开得很长,开了20多天。有一天开会选举大会主席团,毛主席说选举林彪同志作主席团主席,吓坏了林彪,好在林彪反应快,马上拉了话筒说选伟大领袖毛主席作主席,然后林彪说流眼泪就流眼泪,流着眼泪歌颂毛主席的丰功伟绩,在九大庄严的主席台上,两个人演出了这一场试探与反试探的一场戏。另外,毛主席在这次会议上,借用外电的话表达了自己的不安,主要借用苏联人的话,说“我们现在是军事官僚集团”。
毛主席在九大上安排林彪系统的人当了政治局委员,但又做了其他的布局。他任命了许世友、陈锡联担任政治局委员,他也让李先念担任政治局委员,几个老臣,刘伯承虽然双眼失明了也还是政治局委员,叶剑英也是政治局委员。所以,林彪并没有真正实现清一色,特别是大军区司令员这一级,林彪最希望能洗牌的这一级,毛泽东坚决不让林彪染指,大军区司令员这一级全是毛主席定的,林彪对广州军区只能有一个建议。
林彪推出林立果犯了大忌
毛岸英同志牺牲了,毛岸青的身体又不太好,1970年的7月份,林立果被隆重推出,给毛主席和江青造成巨大的心理上的一个反应,因为他们两位都没有儿子啊。怎么推出的?七月二十几日安排得很好,专门安排的,林彪视察军委的一个新工厂,特地安排儿子跟他一起走,录像在军中所有单位播放,这是第一个。第二个,七月下旬,林立果作学习毛主席著作的讲用报告,这个讲用报告长达七个小时,讲了一天,七万字,这个报告毛泽东当然看到了。林彪昏了头了,居然在家里欣赏得不得了,说这个报告不仅语言像我,思想像我,连讲话的声音都像。他韬晦了几十年,所以我们讲人有的时候会利令智昏的。这个报告到了毛泽东那儿,包括军队空军对林立果的吹捧,毛产生了负面的看法。本来毛泽东对林立果是有一点欣赏的,因为林立果是好动脑筋的人,动手能力很强,他是北大物理系的,喜欢搞一些军械等。特别是在1969年林立果突发奇想,将张家口以北的一个山劈掉一半,放一个雷达,说这个雷达放上去以后,莫斯科要对中国放战略导弹的话这个雷达可以提前知道。毛主席非常高兴,亲自接见林立果,称他是革命小将,敢想敢做。毛主席鼓励了,林彪本应该谦虚一点,但是他忘掉了,他以为毛泽东称赞他儿子了,他就要隆重推出。主要林受了刺激,毛远新这个时候在沈阳军区不断受提拔,现在他要赶紧提拔林立果。毛主席的反应是,林彪同志认为自己身体不好了,这么快这么着急地把他的儿子也推作接班人了,这是主席跟江青、康生等人的小范围的谈话。康生直接在主席面前说,林彪昏了头了,怎么能隆重推出自己儿子呢,特别是毛主席没有一个健康的儿子的时候,更不能推出。