<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<channel>
	<title>flyinweb's blog</title>
	<link>http://www.517sou.net/</link>
	<language>zh-CN</language>
	<webMaster>shanyiwan@msn.com(flyinweb)</webMaster>
	<pubDate>Mon, 15 Jun 2009 19:31:16 GMT</pubDate>
	<copyright>Copyright 2007-2009. All rights reserved.</copyright>
	<generator>Bitrac Free Version</generator>
	<description>桃李无言，下自成蹊</description>
	<image>
		<title>flyinweb&apos;s blog</title>
		<url>http://www.517sou.net/Client/Banner.gif</url>
		<link>http://www.517sou.net/</link>
		<description>桃李无言，下自成蹊</description>
	</image>
	<item>
		<link>http://www.517sou.net/Article/410.aspx</link>
		<title>SAS5I/R 创建阵列</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>技术文摘</category>
		<pubDate>Sun, 21 Feb 2010 03:52:58 GMT</pubDate>
		<description>&lt;p&gt;&lt;b&gt;配置RAID1&lt;br /&gt;&lt;/b&gt;进入配置界面&lt;br /&gt;开机按CTRL+C进入RAID的界面. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411114472445.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411114472445.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;进入的界面就是这样的界面.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411124142348.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411124142348.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;按回车,进入一个新的界面,选择&amp;nbsp;RAID&amp;nbsp;Properties按回车进行配置&amp;nbsp;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411141664899.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411141664899.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;选择IS或IM进行创建.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411171730633.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411171730633.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;进入创建界面.&lt;br /&gt;用空格键选择对应的硬盘.然后按C进行创建.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411195698513.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411195698513.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;选择存盘,继续操作.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411225053646.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411225053646.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;选择F3对RAID的配置进行存盘操作.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411245622572.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411245622572.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;这样就已经对RAID进行了配置成功了.&lt;/p&gt;&lt;p&gt;如果您的机器本身已经有配置好RAID的,那么如果要重新创建新的RAID的,我们必须对原来的RAID先删除,否则无法创建.删除的方法是在.我们选择RAID&amp;nbsp;Properties的,会多出一个新的选项,图面如下.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411301826083.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411301826083.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411321796760.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411321796760.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411335071573.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411335071573.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411353734035.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://img.sg.dell.com/fileup/at.asp?fn=200752411353734035.jpg&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/410.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/410/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/410.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/410/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/409.aspx</link>
		<title>硬盘SCSI ID设置</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>技术文摘</category>
		<pubDate>Sun, 21 Feb 2010 03:50:14 GMT</pubDate>
		<description>&lt;p&gt;SCSI&amp;nbsp;ID&amp;nbsp;Setting&amp;nbsp;guide&amp;nbsp;for&amp;nbsp;differet&amp;nbsp;brand&amp;nbsp;HDD&lt;/p&gt;&lt;p&gt;A,&amp;nbsp;Seagate&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/f7oaa1_115235_1.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/f7oaa1_115235_1.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;690&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Sample&amp;nbsp;&amp;nbsp;two&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/35zkk8_115236_2.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/35zkk8_115236_2.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;467&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/kdllo3_115236_3.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/kdllo3_115236_3.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;378&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;B,&amp;nbsp;Quantum&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/4m8nsx_115236_4.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/4m8nsx_115236_4.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;168&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/tkfdo5_115237_5.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/tkfdo5_115237_5.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;218&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;C.&amp;nbsp;IBM&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/bt2fsz_115237_6.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/bt2fsz_115237_6.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;225&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;D.&amp;nbsp;FJ&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/xrwjmr_115237_7.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/xrwjmr_115237_7.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;195&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/np6aiy_115237_8.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/np6aiy_115237_8.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;218&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/y95muh_115237_9.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/y95muh_115237_9.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;218&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/ghqnyb_115237_10.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/ghqnyb_115237_10.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;218&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;E.&amp;nbsp;Maxtor&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/q2pzbu_115238_11.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;absMiddle&quot; src=&quot;http://www.517sou.net/Attach/month_1002/q2pzbu_115238_11.jpg&quot; width=&quot;291&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; height=&quot;277&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/409.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/409/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/409.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/409/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/408.aspx</link>
		<title>关于RAID与SCSI的一些基本概念</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>技术文摘</category>
		<pubDate>Sun, 21 Feb 2010 03:46:33 GMT</pubDate>
		<description>&lt;p&gt;&lt;b&gt;RAID简介&lt;br /&gt;&lt;/b&gt;内嵌微处理器的磁盘子系统通常称为R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D系统。R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D阵列的可用容量总小于成员磁盘的总量。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;一、RAID&amp;nbsp;0（分块）是简单的、不带有校验的磁盘分块，本质上它并不是一个真正的R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D，因为它并不提供任何形式的冗余。假如RAID&amp;nbsp;0的磁盘失败，那么，数据将彻底丢失。为了在RAID&amp;nbsp;0情况下恢复数据，唯一的办法是使用磁带备份或者镜像拷贝。&lt;br /&gt;二、RAID&amp;nbsp;1（镜像）是非校验的R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D级。&lt;br /&gt;三、RAID&amp;nbsp;2（专有磁盘的并行访问）的定义涉及R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D控制器中的错误校验电路。这个功能已经被集成到磁盘驱动器中，虽然便宜，但效率却不高。因此，&amp;nbsp;RAID&amp;nbsp;2没有形成产品。&lt;br /&gt;四、并行访问R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D都属于R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D&amp;nbsp;3。R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D&amp;nbsp;3（使用专有校验磁盘的同步访问）子系统将数据分块存放到阵列中的所有驱动器，将校验数据写到阵列中的一个另外的校验磁盘，&amp;nbsp;R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D&amp;nbsp;3被认为是校镽&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D。&lt;br /&gt;五、RAID4（使用专用校验磁盘的独立访问）是一种独立访问的R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D实现，它使用一个专用的校验磁盘。与RAID&amp;nbsp;3不同的是，RAID&amp;nbsp;4有更大量的分块，使多个I&amp;nbsp;/&amp;nbsp;O请求能同时处理。虽然它为读请求提供了性能的优势，但RAID&amp;nbsp;4的写开销特别大，因为在每次读、修改和写周期中，校验磁盘都被访问两次。&lt;br /&gt;六、RAID&amp;nbsp;5（使用分布式校验的独立访问）是一个独立访问的R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D阵列，校验数据被分布在阵列中的所有磁盘。换而言之，即没有一个专有校验磁盘，因而，没有像RAID&amp;nbsp;4一样的写瓶颈。&lt;br /&gt;七、RAID&amp;nbsp;6（使用双校验的独立访问）提供两级冗余，即阵列中的两个驱动器失败时，阵列仍然能够继续工作。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/0irnjs_114803_1.jpg&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1002/0irnjs_114803_1.jpg&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;RAID&amp;nbsp;1:&amp;nbsp;就是我们常说的“磁盘镜像”，通过在阵列里的一个&amp;nbsp;硬盘上完全复制相同数据的方式来提供对数据的充分保护。如果其中一个硬盘毁坏，另外一个硬盘将提供精确的，完全相同的数据，RAID系统将切换到镜像的硬盘继续使用，对用户而言，数据并没有丢失。&amp;nbsp;&lt;br /&gt;这种镜像系统不好的地方是数据的存储速度并没有得到改善，而且磁盘利用率低。然而，它提供对管理者而言最简单有效的保护，当一个硬盘失效时，阵列管理软件会直接将数据请求切换到有效硬盘上。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/8dstqp_114805_2.jpg&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1002/8dstqp_114805_2.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;RAID&amp;nbsp;3:RAID&amp;nbsp;3&amp;nbsp;将数据交错分布在多个驱动器中，有一个专门的硬盘用户提供奇偶数据存储，提供错误数据的恢复和重建。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/p57smu_114805_3.jpg&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1002/p57smu_114805_3.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;RAID&amp;nbsp;5:&amp;nbsp;RAID&amp;nbsp;5&amp;nbsp;是最通行的配置方式。它是具有奇偶校验的数据恢复功能的数据存贮方式。在&amp;nbsp;RAID&amp;nbsp;5里，奇偶校验数据块分布于阵列里的各个硬盘中，这样的数据连接会更加顺畅。&amp;nbsp;&lt;br /&gt;如果其中一个硬盘损坏，奇偶校验数据将被用于数据的重建。这是一个很通行的做法。这种方式的缺点是数据的读写时间会相对长些（在写入一组数据时必须完成两次读写操作）。它的容量是&amp;nbsp;N-1,最小必须有三个硬盘。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1002/1i3k45_114805_4.jpg&quot;&gt;&lt;img style=&quot;border-bottom: #999999 1px solid; border-left: #999999 1px solid; border-top: #999999 1px solid; border-right: #999999 1px solid&quot; border=&quot;0&quot; align=&quot;absMiddle&quot; onload=&quot;javascript:if(this.width&amp;gt;document.body.clientWidth-250) {this.height=(document.body.clientWidth-250)*this.height/this.width;this.width=document.body.clientWidth-250}&quot; class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1002/1i3k45_114805_4.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;磁盘阵列术语汇编&lt;br /&gt;&lt;/b&gt;　Array：阵列&lt;/p&gt;&lt;p&gt;　　磁盘阵列模式是把几个磁盘的存储空间整合起来，形成一个大的单一连续的存储空间。NetRAID控制器利用它的SCSI通道可以把多个磁盘组合成一个磁盘阵列。简单的说，阵列就是由多个磁盘组成，并行工作的磁盘系统。需要注意的是作为热备用的磁盘是不能添加到阵列中的。&lt;/p&gt;&lt;p&gt;　　Array&amp;nbsp;Spanning：阵列跨越&lt;/p&gt;&lt;p&gt;　　阵列跨越是把2个，3个或4个磁盘阵列中的存储空间进行再次整合，形成一个具有单一连续存储空间的逻辑驱动器的过程。NetRAID控制器可以跨越连续的几个阵列，但每个阵列必需由相同数量的磁盘组成，并且这几个阵列必需具有相同的RAID级别。就是说，跨越阵列是对已经形成了的几个阵列进行再一次的组合，RAID&amp;nbsp;1，RAID&amp;nbsp;3和RAID&amp;nbsp;5跨越阵列后分别形成了RAID&amp;nbsp;10，RAID&amp;nbsp;30和RAID&amp;nbsp;50。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;　　Cache&amp;nbsp;Policy：高速缓存策略&lt;/p&gt;&lt;p&gt;　　NetRAID控制器具有两种高速缓存策略，分别为Cached&amp;nbsp;I/O（缓存I/O）和Direct&amp;nbsp;I/O（直接I/O）。缓存I/O总是采用读取和写入策略，读取的时候常常是随意的进行缓存。直接I/O在读取新的数据时总是采用直接从磁盘读出的方法，如果一个数据单元被反复地读取，那么将选择一种适中的读取策略，并且读取的数据将被缓存起来。只有当读取的数据重复地被访问时，数据才会进入缓存，而在完全随机读取状态下，是不会有数据进入缓存的。&lt;/p&gt;&lt;p&gt;　　Capacity&amp;nbsp;Expansion：容量扩展&lt;/p&gt;&lt;p&gt;　　在微软的Windows&amp;nbsp;NT，2000或Novell公司的NetWare&amp;nbsp;4.2，5操作系统下，可以在线增加目前卷的容量。在Windows&amp;nbsp;2000或NetWare&amp;nbsp;5系统下，准备在线扩容时，要禁用虚拟容量选项。而在Windows&amp;nbsp;NT或NetWare&amp;nbsp;4.2系统下，要使虚拟容量选项可用才能进行在线扩容。&lt;/p&gt;&lt;p&gt;　　在NetRAID控制器的快速配置工具中，设置虚拟容量选项为可用时，控制器将建立虚拟磁盘空间，然后卷能通过重构把增加的物理磁盘扩展到虚拟空间中去。重构操作只能在单一阵列中的唯一逻辑驱动器上才可以运行，你不能在跨越阵列中使用在线扩容。&lt;/p&gt;&lt;p&gt;　　Channel：通道&lt;/p&gt;&lt;p&gt;　　在两个磁盘控制器之间传送数据和控制信息的电通路。&lt;/p&gt;&lt;p&gt;　　Format：格式化&lt;/p&gt;&lt;p&gt;　　在物理驱动器（硬盘）的所有数据区上写零的操作过程，格式化是一种纯物理操作，同时对硬盘介质做一致性检测，并且标记出不可读和坏的扇区。由于大部分硬盘在出厂时已经格式化过，所以只有在硬盘介质产生错误时才需要进行格式化。&lt;br /&gt;Hot&amp;nbsp;Spare：热备用&lt;/p&gt;&lt;p&gt;　　当一个正在使用的磁盘发生故障后，一个空闲、加电并待机的磁盘将马上代替此故障盘，此方法就是热备用。热备用磁盘上不存储任何的用户数据，最多可以有8个磁盘作为热备用磁盘。一个热备用磁盘可以专属于一个单一的冗余阵列或者它也可以是整个阵列热备用磁盘池中的一部分。而在某个特定的阵列中，只能有一个热备用磁盘。&lt;/p&gt;&lt;p&gt;　　当磁盘发生故障时，控制器的固件能自动的用热备用磁盘代替故障磁盘，并通过算法把原来储存在故障磁盘上的数据重建到热备用磁盘上。数据只能从带有冗余的逻辑驱动器上进行重建（除了RAID&amp;nbsp;0以外），并且热备用磁盘必须有足够多的容量。系统管理员可以更换发生故障的磁盘，并把更换后的磁盘指定为新的热备用磁盘。&lt;/p&gt;&lt;p&gt;　　Hot&amp;nbsp;swap&amp;nbsp;Disk&amp;nbsp;Module：热交换磁盘模式&lt;/p&gt;&lt;p&gt;　　热交换模式允许系统管理员在服务器不断电和不中止网络服务的情况下更换发生故障的磁盘驱动器。由于所有的供电和电缆连线都集成在服务器的底板上，所以热交换模式可以直接把磁盘从驱动器笼子的插槽中拔除，操作非常简单。然后把替换的热交换磁盘插入到插槽中即可。热交换技术仅仅在RAID&amp;nbsp;1，3，5，10，30和50的配置情况下才可以工作。&lt;/p&gt;&lt;p&gt;　　I2O（Intelligent&amp;nbsp;Input/Output）：智能输入输出&lt;/p&gt;&lt;p&gt;　　智能输入输出是一种工业标准，输入输出子系统的体系结构完全独立于网络操作系统，并不需要外部设备的支持。I2O使用的驱动程序可以分为操作系统服务模块（operating&amp;nbsp;system&amp;nbsp;services&amp;nbsp;module，OSMs）和硬件驱动模块（hardware&amp;nbsp;device&amp;nbsp;modules，HDMs）。&lt;/p&gt;&lt;p&gt;　　Initialization：初始化&lt;/p&gt;&lt;p&gt;　　在逻辑驱动器的数据区上写零的操作过程，并且生成相应的奇偶位，使逻辑驱动器处于就绪状态。初始化将删除以前的数据并产生奇偶校验，所以逻辑驱动器在此过程中将一并进行一致性检测。没有经过初始化的阵列是不能使用的，因为还没有生成奇偶区，阵列会产生一致性检测错误。&lt;/p&gt;&lt;p&gt;　　IOP（I/O&amp;nbsp;Processor）：输入输出处理器&lt;/p&gt;&lt;p&gt;　　输入输出处理器是NetRAID控制器的指令中心，实现包括命令处理，PCI和SCSI总线的数据传输，RAID的处理，磁盘驱动器重建，高速缓存的管理和错误恢复等功能。&lt;/p&gt;&lt;p&gt;　　Logical&amp;nbsp;Drive：逻辑驱动器&lt;/p&gt;&lt;p&gt;　　阵列中的虚拟驱动器，它可以占用一个以上的物理磁盘。逻辑驱动器把阵列或跨越阵列中的磁盘分割成了连续的存储空间，而这些存储空间分布在阵列中的所有磁盘上。NetRAID控制器能设置最多8个不同容量大小的逻辑驱动器，而每个阵列中至少要设置一个逻辑驱动器。输入输出操作只能在逻辑驱动器处于在线的状态下才运行。&lt;/p&gt;&lt;p&gt;　　Logical&amp;nbsp;Volume：逻辑卷&lt;/p&gt;&lt;p&gt;　　由逻辑磁盘形成的虚拟盘，也可称为磁盘分区。&lt;/p&gt;&lt;p&gt;　　Mirroring：镜像&lt;/p&gt;&lt;p&gt;　　冗余的一种类型，一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。RAID&amp;nbsp;1和RAID&amp;nbsp;10使用的就是镜像。&lt;br /&gt;Parity：奇偶校验位&lt;/p&gt;&lt;p&gt;　　在数据存储和传输中，字节中额外增加一个比特位，用来检验错误。它常常是从两个或更多的原始数据中产生一个冗余数据，冗余数据可以从一个原始数据中进行重建。不过，奇偶校验数据并不是对原始数据的完全复制。&lt;/p&gt;&lt;p&gt;　　在RAID中，这种方法可以应用到阵列中的所有磁盘驱动器上。奇偶校验位还可以组成专用的奇偶校验方式，在专用奇偶校验中，奇偶校验数据可分布在系统中所有的磁盘上。如果一个磁盘发生故障，可以通过其它磁盘上的数据和奇偶校验数据重建出这个故障磁盘上的数据。&lt;/p&gt;&lt;p&gt;　　Power&amp;nbsp;Fail&amp;nbsp;Safeguard：掉电保护&lt;/p&gt;&lt;p&gt;　　当此项设置为可用时，在重构过程中（非重建），所有的数据将一直保存在磁盘上，直到重构完成后才删除。这样如果在重构过程中发生掉电，将不会发生数据丢失的危险情况。&lt;/p&gt;&lt;p&gt;　　RAID：独立冗余磁盘阵列&lt;/p&gt;&lt;p&gt;　　独立冗余磁盘阵列最初叫做廉价冗余磁盘阵列（Redundant&amp;nbsp;Array&amp;nbsp;of&amp;nbsp;Inexpensive&amp;nbsp;Disks），它是由多个小容量、独立的硬盘组成的阵列，而阵列综合的性能可以超过单一昂贵大容量硬盘（SLED）的性能。由于是对多个磁盘并行操作，所以RAID磁盘子系统与单一磁盘相比它的输入输出性能得到了提高。服务器会把RAID阵列看成一个单一的存储单元，并对几个磁盘同时访问，所以提高了输入输出的速率。&lt;/p&gt;&lt;p&gt;　　RAID&amp;nbsp;Levels：RAID级别&lt;/p&gt;&lt;p&gt;　　RAID级别为不同冗余类型在逻辑驱动器上的应用。它可以提高逻辑驱动器的故障容许度和性能，但也会减少逻辑驱动器的可用容量，每个逻辑驱动器都必须指定一个RAID级别。&lt;/p&gt;&lt;p&gt;　　RAID&amp;nbsp;1，3和5的逻辑驱动器使用了单一的阵列，附表1描述了它们的具体情况。简单地说，RAID&amp;nbsp;0是没有冗余，它可由一个或多个物理驱动器组成；RAID&amp;nbsp;1是镜像冗余，它在一个阵列中需要两个物理驱动器；RAID&amp;nbsp;3为专用奇偶校验冗余，即所有的冗余数据都存储在一个专用的磁盘上，一个阵列至少由三个物理驱动器组成；RAID&amp;nbsp;5为分散奇偶校验冗余，即阵列中的冗余数据分散存储在阵列中所有磁盘上，它的一个阵列中至少需要三个物理驱动器。&lt;/p&gt;&lt;p&gt;　　RAID&amp;nbsp;10，30和50是逻辑驱动器跨越阵列而组成的。附表2描述了跨越磁盘阵列的情况。&lt;/p&gt;&lt;p&gt;　　Read&amp;nbsp;Policy：读取策略&lt;/p&gt;&lt;p&gt;　　NetRAID控制器提供了三种读取策略，分别为Read-Ahead（预读），Normal（标准）和Adaptive（适中）。&lt;/p&gt;&lt;p&gt;　　预读是在运行中，控制器不断的提前读取未被请求的数据，把它存储在内存中，并期望这些数据能被使用。预读可以更快的提供连续数据，当访问的是随机数据时效果就不佳了。&lt;/p&gt;&lt;p&gt;　　标准策略不使用预读的方法，当读取的数据大部分为随机数据时，这个策略是最有效的。&lt;/p&gt;&lt;p&gt;　　适中策略是当访问的最后两个磁盘上的数据存储在连续扇区上时，将采用预读的方法。&lt;/p&gt;&lt;p&gt;　　Ready&amp;nbsp;State：就绪状态&lt;/p&gt;&lt;p&gt;　　就绪状态是一个可用的硬盘，它即不在线也不是热备用盘，并可以添加到任一个阵列中或者指定为热备用盘的这种硬盘状态。&lt;br /&gt;　　Rebuild：重建&lt;/p&gt;&lt;p&gt;　　在RAID&amp;nbsp;1，3，5，10，30或50阵列中把一个故障盘上的所有数据再生到替换磁盘上的过程。磁盘重建过程中逻辑驱动器通常不会中断对其数据的访问请求。&lt;/p&gt;&lt;p&gt;　　Rebuild&amp;nbsp;Rate：重建率&lt;/p&gt;&lt;p&gt;　　重建操作过程的速度。每个控制器都分配了重建率，它反映的是在重建操作中IOP资源使用的百分比。&lt;/p&gt;&lt;p&gt;　　Reconstruct：重构&lt;/p&gt;&lt;p&gt;　　在改变RAID级别后，对逻辑驱动器上的数据重新整理的过程。&lt;/p&gt;&lt;p&gt;　　SCSI&amp;nbsp;Disk&amp;nbsp;Status：SCSI磁盘状态&lt;/p&gt;&lt;p&gt;　　SCSI磁盘（物理驱动器）可以有以下五种状态，分别为Ready（就绪），未配置的加电可操作磁盘；Online（在线），配置过的加电可操作磁盘；Hot&amp;nbsp;Spare（热备用），当一个磁盘出现故障时，准备使用的加电待用磁盘；Failed（故障），磁盘发生错误导致失效或用户利用NetRAID控制器实用程序使驱动器脱机的状态；Rebuilding（重建），磁盘正处于从一个或几个关键性逻辑驱动器上恢复数据的过程中。&lt;/p&gt;&lt;p&gt;　　Stripe&amp;nbsp;Size：条带容量&lt;/p&gt;&lt;p&gt;　　在每个磁盘上连续写入数据的总量，也称作“条带深度”。你可以指定每个逻辑驱动器的条带容量从2KB，4KB，8KB一直到128KB。为了获得更高的性能，要选择条带的容量等于或小于操作系统的簇的大小。大容量的条带会产生更高的读取性能，尤其在读取连续数据的时候。而读取随机数据的时候，最好设定条带的容量小一点。如果指定128KB的条带将需要8MB内存。&lt;/p&gt;&lt;p&gt;　　Striping：条带化&lt;/p&gt;&lt;p&gt;　　条带化是把连续的数据分割成相同大小的数据块，把每段数据分别写入到阵列中不同磁盘上的方法。此技术非常有用，它比单个磁盘所能提供的读写速度要快的多，当数据从第一个磁盘上传输完后，第二个磁盘就能确定下一段数据。数据条带化正在一些现代数据库和某些RAID硬件设备中得到广泛应用。&lt;/p&gt;&lt;p&gt;　　Virtual&amp;nbsp;Sizing：虚拟容量&lt;/p&gt;&lt;p&gt;　　当此设置生效后，对一个逻辑驱动器来说，控制器将报告逻辑驱动器的容量比实际的物理容量要大的多。“虚拟”空间可以允许在线扩容。&lt;/p&gt;&lt;p&gt;　　Write&amp;nbsp;policy：写入策略&lt;/p&gt;&lt;p&gt;　　当处理器向磁盘上写入数据的时候，数据先被写入高速缓存中，并认为处理器有可能马上再次读取它。NetRAID有两种如下的写入策略：&lt;/p&gt;&lt;p&gt;　　Write&amp;nbsp;Back（回写），在回写状态下，数据只有在要被从高速缓存中清除时才写到磁盘上。随着主存读取的数据增加，回写需要开始从高速缓存中向磁盘上写数据，并把更新的数据写入高速缓存中。由于一个数据可能会被写入高速缓存中许多次，而没有进行磁盘存取，所以回写的效率非常高。&lt;/p&gt;&lt;p&gt;　　Write&amp;nbsp;Through（完全写入），在完全写入状态下，数据在输入到高速缓存时，它同时也被写到磁盘上。因为数据已经复制到磁盘上，所以在高速缓存中可以直接更改要替换的数据，因此完全写入要比回写简单的多。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;存储技术&amp;nbsp;&amp;gt;&amp;nbsp;磁盘镜像&lt;br /&gt;磁盘镜像是一个简单形式的设备虚拟化技术，产生的每个I&amp;nbsp;/&amp;nbsp;O操作都在两个磁盘上执行，&lt;br /&gt;而两个磁盘看起来就像一个磁盘一样。磁盘镜像也称R&amp;nbsp;A&amp;nbsp;I&amp;nbsp;D&amp;nbsp;1。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;存储技术&amp;nbsp;&amp;gt;&amp;nbsp;存储区域网络（&amp;nbsp;S&amp;nbsp;A&amp;nbsp;N）&lt;br /&gt;存储区域网络（&amp;nbsp;S&amp;nbsp;A&amp;nbsp;N）是一种专用网络，可以把一个或多个系统连接到存储设备和子系统，&lt;br /&gt;S&amp;nbsp;A&amp;nbsp;N可以被看作是负责存储传输的“后端”网络，而“前端”网络(或称数据网络)负责正常的&lt;br /&gt;T&amp;nbsp;C&amp;nbsp;P&amp;nbsp;/&amp;nbsp;I&amp;nbsp;P传输。&lt;/p&gt;&lt;p&gt;存储技术&amp;nbsp;&amp;gt;&amp;nbsp;网络连接存储（&amp;nbsp;N&amp;nbsp;A&amp;nbsp;S）&lt;br /&gt;网络连接存储（&amp;nbsp;N&amp;nbsp;A&amp;nbsp;S），表示总控的网络存储服务器产品。典型的N&amp;nbsp;A&amp;nbsp;S都连接到普通的网络&lt;br /&gt;上，通常是以太网，提供带有预先配置好的磁盘容量和存储管理软件的集成系统，构成一个完&lt;br /&gt;备的存储解决方案。&lt;/p&gt;&lt;p&gt;如何设置SCSI&amp;nbsp;BIOS&amp;nbsp;&lt;br /&gt;第一次进入SCSI&amp;nbsp;BIOS的设置画面，你一定会被这些繁杂又似懂非懂的各种选项搞到一头雾水；不过别害怕，接下来我们将为你仔细解说SCSI&amp;nbsp;BIOS中的每项设置，并说明其用途、设置后的效果。虽然SCSI的厂牌不胜枚举，但是SCSI&amp;nbsp;BIOS的设置却大同小异，在此，我们以Adaptec&amp;nbsp;AHA-2940U/UW的SCSI&amp;nbsp;BIOS&amp;nbsp;V1.32来说明。&amp;nbsp;&lt;br /&gt;　　请直接执行&amp;quot;Configure/View&amp;nbsp;Host&amp;nbsp;Adaptec&amp;nbsp;Setting&amp;quot;命令：&lt;br /&gt;　　SCSI&amp;nbsp;Bus&amp;nbsp;Interface&amp;nbsp;Definitions&amp;nbsp;&lt;br /&gt;　　此项目的功能主要用来设置SCSI接口卡本身的各种定义，此处有三项设置：&amp;nbsp;&lt;br /&gt;　　Host&amp;nbsp;Adaptec&amp;nbsp;SCSI&amp;nbsp;ID：在此设置SCSI&amp;nbsp;接口卡&amp;nbsp;本身的ID编号（这张卡可设置0~15）。默认值为7。一般强烈建议不要更动此默认值。&amp;nbsp;&lt;br /&gt;　　SCSI&amp;nbsp;Parity&amp;nbsp;Checking：SCSI设置在传输数据时的&amp;quot;同位检查&amp;quot;，可以选择Enable（开启）或是Disabled（关闭）。若是开启此项，可以确认数据传输的正确性。强烈建议开启此项，除非连接SCSI的外设不支持同位检查的功能。&amp;nbsp;&lt;br /&gt;　　Host&amp;nbsp;Adaptec&amp;nbsp;SCSI&amp;nbsp;Termination：在此设置SCSI接口卡本身的终端电阻，可以选择Automatic、Enable或是Disable。如果只有外接设备或仅有内接设备的话，必须设置为Enable；若内、外接设备都有的话，则要设置为Disable。如果你经常变动SCSI的内、外接方式，建议选择Automatic，这样可以自动检测Termination是否需要开启或关闭。&amp;nbsp;&lt;br /&gt;　　Additional&amp;nbsp;Options&amp;nbsp;&lt;br /&gt;　　此项虽然被称为&amp;quot;附加&amp;quot;但却是整个SCSI&amp;nbsp;BIOS设置的核心。例如设置启动设备、同步与异步、最大传输速率、SCAM的PnP支持、CD-ROM启动等等，这么多的设置可能有点繁杂，不过你只要跟着我们的说明，相信可以了解得相当透彻。&amp;nbsp;&lt;br /&gt;　　Boot&amp;nbsp;Device&amp;nbsp;Options：这里主要在设置以哪一个ID做为启动设备。一般设置可应用于SCSI硬盘（包括抽取式硬盘）或是MO、CD-ROM等，不过设置后仍然需要将主板System&amp;nbsp;BIOS的启动顺序调为SCSI优先才行。如果在SCSI&amp;nbsp;Device&amp;nbsp;Configuration中将BIOS&amp;nbsp;Multiple&amp;nbsp;LUN&amp;nbsp;Support设为no，则此项更动后不会有作用。如果你的SCSI硬盘为ID-0，并安装了操作系统，这时候可以利用以上的设置方式，将ID-0设为启动设备。&amp;nbsp;&lt;br /&gt;　　SCSI&amp;nbsp;Device&amp;nbsp;Configuration：此菜单的功能，主要是在设置各SCSI外围设备的独立选项，你可以让每个ID的外设具有不同的参数设置。例如：将ID-5的最大传输速率设为40MB/sec，另外将ID-0设为20MB/sec，这样一来，两台外设可独立以不同最大传输率来进行数据传送，而不会造成SCSI&amp;nbsp;Bus的不稳定。若是将Advanced&amp;nbsp;Configuration&amp;nbsp;Options中的Host&amp;nbsp;Adapter&amp;nbsp;BIOS设为Disable，这些选项设置后不会产生效果。&amp;nbsp;&lt;br /&gt;　　Initiate&amp;nbsp;Sync&amp;nbsp;Negotiation：使用同步传输沟通，可以选择Yes或No。如果选择Yes，则SCSI接口卡与SCSI外围设备的数据传输会尝试以&amp;quot;同步&amp;quot;的方式进行，如此一来可以加速数据的传输效率；若选择No，则关闭此项功能。一般建议除非外围设备不支持此项功能，请务必将此项设置为Yes。&amp;nbsp;&lt;br /&gt;　　Maximum&amp;nbsp;Sync&amp;nbsp;Transfer&amp;nbsp;Rate：在次设置SCSI接口卡与各外设个别的最大同步传输速率。一般建议你在此将最大传输速率调为&amp;quot;最大值&amp;quot;，即使外设无法支持，也会自动调整为可以到达的最大速率；若是外设无法将其最大同步传输速率回应给SCSI接口卡，在使用上可能会发生问题。比方说，如果使用SCSI-3规格的接口卡，而外设属于SCSI-2规格的话，一般建议将此外设的最大传输速率手动调为10MB/sec。以下是各种SCSI接口卡BIOS可以调整同步传输速率的最大值。&amp;nbsp;&lt;br /&gt;SCSI接口规格&amp;nbsp;SCSI-2&amp;nbsp;Ultra-SCSI&amp;nbsp;Ultra-Wide&amp;nbsp;SCSI&amp;nbsp;Ultra2-Wide&amp;nbsp;LVD/SE&amp;nbsp;&lt;br /&gt;可调整的最大同步传输速率&amp;nbsp;10MB/sec&amp;nbsp;20MB/sec&amp;nbsp;40MB/sec&amp;nbsp;80MB/sec&amp;nbsp;&lt;br /&gt;　　Enable&amp;nbsp;Disconnection：允许SCSI接口卡可以临时中断与SCSI卡外设的连接状态，以释放更宽裕的SCSI通道来服务连接其他的SCSI外设。如果你要以&amp;quot;多任务&amp;quot;的方式在多台SCSI外设上工作，使用此功能可以提升多任务的效能。如果你有两台以上的SCSI设备，请务必将此项目设为Yes；若是只有一台SCSI外围设备，可以不需要开启此功能，请设为No。&amp;nbsp;&lt;br /&gt;　　Initiate&amp;nbsp;Wide&amp;nbsp;Negotiaion：设置宽频传输沟通。如果设为Yes，则SCSI外设与SCSI接口设置之间以16-Bit宽通道传输数据；若设为No，则以8-Bit传输数据。如果你SCSI外设的规格属于Wide-SCSI系列（接脚为68-Pins，16-bit），请将此项设置为Yes，否则将以8-Bit的宽频传输；若是外围设备为SCSI-2、Ultra&amp;nbsp;SCSI（接脚为50-Pins，8-Bit），建议调为No，否则可能会产生读取上的问题。&amp;nbsp;&lt;br /&gt;　　Send&amp;nbsp;Start&amp;nbsp;Unit&amp;nbsp;Command：设置送出启动命令。有些SCSI外设需要借助由SCSI接口卡送出启动命令，马达才能开始运转，请参考你SCSI外设的说明书。一般建议将此设为No，如果你的外围设备的确需要送出启动命令才能启动的话，请将此项设为Yes。&amp;nbsp;&lt;br /&gt;　　BIOS&amp;nbsp;Multiple&amp;nbsp;LUN&amp;nbsp;Support：设置SCSI接口卡是否支持&amp;quot;多重逻辑单元编号&amp;quot;（LUN，Logical&amp;nbsp;Unit&amp;nbsp;Numbers）。如果你的外围设备有支持多个LUN，可以将此项设为Yes；如果没有这样的外设，请设为No。外设具有多个LUN时，可以在Boot&amp;nbsp;Device&amp;nbsp;Options中的Boot&amp;nbsp;LUN&amp;nbsp;Number项目，设置要以哪个LUN来启动。&amp;nbsp;&lt;br /&gt;　　Include&amp;nbsp;in&amp;nbsp;BIOS&amp;nbsp;Scan：此项如果设为Yes，在启动时SCSI&amp;nbsp;BIOS会扫描此外围设备，并由BIOS&amp;nbsp;INT13延伸功能来控制他。例如，如果你的SCSI外设为硬盘，当此项设为Yes时，SCSI&amp;nbsp;BIOS会在屏幕上显示&amp;quot;SCSI&amp;nbsp;BIOS&amp;nbsp;Installed&amp;nbsp;Successfully！&amp;quot;，并使用SCSI接口卡的BIOS&amp;nbsp;INT13扩展功能控制SCSI硬盘，而不需要额外的驱动程序；若是设为No，启动时虽然还是会检测到SCSI硬盘，但SCSI&amp;nbsp;BIOS会显示&amp;quot;SCSI&amp;nbsp;BIOSNOT&amp;nbsp;INSTALLED&amp;quot;，这时候硬盘便不在BIOS&amp;nbsp;INT13延伸功能的管理范围，你自然无法在操作系统中看到这块SCSI硬盘咯。&amp;nbsp;&lt;br /&gt;　　Advanced&amp;nbsp;Configuration&amp;nbsp;Options：接着我们为你介绍SCSI&amp;nbsp;BIOS的高级功能设置。请先退回SCSI&amp;nbsp;BIOS的Configuration画面，接着做进入该项选项。&amp;nbsp;&lt;br /&gt;　　Reset&amp;nbsp;SCSI&amp;nbsp;Bus&amp;nbsp;at&amp;nbsp;IC&amp;nbsp;Initialization：如果此项设为Enabled，每当计算机的电源重新开启时，SCSI通道内的信号便会跟着重置（Reset），如此一来可以让SCSI接口卡以最&amp;quot;初始&amp;quot;的状态与所有外围设备连接。例如当你的SCSI&amp;nbsp;CD-ROM爱读取上发生问题，又无法退出光盘时，若是重新启动计算机，SCSI通道中阻塞的信号便会自动清除，恢复成初始的连接状态，这时光盘就能顺利退出来啦！&amp;nbsp;&lt;br /&gt;　　Extended&amp;nbsp;BIOS&amp;nbsp;Translation&amp;nbsp;for&amp;nbsp;Dos&amp;nbsp;Drives&amp;gt;1&amp;nbsp;Gbyte：在此设置是否在DOS的环境下支持1GB以上的硬盘，默认值为Enable，一般建议不要更动。&amp;nbsp;&lt;br /&gt;　　Host&amp;nbsp;Adapter&amp;nbsp;BIOS（Configuration&amp;nbsp;Utility&amp;nbsp;Reserves&amp;nbsp;BIOS&amp;nbsp;Space）：如果你的SCSI外设硬盘，而且需要用SCSI硬盘来启动，请将此选项设为Enable；若SCSI外设只有CD-ROM、扫描仪等，你可以设为Disable。&amp;nbsp;&lt;br /&gt;　　Support&amp;nbsp;Removable&amp;nbsp;Disks&amp;nbsp;Under&amp;nbsp;BIOS&amp;nbsp;as&amp;nbsp;Fixed&amp;nbsp;Disks：此选项特别针对MO或是抽取式硬盘而设置。如果设为Boot&amp;nbsp;Only，则只将启动盘（以MO或抽取式硬盘启动）当成硬盘使用；若设为All&amp;nbsp;Disks，则所有MO或抽取式都可当成硬盘使用；如设为Disabled，则MO恢复为抽取式储存装置。要注意的一点是，在启动前务必先将MO片放如MO机器中；一旦将MO硬盘使用，在连接的状态下若将MO片退出，将造成数据的丢失。&lt;br /&gt;　　Display&amp;nbsp;Message&amp;nbsp;During&amp;nbsp;BIOS&amp;nbsp;Initialization：此项若设为Enabled，则启动时SCSI&amp;nbsp;BIOS会在屏幕上显示Press&amp;nbsp;for&amp;nbsp;SCSI&amp;nbsp;Select（TM）Utility！，提示你依照这个方法来进入SCSI&amp;nbsp;BIOS设置菜单。如果设置为Disable则不会显示这一行提示，但你开始可以借由Ctrl+A键来斤年日微&amp;nbsp;SCSI&amp;nbsp;BIOS菜单。&lt;br /&gt;　　BIOS&amp;nbsp;Support&amp;nbsp;VFOR&amp;nbsp;Bootable&amp;nbsp;CD-ROM：如果此项设为Enable，你可以将可启动的光盘片放入SCSI光驱中，使用SCSI光驱来启动。&amp;nbsp;&lt;br /&gt;　　BIOS&amp;nbsp;Support&amp;nbsp;for&amp;nbsp;INT13&amp;nbsp;Extensions：DOS或是旧版本的Windows95只支持传统的INT13H磁盘控制中断，而且最大只支持到1024柱面（Cylinder）。若是你安装了Windows95&amp;nbsp;OSR2或Windows98的操作系统，便支持了新的INT13&amp;nbsp;Extensions的扩展功能，这时候可以管理容量8GB以上的磁盘（也就是&amp;gt;1024Cylinder的磁盘），但是先决条件请你将此项设为Enable，这样以来你的操作系统才能管理超过8GB的硬盘。&amp;nbsp;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/408.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/408/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/408.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/408/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/407.aspx</link>
		<title>mysql slave延时同步</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>数据库技术</category>
		<pubDate>Thu, 28 Jan 2010 07:28:33 GMT</pubDate>
		<description>&lt;h1&gt;dlslaved 0.1&lt;/h1&gt;&lt;h2&gt;(Delayed Slave Daemon for MySQL)&lt;/h2&gt;&lt;b&gt;dlslaved&lt;/b&gt;&lt;p&gt;allows delayed replication for MySQL databases.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The&lt;/p&gt;&lt;b&gt;dlslaved&lt;/b&gt;&lt;p&gt;syntax is really simple :&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;gt; dlslaved -h ipAddress -u username -p password -P portNumber&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;11/06/2007&lt;/b&gt; : initial release&lt;/li&gt; 	Well, it&apos;s done. I finally put the source code on Internet. So, be  gentle. It&apos;s my first 	unix program.&lt;br /&gt; 	 	The internal architecture of &lt;b&gt;dlslaved&lt;/b&gt; is very simple. It uses  the &lt;i&gt;SecondsBehindMaster&lt;/i&gt; 	MySQL internal variable, and the &lt;i&gt;STOP&lt;/i&gt; and &lt;i&gt;START&lt;/i&gt; slave  command to try to have 7200 seconds (a constant 	in the program) constantly behind the master.&lt;br /&gt; 	Try it, use it, send back errors and source modifications.&lt;br /&gt;&lt;br /&gt; 	It compiles under Linux and Solaris (x86 and Sparc) using gcc.&lt;br /&gt;&lt;br /&gt; 	Download &lt;a title=&quot;dlslaved user&apos;s manual&quot; href=&quot;http://rodolphe.jouannet.free.fr/dlslaved.pdf&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;dlslaved&lt;/b&gt; user&apos;s manual&lt;/a&gt; (a PDF  file). 	&lt;br /&gt; 	Download &lt;a title=&quot;dlslaved source code&quot; href=&quot;http://rodolphe.jouannet.free.fr/dlslaved.tar.gz&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;dlslaved&lt;/b&gt; source code&lt;/a&gt; 	for Linux and Solaris (i think most Unix like systems). To compile, you  need MySQL binaries and libraries 	to be install in &lt;code&gt;/usr/local/mysql&lt;/code&gt; directory.&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt; Contact me at rodolphe.jouannet(at)free.fr for support or questions.&lt;/p&gt;&lt;p&gt;根据上述思路，写一shell来实现相同的操作：&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-xml&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;#&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;#&amp;nbsp;监控mysql&amp;nbsp;slave状态，实现slave延时&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;#&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;INTERVAL&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;1800&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;#&lt;span class=&quot;attribute&quot;&gt;CURPATH&lt;/span&gt;&lt;span&gt;=$(pwd)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;CURPATH&lt;/span&gt;&lt;span&gt;=/home/adminshell&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;AUTH&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&apos;-uroot&amp;nbsp;-ppassword&apos;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;SLAVE_IO&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;Slave_IO_Running:&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;SLAVE_SQL&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;Slave_SQL_Running:&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;SHOW_SLAVE_STATUS&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;show&amp;nbsp;slave&amp;nbsp;status\G&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;START_SLAVE&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;start&amp;nbsp;slave&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;STOP_SLAVE&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;stop&amp;nbsp;slave&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;MYSQL&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;$(which&amp;nbsp;mysql)&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;if&amp;nbsp;[&amp;nbsp;$?&amp;nbsp;-ge&amp;nbsp;1&amp;nbsp;]&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;then&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;attribute&quot;&gt;MYSQL&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;/usr/local/mysql/bin/mysql&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;fi&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;attribute&quot;&gt;PIDOF&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;$(which&amp;nbsp;pidof)&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;if&amp;nbsp;[&amp;nbsp;$?&amp;nbsp;-ge&amp;nbsp;1&amp;nbsp;]&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;then&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;attribute&quot;&gt;PIDOF&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;/sbin/pidof&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;fi&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;while&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;do&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;attribute&quot;&gt;TIMESTAMP_TODAY&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;$(date&amp;nbsp;+%Y%m%d)&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;attribute&quot;&gt;LOGFILE&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;${CURPATH}/mysql_slave_delay_${TIMESTAMP_TODAY}.log&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;[`date&amp;nbsp;+%c`]&amp;nbsp;mysqld&amp;nbsp;process&amp;nbsp;check&amp;quot;&amp;nbsp;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;$LOGFILE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;attribute&quot;&gt;MYSQLDPID&lt;/span&gt;&lt;span&gt;=$($PIDOF&amp;nbsp;mysqld)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[&amp;nbsp;-z&amp;nbsp;$MYSQLDPID&amp;nbsp;];then&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;mysqld&amp;nbsp;is&amp;nbsp;not&amp;nbsp;started!&amp;quot;&amp;nbsp;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;$LOGFILE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;[`date&amp;nbsp;+%c`]&amp;nbsp;mysqld&amp;nbsp;is&amp;nbsp;running&amp;quot;&amp;nbsp;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;$LOGFILE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;[`date&amp;nbsp;+%c`]&amp;nbsp;mysql&amp;nbsp;slave&amp;nbsp;status&amp;nbsp;check&amp;quot;&amp;nbsp;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;$LOGFILE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;attribute&quot;&gt;SLAVE_IO_STATUS&lt;/span&gt;&lt;span&gt;=$($MYSQL&amp;nbsp;$AUTH&amp;nbsp;-Bse&amp;nbsp;&amp;quot;$SHOW_SLAVE_STATUS&amp;quot;&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;$SLAVE_IO&amp;nbsp;|&amp;nbsp;awk&amp;nbsp;&apos;{&amp;nbsp;print&amp;nbsp;$2&amp;nbsp;}&apos;)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;attribute&quot;&gt;SLAVE_SQL_STATUS&lt;/span&gt;&lt;span&gt;=$($MYSQL&amp;nbsp;$AUTH&amp;nbsp;-Bse&amp;nbsp;&amp;quot;$SHOW_SLAVE_STATUS&amp;quot;&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;$SLAVE_SQL&amp;nbsp;|&amp;nbsp;awk&amp;nbsp;&apos;{&amp;nbsp;print&amp;nbsp;$2&amp;nbsp;}&apos;)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[&amp;nbsp;&amp;quot;$SLAVE_IO_STATUS&amp;quot;&amp;nbsp;=&amp;nbsp;&amp;quot;Yes&amp;quot;&amp;nbsp;-a&amp;nbsp;&amp;quot;$SLAVE_SQL_STATUS&amp;quot;&amp;nbsp;=&amp;nbsp;&amp;quot;Yes&amp;quot;&amp;nbsp;];then&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;[`date&amp;nbsp;+%c`]&amp;nbsp;mysql&amp;nbsp;slave&amp;nbsp;is&amp;nbsp;running,stop&amp;nbsp;it&amp;quot;&amp;nbsp;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;$LOGFILE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$MYSQL&amp;nbsp;$AUTH&amp;nbsp;-Bse&amp;nbsp;&amp;quot;$STOP_SLAVE&amp;quot;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;[`date&amp;nbsp;+%c`]&amp;nbsp;mysql&amp;nbsp;slave&amp;nbsp;is&amp;nbsp;not&amp;nbsp;running,start&amp;nbsp;it&amp;quot;&amp;nbsp;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;$LOGFILE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$MYSQL&amp;nbsp;$AUTH&amp;nbsp;-Bse&amp;nbsp;&amp;quot;$START_SLAVE&amp;quot;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;[`date&amp;nbsp;+%c`]&amp;nbsp;****************************************************&amp;quot;&amp;nbsp;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;$LOGFILE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sleep&amp;nbsp;${INTERVAL}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;done&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;</description>
		<guid>http://www.517sou.net/Article/407.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/407/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/407.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/407/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/406.aspx</link>
		<title>Awk学习笔记</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>技术文摘</category>
		<pubDate>Wed, 27 Jan 2010 06:43:55 GMT</pubDate>
		<description>&lt;div lang=&quot;en&quot; class=&quot;article&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h1 class=&quot;title&quot;&gt;Awk学习笔记&lt;/h1&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;author&quot;&gt;&lt;h3 class=&quot;author&quot;&gt;&lt;span class=&quot;firstname&quot;&gt;整理：Jims of &lt;a href=&quot;http://www.ringkee.com/&quot; target=&quot;_blank&quot;&gt;肥肥世家&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div class=&quot;affiliation&quot;&gt;&lt;div class=&quot;address&quot;&gt;&lt;p&gt;&lt;tt class=&quot;email&quot;&gt;&amp;lt;&lt;a href=&quot;mailto:jims.yang@gmail.com&quot;&gt;jims.yang@gmail.com&lt;/a&gt;&amp;gt;&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p class=&quot;copyright&quot;&gt;Copyright © 2004 本文遵从GPL协议，欢迎转载、修改、散布。&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p class=&quot;pubdate&quot;&gt;第一次发布时间:2004年8月6日&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div class=&quot;toc&quot;&gt;&lt;p&gt;&lt;b&gt;Table of Contents&lt;/b&gt;&lt;/p&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2874788&quot; target=&quot;_blank&quot;&gt;1. awk简介&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2875182&quot; target=&quot;_blank&quot;&gt;2.  awk命令格式和选项&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2875104&quot; target=&quot;_blank&quot;&gt;2.1. awk的语法有两种形式&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2811790&quot; target=&quot;_blank&quot;&gt;2.2.  命令选项&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2810094&quot; target=&quot;_blank&quot;&gt;3. 模式和操作&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2810128&quot; target=&quot;_blank&quot;&gt;3.1.  模式&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2810236&quot; target=&quot;_blank&quot;&gt;3.2. 操作&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2810288&quot; target=&quot;_blank&quot;&gt;4.  awk的环境变量&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861410&quot; target=&quot;_blank&quot;&gt;5. awk运算符&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861636&quot; target=&quot;_blank&quot;&gt;6.  记录和域&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861644&quot; target=&quot;_blank&quot;&gt;6.1. 记录&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861680&quot; target=&quot;_blank&quot;&gt;6.2.  域&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861697&quot; target=&quot;_blank&quot;&gt;6.3. 域分隔符&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861728&quot; target=&quot;_blank&quot;&gt;7.  gawk专用正则表达式元字符&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861902&quot; target=&quot;_blank&quot;&gt;8. POSIX字符集&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861922&quot; target=&quot;_blank&quot;&gt;9.  匹配操作符(~)&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861937&quot; target=&quot;_blank&quot;&gt;10. 比较表达式&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861975&quot; target=&quot;_blank&quot;&gt;11.  范围模板&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2861992&quot; target=&quot;_blank&quot;&gt;12.  一个验证passwd文件有效性的例子&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2808705&quot; target=&quot;_blank&quot;&gt;13. 几个实例&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2808824&quot; target=&quot;_blank&quot;&gt;14.  awk编程&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2808832&quot; target=&quot;_blank&quot;&gt;14.1. 变量&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2808925&quot; target=&quot;_blank&quot;&gt;14.2.  BEGIN模块&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2808950&quot; target=&quot;_blank&quot;&gt;14.3. END模块&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2808971&quot; target=&quot;_blank&quot;&gt;14.4.  重定向和管道&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2809145&quot; target=&quot;_blank&quot;&gt;14.5. 条件语句&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2809263&quot; target=&quot;_blank&quot;&gt;14.6.  循环&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2809375&quot; target=&quot;_blank&quot;&gt;14.7. 数组&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class=&quot;sect2&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2809497&quot; target=&quot;_blank&quot;&gt;14.8.  awk的内建函数&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;sect1&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#id2876387&quot; target=&quot;_blank&quot;&gt;15. How-to&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;1.&amp;nbsp;awk简介&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;awk  是一种编程语言，用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件，或其它命令的输出。它支持用户自定义函数和 动态正则表达式等先进功能，是linux/unix下的一个强大编程工具。它在命令行中使用，但更多是作为脚本来使用。awk的处理文本和数据的方式是这 样的，它逐行扫描文件，从第一行到最后一行，寻找匹配的特定模式的行，并在这些行上进行你想要的操作。如果没有指定处理动作，则把匹配的行显示到标准输出 (屏幕)，如果没有指定模式，则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人，分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本，它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的，在 linux系统中已把awk链接到gawk，所以下面全部以awk进行介绍。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;2.&amp;nbsp;awk命令格式和选项&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;2.1.&amp;nbsp;awk的语法有两种形式&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;awk [options] &apos;script&apos;  var=value file(s)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;awk [options] -f scriptfile var=value  file(s)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;2.2.&amp;nbsp;命 令选项&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;variablelist&quot;&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-F fs or --field-separator fs&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;指定输入文件折分隔 符，fs是一个字符串或者是一个正则表达式，如-F:。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-v var=value  or --asign var=value&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;赋值一个用户定义变量。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-f scripfile or --file scriptfile&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;从脚本文件中读 取awk命令。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-mf nnn and  -mr nnn&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;对 nnn值设置内在限制，-mf选项限制分配给nnn的最大块数目；-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能，在标准 awk中不适用。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-W compact or --compat, &lt;/span&gt;&lt;span class=&quot;term&quot;&gt;-W traditional or --traditional&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;在兼容模式下运行 awk。所以gawk的行为和标准的awk完全一样，所有的awk扩展都被忽略。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-W  copyleft or --copyleft, &lt;/span&gt;&lt;span class=&quot;term&quot;&gt;-W copyright or  --copyright&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;打印简短的版权信息。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-W  help or --help, &lt;/span&gt;&lt;span class=&quot;term&quot;&gt;-W usage or --usage&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;打 印全部awk选项和每个选项的简短说明。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-W lint or --lint&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;打 印不能向传统unix平台移植的结构的警告。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-W lint-old or  --lint-old&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;打印关于不能向传统unix平台移植的结构的警告。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-W posix&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;打开兼容模式。但有以下限制，不识别：\x、函数关键字、func、 换码序列以及当fs是一个空格时，将新行作为一个域分隔符；操作符**和**=不能代替^和^=；fflush无效。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-W re-interval or --re-inerval&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;允许间隔正则表达式 的使用，参考(grep中的Posix字符类)，如括号表达式[[:alpha:]]。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-W  source program-text or --source program-text&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;使用 program-text作为源代码，可与-f命令混用。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;-W version   or --version&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;打印bug报告信息的版本。&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;3.&amp;nbsp;模式和操作&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;variablelist&quot;&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;awk脚本是由模式和操作组成的：&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;pattern  {action} 如$ awk &apos;/root/&apos; test，或$ awk &apos;$3 &amp;lt; 100&apos; test。&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;p&gt;两者是可选的，如果没有模式，则action应用到全部记录，如果没有action，则输出匹配全部记录。默认情况下，每一个输入行都是一条记录，但用户 可通过RS变量指定不同的分隔符进行分隔。&lt;/p&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;3.1.&amp;nbsp;模式&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;模 式可以是以下任意一个：&lt;/p&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;/正则表达式/： 使用通配符的扩展集。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;关系表达式：可以用下面运算符表中的关系运算符进行操作，可以是字符串或数字的比较， 如$2&amp;gt;%1选择第二个字段比第一个字段长的行。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;模式匹配表达式：用运算符~(匹配)和~!(不匹配)。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;模 式，模式：指定一个行的范围。该语法不能包括BEGIN和END模式。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;BEGIN：让用户指定在第一条输入记录被处理之 前所发生的动作，通常可在这里设置全局变量。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;END：让用户在最后一条输入记录被读取之后发生的动作。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;3.2.&amp;nbsp;操作&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;操 作由一人或多个命令、函数、表达式组成，之间由换行符或分号隔开，并位于大括号内。主要有四部份：&lt;/p&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;变量或数组赋值&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;输出命令&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;内 置函数&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;控制流命令&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;4.&amp;nbsp;awk的环境变量&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;table&quot;&gt;&lt;p class=&quot;title&quot;&gt;&lt;b&gt;Table&amp;nbsp;1.&amp;nbsp;awk的 环境变量&lt;/b&gt;&lt;/p&gt;&lt;table border=&quot;1&quot; summary=&quot;awk的环境变量&quot;&gt;&lt;colgroup&gt;&lt;col /&gt;&lt;col /&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;变 量&lt;/th&gt;&lt;th&gt;描述&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;$n&lt;/td&gt;&lt;td&gt;当前记录的第n个字段，字段间由 FS分隔。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;$0&lt;/td&gt;&lt;td&gt;完整的输入记录。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ARGC&lt;/td&gt;&lt;td&gt;命 令行参数的数目。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ARGIND&lt;/td&gt;&lt;td&gt;命令行中当前文件的位置(从0开始算)。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ARGV&lt;/td&gt;&lt;td&gt;包 含命令行参数的数组。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CONVFMT&lt;/td&gt;&lt;td&gt;数字转换格式(默认值为%.6g)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ENVIRON&lt;/td&gt;&lt;td&gt;环 境变量关联数组。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ERRNO&lt;/td&gt;&lt;td&gt;最后一个系统错误的描述。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FIELDWIDTHS&lt;/td&gt;&lt;td&gt;字 段宽度列表(用空格键分隔)。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FILENAME&lt;/td&gt;&lt;td&gt;当前文件名。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FNR&lt;/td&gt;&lt;td&gt;同 NR，但相对于当前文件。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FS&lt;/td&gt;&lt;td&gt;字段分隔符(默认是任何空格)。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;IGNORECASE&lt;/td&gt;&lt;td&gt;如 果为真，则进行忽略大小写的匹配。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NF&lt;/td&gt;&lt;td&gt;当前记录中的字段数。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NR&lt;/td&gt;&lt;td&gt;当 前记录数。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OFMT&lt;/td&gt;&lt;td&gt;数字的输出格式(默认值是%.6g)。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OFS&lt;/td&gt;&lt;td&gt;输 出字段分隔符(默认值是一个空格)。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ORS&lt;/td&gt;&lt;td&gt;输出记录分隔符(默认值是一个换行符)。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RLENGTH&lt;/td&gt;&lt;td&gt;由 match函数所匹配的字符串的长度。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RS&lt;/td&gt;&lt;td&gt;记录分隔符(默认是一个换行符)。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RSTART&lt;/td&gt;&lt;td&gt;由 match函数所匹配的字符串的第一个位置。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SUBSEP&lt;/td&gt;&lt;td&gt;数组下标分隔符(默认值是\034)。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;5.&amp;nbsp;awk运算符&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;table&quot;&gt;&lt;p class=&quot;title&quot;&gt;&lt;b&gt;Table&amp;nbsp;2.&amp;nbsp;运算符&lt;/b&gt;&lt;/p&gt;&lt;table border=&quot;1&quot; summary=&quot;运算符&quot;&gt;&lt;colgroup&gt;&lt;col /&gt;&lt;col /&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;运 算符&lt;/th&gt;&lt;th&gt;描述&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;=  +=  -=  *=  /=  %=  ^=   **=&lt;/td&gt;&lt;td&gt;赋值&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;?:&lt;/td&gt;&lt;td&gt;C条件表达式&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;||&lt;/td&gt;&lt;td&gt;逻 辑或&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;amp;&amp;amp;&lt;/td&gt;&lt;td&gt;逻辑与&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;~  ~!&lt;/td&gt;&lt;td&gt;匹 配正则表达式和不匹配正则表达式&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;  &amp;lt;=  &amp;gt;  &amp;gt;=  !=  ==&lt;/td&gt;&lt;td&gt;关 系运算符&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;空格&lt;/td&gt;&lt;td&gt;连接&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+  -&lt;/td&gt;&lt;td&gt;加，减&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;*   /  &amp;amp;&lt;/td&gt;&lt;td&gt;乘，除与求余&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+  -  !&lt;/td&gt;&lt;td&gt;一元加，减和逻辑非&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;^   ***&lt;/td&gt;&lt;td&gt;求幂&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;++  --&lt;/td&gt;&lt;td&gt;增加或减少，作为前缀或后缀&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;$&lt;/td&gt;&lt;td&gt;字 段引用&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;in&lt;/td&gt;&lt;td&gt;数组成员&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;6.&amp;nbsp;记录和域&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;6.1.&amp;nbsp;记录&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;awk 把每一个以换行符结束的行称为一个记录。&lt;/p&gt;&lt;p&gt;记录分隔符：默认的输入和输出的分隔符都是回车，保存在内建变量ORS和RS中。&lt;/p&gt;&lt;p&gt;$0 变量：它指的是整条记录。如$ awk &apos;{print $0}&apos; test将输出test文件中的所有记录。&lt;/p&gt;&lt;p&gt;变量NR：一个计数器，每处 理完一条记录，NR的值就增加1。如$ awk &apos;{print NR,$0}&apos; test将输出test文件中所有记录，并在记录前显示记录号。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;6.2.&amp;nbsp;域&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;记 录中每个单词称做“域”，默认情况下以空格或tab分隔。awk可跟踪域的个数，并在内建变量NF中保存该值。如$ awk &apos;{print  $1,$3}&apos; test将打印test文件中第一和第三个以空格分开的列(域)。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;6.3.&amp;nbsp;域分隔符&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;内建变量 FS保存输入域分隔符的值，默认是空格或tab。我们可以通过-F命令行选项修改FS的值。如$ awk -F: &apos;{print $1,$5}&apos;  test将打印以冒号为分隔符的第一，第五列的内容。&lt;/p&gt;&lt;p&gt;可以同时使用多个域分隔符，这时应该把分隔符写成放到方括号中，如$awk  -F&apos;[:\t]&apos; &apos;{print $1,$3}&apos; test，表示以空格、冒号和tab作为分隔符。&lt;/p&gt;&lt;p&gt;输出域的分隔符默认是一个空格，保 存在OFS中。如$ awk -F: &apos;{print $1,$5}&apos; test，$1和$5间的逗号就是OFS的值。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;7.&amp;nbsp;gawk专用正则表达 式元字符&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;一般通用的元字符集就不讲了，可参考我的&lt;a href=&quot;http://www.ringkee.com/jims/technic_folder/sed.htm&quot; target=&quot;_blank&quot;&gt;Sed&lt;/a&gt;和&lt;a href=&quot;http://www.ringkee.com/jims/technic_floder/grep.htm&quot; target=&quot;_blank&quot;&gt;Grep&lt;/a&gt;学习笔记。以下几个是gawk专用的，不适合unix版本的awk。&lt;/p&gt;&lt;div class=&quot;variablelist&quot;&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;\Y&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;匹配一 个单词开头或者末尾的空字符串。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;\B&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;匹配单词 内的空字符串。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;\&amp;lt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;匹配一个单词的开头 的空字符串，锚定开始。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;\&amp;gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;匹配一个单 词的末尾的空字符串，锚定末尾。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;\w&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;匹配一个 字母数字组成的单词。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;\W&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;匹配一个非字母数字 组成的单词。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;\‘&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;匹配字符串开头的一个空字符 串。&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class=&quot;term&quot;&gt;\&apos;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;匹配字符串末尾的一个空字符串。&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;8.&amp;nbsp;POSIX字符集&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;可 参考我的&lt;a href=&quot;http://www.ringkee.com/jims/technic_folder/grep.htm&quot; target=&quot;_blank&quot;&gt;Grep学习笔记&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;9.&amp;nbsp;匹配操作符(~)&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;用来在 记录或者域内匹配正则表达式。如$ awk &apos;$1 ~/^root/&apos; test将显示test文件第一列中以root开头的行。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;10.&amp;nbsp;比较表达式&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;conditional expression1  ? expression2: expression3，例如：$ awk &apos;{max = {$1 &amp;gt; $3} ? $1: $3: print max}&apos; test。如果第一个域大于第三个域，$1就赋值给max，否则$3就赋值给max。&lt;/p&gt;&lt;p&gt;$ awk  &apos;$1 + $2 &amp;lt; 100&apos; test。如果第一和第二个域相加大于100，则打印这些行。&lt;/p&gt;&lt;p&gt;$ awk &apos;$1 &amp;gt; 5  &amp;amp;&amp;amp; $2 &amp;lt; 10&apos; test,如果第一个域大于5，并且第二个域小于10，则打印这些行。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;11.&amp;nbsp;范围模板&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;范 围模板匹配从第一个模板的第一次出现到第二个模板的第一次出现之间所有行。如果有一个模板没出现，则匹配到开头或末尾。如$ awk  &apos;/root/,/mysql/&apos; test将显示root第一次出现到mysql第一次出现之间的所有行。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;12.&amp;nbsp;一个验证 passwd文件有效性的例子&lt;/h2&gt;&lt;pre&gt;&lt;ol class=&quot;dp-other&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;$&amp;nbsp;cat&amp;nbsp;/etc/passwd&amp;nbsp;|&amp;nbsp;awk&amp;nbsp;-F:&amp;nbsp;&apos;\&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;NF&amp;nbsp;!=&amp;nbsp;7{\&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;printf(&amp;quot;line&amp;nbsp;%d,does&amp;nbsp;not&amp;nbsp;have&amp;nbsp;7&amp;nbsp;fields:%s\n&amp;quot;,NR,$0)}\&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;$1&amp;nbsp;!~&amp;nbsp;/[A-Za-z0-9]/{printf(&amp;quot;line&amp;nbsp;%d,non&amp;nbsp;alpha&amp;nbsp;and&amp;nbsp;numeric&amp;nbsp;user&amp;nbsp;id:%d:&amp;nbsp;%s\n,NR,$0)}\&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;$2&amp;nbsp;==&amp;nbsp;&amp;quot;*&amp;quot;&amp;nbsp;{printf(&amp;quot;line&amp;nbsp;%d,&amp;nbsp;no&amp;nbsp;password:&amp;nbsp;%s\n&amp;quot;,NR,$0)}&apos;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;calloutlist&quot;&gt;&lt;table border=&quot;0&quot; summary=&quot;Callout list&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;5%&quot; valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#co.1&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;1&quot; src=&quot;http://www.linux.gov.cn/shell/awk_files/1.htm&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;cat把结果输出给awk，awk把域之间的分隔符设为冒号。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;5%&quot; valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#co.2&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;2&quot; src=&quot;http://www.linux.gov.cn/shell/awk_files/2.htm&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;如果域的数量(NF)不等于7，就执行下面的程序。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;5%&quot; valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#co.3&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;3&quot; src=&quot;http://www.linux.gov.cn/shell/awk_files/3.htm&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;printf打印字符串&amp;quot;line ?? does not have  7 fields&amp;quot;，并显示该条记录。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;5%&quot; valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#co.4&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;4&quot; src=&quot;http://www.linux.gov.cn/shell/awk_files/4.htm&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;如果第一个域没有包含任何字母和数字，printf打印“no  alpha and numeric user id&amp;quot; ，并显示记录数和记录。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;5%&quot; valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.linux.gov.cn/shell/awk.htm#co.5&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;5&quot; src=&quot;http://www.linux.gov.cn/shell/awk_files/5.htm&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;如果第二个域是一个星号，就打印字符串“no  passwd”，紧跟着显示记录数和记录本身。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;13.&amp;nbsp;几个实例&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;$ awk &apos;/^(no|so)/&apos;  test-----打印所有以模式no或so开头的行。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$ awk &apos;/^[ns]/{print $1}&apos;  test-----如果记录以n或s开头，就打印这个记录。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$ awk &apos;$1  ~/[0-9][0-9]$/(print $1}&apos; test-----如果第一个域以两个数字结束就打印这个记录。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$  awk &apos;$1 == 100 || $2 &amp;lt; 50&apos; test-----如果第一个或等于100或者第二个域小于50，则打印该行。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$  awk &apos;$1 != 10&apos; test-----如果第一个域不等于10就打印该行。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$ awk  &apos;/test/{print $1 + 10}&apos; test-----如果记录包含正则表达式test，则第一个域加10并打印出来。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$  awk &apos;{print ($1 &amp;gt; 5 ? &amp;quot;ok &amp;quot;$1: &amp;quot;error&amp;quot;$1)}&apos;  test-----如果第一个域大于5则打印问号后面的表达式值，否则打印冒号后面的表达式值。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$ awk &apos;/^root/,/^mysql/&apos; test----打印以正则表达式root开头的记录到以正则表达式mysql开头的记录范围内的所有记录。如果找到一个新的正则表达式root开头的记 录，则继续打印直到下一个以正则表达式mysql开头的记录为止，或到文件末尾。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;14.&amp;nbsp;awk编程&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;14.1.&amp;nbsp;变量&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;在awk中，变量不需要定义就可以直接使用，变量类型可以 是数字或字符串。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;赋 值格式：Variable = expression，如$ awk &apos;$1 ~/test/{count = $2 + $3; print count}&apos; test,上式的作用是,awk先扫描第一个域，一旦test匹配，就把第二个域的值加上第三个域的值，并把结果赋值给变量count，最后打印出来。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;awk  可以在命令行中给变量赋值，然后将这个变量传输给awk脚本。如$ awk -F: -f awkscript month=4 year=2004 test，上式的month和year都是自定义变量，分别被赋值为4和2004。在awk脚本中，这些变量使用起来就象是在脚本中建立的一样。注意，如 果参数前面出现test，那么在BEGIN语句中的变量就不能被使用。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;域变量也可被赋值和修改，如$ awk &apos;{$2 = 100 + $1; print }&apos; test,上式表示，如果第二个域不存在，awk将计算表达式100加$1的值，并将其赋值给$2，如果第二个域存在，则用表达式的值覆盖$2原来的值。 再例如：$ awk &apos;$1 == &amp;quot;root&amp;quot;{$1 =&amp;quot;test&amp;quot;;print}&apos; test，如果第一个域的值是“root”，则把它赋值为“test”，注意，字符串一定要用双引号。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;内建变量的使用。 变量列表在前面已列出，现在举个例子说明一下。$ awk -F: &apos;{IGNORECASE=1; $1 == &amp;quot;MARY&amp;quot;{print NR,$1,$2,$NF}&apos;test，把IGNORECASE设为1代表忽略大小写，打印第一个域是mary的记录数、第一个域、第二个域和最后一个 域。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;14.2.&amp;nbsp;BEGIN 模块&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;BEGIN 模块后紧跟着动作块，这个动作块在awk处理任何输入文件之前执行。所以它可以在没有任何输入的情况下进行测试。它通常用来改变内建变量的值，如OFS, RS和FS等，以及打印标题。如：$ awk &apos;BEGIN{FS=&amp;quot;:&amp;quot;; OFS=&amp;quot;\t&amp;quot;; ORS=&amp;quot;\n\n&amp;quot;}{print $1,$2,$3} test。上式表示，在处理输入文件以前，域分隔符(FS)被设为冒号，输出文件分隔符(OFS)被设置为制表符，输出记录分隔符(ORS)被设置为两个 换行符。$ awk &apos;BEGIN{print &amp;quot;TITLE TEST&amp;quot;}只打印标题。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;14.3.&amp;nbsp;END模块&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;END 不匹配任何的输入文件，但是执行动作块中的所有动作，它在整个输入文件处理完成后被执行。如$ awk &apos;END{print &amp;quot;The number  of records is&amp;quot; NR}&apos; test，上式将打印所有被处理的记录数。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;14.4.&amp;nbsp;重定向和管道&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;awk 可使用shell的重定向符进行重定向输出，如：$ awk &apos;$1 = 100 {print $1 &amp;gt; &amp;quot;output_file&amp;quot; }&apos; test。上式表示如果第一个域的值等于100，则把它输出到output_file中。也可以用&amp;gt;&amp;gt;来重定向输出，但不清空文件，只做追加 操作。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;输出重定向需用到getline函数。getline从标准输入、管道或者当前正在处理的文件之外的其他输入文件 获得输入。它负责从输入获得下一行的内容，并给NF,NR和FNR等内建变量赋值。如果得到一条记录，getline函数返回1，如果到达文件的末尾就返 回0，如果出现错误，例如打开文件失败，就返回-1。如：&lt;/p&gt;&lt;p&gt;$ awk &apos;BEGIN{ &amp;quot;date&amp;quot; | getline d;  print d}&apos; test。执行linux的date命令，并通过管道输出给getline，然后再把输出赋值给自定义变量d，并打印它。&lt;/p&gt;&lt;p&gt;$ awk &apos;BEGIN{&amp;quot;date&amp;quot; | getline d; split(d,mon); print mon[2]}&apos; test。执行shell的date命令，并通过管道输出给getline，然后getline从管道中读取并将输入赋值给d，split函数把变量d转 化成数组mon，然后打印数组mon的第二个元素。&lt;/p&gt;&lt;p&gt;$ awk &apos;BEGIN{while( &amp;quot;ls&amp;quot; | getline) print}&apos;，命令ls的输出传递给geline作为输入，循环使getline从ls的输出中读取一行，并把它打印到屏幕。这里没有输入文件，因为 BEGIN块在打开输入文件前执行，所以可以忽略输入文件。&lt;/p&gt;&lt;p&gt;$ awk &apos;BEGIN{printf &amp;quot;What is your name?&amp;quot;; getline name &amp;lt; &amp;quot;/dev/tty&amp;quot; } $1 ~name {print &amp;quot;Found&amp;quot; name on line &amp;quot;, NR &amp;quot;.&amp;quot;} END{print &amp;quot;See you,&amp;quot; name &amp;quot;.&amp;quot;} test。在屏幕上打印”What is your name?&amp;quot;,并等待用户应答。当一行输入完毕后，getline函数从终端接收该行输入，并把它储存在自定义变量name中。如果第一个域匹配变量 name的值，print函数就被执行，END块打印See you和name的值。&lt;/p&gt;&lt;p&gt;$ awk &apos;BEGIN{while (getline &amp;lt; &amp;quot;/etc/passwd&amp;quot; &amp;gt; 0) lc++; print lc}&apos;。awk将逐行读取文件/etc/passwd的内容，在到达文件末尾前，计数器lc一直增加，当到末尾时，打印lc的值。注意，如果文件不存 在，getline返回-1，如果到达文件的末尾就返回0，如果读到一行，就返回1，所以命令 while (getline &amp;lt; &amp;quot;/etc/passwd&amp;quot;)在文件不存在的情况下将陷入无限循环，因为返回-1表示逻辑真。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;可以在awk中打开一个管 道，且同一时刻只能有一个管道存在。通过close()可关闭管道。如：$ awk &apos;{print $1, $2 | &amp;quot;sort&amp;quot; }&apos; test END {close(&amp;quot;sort&amp;quot;)}。awd把print语句的输出通过管道作为linux命令sort的输入,END块执行关闭管道操作。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;system 函数可以在awk中执行linux的命令。如：$ awk &apos;BEGIN{system(&amp;quot;clear&amp;quot;)&apos;。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;fflush 函数用以刷新输出缓冲区，如果没有参数，就刷新标准输出的缓冲区，如果以空字符串为参数，如fflush(&amp;quot;&amp;quot;),则刷新所有文件和管道的输出缓冲区。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;14.5.&amp;nbsp;条件语句&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;awk 中的条件语句是从C语言中借鉴过来的，可控制程序的流程。&lt;/p&gt;&lt;div lang=&quot;en&quot; class=&quot;sect3&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class=&quot;title&quot;&gt;14.5.1.&amp;nbsp;if 语句&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class=&quot;screen&quot;&gt;
格式：
        {if (expression){
                   statement; statement; ...
                     }
        }&lt;/pre&gt;&lt;p&gt;$ awk &apos;{if ($1 &amp;lt;$2) print $2 &amp;quot;too high&amp;quot;}&apos;  test。如果第一个域小于第二个域则打印。&lt;/p&gt;&lt;p&gt;$ awk &apos;{if ($1 &amp;lt; $2) {count++; print  &amp;quot;ok&amp;quot;}}&apos; test.如果第一个域小于第二个域，则count加一，并打印ok。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect3&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class=&quot;title&quot;&gt;14.5.2.&amp;nbsp;if/else语句，用于双重判断。&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class=&quot;screen&quot;&gt;
格式：
        {if (expression){
                   statement; statement; ...
                       }
        else{
                   statement; statement; ...
                       }
        }&lt;/pre&gt;&lt;p&gt;$ awk &apos;{if ($1 &amp;gt; 100) print $1 &amp;quot;bad&amp;quot; ; else print  &amp;quot;ok&amp;quot;}&apos; test。如果$1大于100则打印$1 bad,否则打印ok。&lt;/p&gt;&lt;p&gt;$ awk &apos;{if ($1 &amp;gt; 100){  count++; print $1} else {count--; print $2}&apos;  test。如果$1大于100，则count加一，并打印$1，否则count减一，并打印$1。&lt;/p&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect3&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class=&quot;title&quot;&gt;14.5.3.&amp;nbsp;if/else else if语句，用于多重判断。&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class=&quot;screen&quot;&gt;
格式：
        {if (expression){
                    statement; statement; ...
                   }
        else if (expression){
                    statement; statement; ...
                   }
        else if (expression){
                    statement; statement; ...
                   }
        else {
                   statement; statement; ...
             }
        }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;14.6.&amp;nbsp;循 环&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;awk有三种循环:while循环；for循环；special for循环。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$  awk &apos;{ i = 1; while ( i &amp;lt;= NF ) { print NF,$i; i++}}&apos;  test。变量的初始值为1，若i小于可等于NF(记录中域的个数),则执行打印语句，且i增加1。直到i的值大于NF.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$  awk &apos;{for (i = 1; i&amp;lt;NF; i++) print NF,$i}&apos; test。作用同上。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;breadkcontinue 语句。break用于在满足条件的情况下跳出循环；continue用于在满足条件的情况下忽略后面的语句，直接返回循环的顶端。如：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
{for ( x=3; x&amp;lt;=NF; x++) 
            if ($x&amp;lt;0){print &amp;quot;Bottomed out!&amp;quot;; break}}
{for ( x=3; x&amp;lt;=NF; x++)
            if ($x==0){print &amp;quot;Get next item&amp;quot;; continue}}
      &lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;next语句从输入文件中读取一行，然后从头开始执行awk脚本。如：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
{if ($1 ~/test/){next}
    else {print}
}
     &lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;exit语句用于结束awk程序，但不会略过END块。退出状态为0代表成功，非零值表示出错。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;14.7.&amp;nbsp;数组&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;awk 中的数组的下标可以是数字和字母，称为关联数组。&lt;/p&gt;&lt;div lang=&quot;en&quot; class=&quot;sect3&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class=&quot;title&quot;&gt;14.7.1.&amp;nbsp;下 标与关联数组&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;用 变量作为数组下标。如：$ awk {name[x++]=$2};END{for(i=0;i&amp;lt;NR;i++) print i,name[i]}&apos; test。数组name中的下标是一个自定义变量x，awk初始化x的值为0，在每次使用后增加1。第二个域的值被赋给name数组的各个元素。在END 模块中，for循环被用于循环整个数组，从下标为0的元素开始，打印那些存储在数组中的值。因为下标是关健字，所以它不一定从0开始，可以从任何值开始。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;special  for循环用于读取关联数组中的元素。格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
{for (item in arrayname){
         print arrayname[item]
         }
}
&lt;/pre&gt; $ awk &apos;/^tom/{name[NR]=$1}; END{for(i in name){print name[i]}}&apos;  test。打印有值的数组元素。打印的顺序是随机的。&lt;/li&gt;&lt;li&gt;&lt;p&gt;用字符串作为下标。如：count[&amp;quot;test&amp;quot;]&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;用 域值作为数组的下标。一种新的for循环方式，for (index_value in array) statement。如:$ awk &apos;{count[$1]++} END{for(name in count) print name,count[name]}&apos; test。该语句将打印$1中字符串出现的次数。它首先以第一个域作数组count的下标，第一个域变化，索引就变化。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;delete  函数用于删除数组元素。如：$ awk &apos;{line[x++]=$1} END{for(x in line) delete(line[x])}&apos; test。分配给数组line的是第一个域的值，所有记录处理完成后，special for循环将删除每一个元素。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect2&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;title&quot;&gt;14.8.&amp;nbsp;awk的内建函数&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect3&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class=&quot;title&quot;&gt;14.8.1.&amp;nbsp;字符串函数&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;sub函数匹配记录中最大、最靠左边的子字符串的正则表达 式，并用替换字符串替换这些字符串。如果没有指定目标字符串就默认使用整个记录。替换只发生在第一次匹配的时候。格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            sub (regular expression, substitution string):
            sub (regular expression, substitution string, target string)
&lt;/pre&gt;&lt;p&gt;实例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{ sub(/test/, &amp;quot;mytest&amp;quot;); print }&apos; testfile
            $ awk &apos;{ sub(/test/, &amp;quot;mytest&amp;quot;); $1}; print }&apos; testfile
&lt;/pre&gt;&lt;p&gt;第一个例子在整个记录中匹配，替换只发生在第一次匹配发生的时候。如要在整个文件中进行匹配需要用到gsub&lt;/p&gt;&lt;p&gt;第二个例子 在整个记录的第一个域中进行匹配，替换只发生在第一次匹配发生的时候。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;gsub函数作用如sub，但它在整个文档中进行 匹配。格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            gsub (regular expression, substitution string)
            gsub (regular expression, substitution string, target string)
&lt;/pre&gt;&lt;p&gt;实例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{ gsub(/test/, &amp;quot;mytest&amp;quot;); print }&apos; testfile
            $ awk &apos;{ gsub(/test/, &amp;quot;mytest&amp;quot;), $1 }; print }&apos; testfile
&lt;/pre&gt;&lt;p&gt;第一个例子在整个文档中匹配test，匹配的都被替换成mytest。&lt;/p&gt;&lt;p&gt;第二个例子在整个文档的第一个域中匹配，所有匹配 的都被替换成mytest。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;index函数返回子字符串第一次被匹配的位置，偏移量从位置1开始。格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
          index(string, substring)
&lt;/pre&gt;&lt;p&gt;实例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{ print index(&amp;quot;test&amp;quot;, &amp;quot;mytest&amp;quot;) }&apos; testfile
&lt;/pre&gt;&lt;p&gt;实例返回test在mytest的位置，结果应该是3。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;length函数返回记录的字符数。格式如 下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            length( string )
            length
&lt;/pre&gt;&lt;p&gt;实例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{ print length( &amp;quot;test&amp;quot; ) }&apos; 
            $ awk &apos;{ print length }&apos; testfile
&lt;/pre&gt;&lt;p&gt;第一个实例返回test字符串的长度。&lt;/p&gt;&lt;p&gt;第二个实例返回testfile文件中第条记录的字符数。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;substr 函数返回从位置1开始的子字符串，如果指定长度超过实际长度，就返回整个字符串。格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            substr( string, starting position )
            substr( string, starting position, length of string )
&lt;/pre&gt;&lt;p&gt;实例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{ print substr( &amp;quot;hello world&amp;quot;, 7,11 ) }&apos; 
&lt;/pre&gt;&lt;p&gt;上例截取了world子字符串。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;match函数返回在字符串中正则表达式位置的索引，如果找不到指定 的正则表达式则返回0。match函数会设置内建变量RSTART为字符串中子字符串的开始位置，RLENGTH为到子字符串末尾的字符个数。 substr可利于这些变量来截取字符串。函数格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            match( string, regular expression )
&lt;/pre&gt;&lt;p&gt;实例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{start=match(&amp;quot;this is a test&amp;quot;,/[a-z]+$/); print start}&apos;
            $ awk &apos;{start=match(&amp;quot;this is a test&amp;quot;,/[a-z]+$/); print start, RSTART, RLENGTH }&apos;
&lt;/pre&gt;&lt;p&gt;第一个实例打印以连续小写字符结尾的开始位置，这里是11。&lt;/p&gt;&lt;p&gt;第二个实例还打印RSTART和RLENGTH变量，这里是 11(start)，11(RSTART)，4(RLENGTH)。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;toupper和tolower函数可用于字符串大 小间的转换，该功能只在gawk中有效。格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            toupper( string )
            tolower( string )
&lt;/pre&gt;&lt;p&gt;实例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{ print toupper(&amp;quot;test&amp;quot;), tolower(&amp;quot;TEST&amp;quot;) }&apos;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;split函数可按给定的分隔符把字符串分割为一个数组。如果分隔符没提供，则按当前FS值进行分割。格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            split( string, array, field separator )
            split( string, array )
&lt;/pre&gt;&lt;p&gt;实例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{ split( &amp;quot;20:18:00&amp;quot;, time, &amp;quot;:&amp;quot; ); print time[2] }&apos;
&lt;/pre&gt;&lt;p&gt;上例把时间按冒号分割到time数组内，并显示第二个数组元素18。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect3&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class=&quot;title&quot;&gt;14.8.2.&amp;nbsp;时间函数&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;systime函数返回从1970年1月1日开始到当前时 间(不计闰年)的整秒数。格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            systime()
&lt;/pre&gt;&lt;p&gt;实例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{ now = systime(); print now }&apos;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;strftime函数使用C库中的strftime函数格式化时间。格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            systime( [format specification][,timestamp] )
&lt;/pre&gt;&lt;div class=&quot;table&quot;&gt;&lt;p class=&quot;title&quot;&gt;&lt;b&gt;Table&amp;nbsp;3.&amp;nbsp;日 期和时间格式说明符&lt;/b&gt;&lt;/p&gt;&lt;table border=&quot;1&quot; summary=&quot;日期和时间格式说明符&quot;&gt;&lt;colgroup&gt;&lt;col /&gt;&lt;col /&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;格 式&lt;/th&gt;&lt;th&gt;描述&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;%a&lt;/td&gt;&lt;td&gt;星期几的缩写(Sun)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%A&lt;/td&gt;&lt;td&gt;星 期几的完整写法(Sunday)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%b&lt;/td&gt;&lt;td&gt;月名的缩写(Oct)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%B&lt;/td&gt;&lt;td&gt;月 名的完整写法(October)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%c&lt;/td&gt;&lt;td&gt;本地日期和时间&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%d&lt;/td&gt;&lt;td&gt;十 进制日期&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;日期 08/20/99&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%e&lt;/td&gt;&lt;td&gt;日 期，如果只有一位会补上一个空格&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;用十进制表示24小时格式的小时&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%I&lt;/td&gt;&lt;td&gt;用 十进制表示12小时格式的小时&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%j&lt;/td&gt;&lt;td&gt;从1月1日起一年中的第几天&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%m&lt;/td&gt;&lt;td&gt;十 进制表示的月份&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%M&lt;/td&gt;&lt;td&gt;十进制表示的分钟&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%p&lt;/td&gt;&lt;td&gt;12 小时表示法(AM/PM)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;十进制表示的秒&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;十 进制表示的一年中的第几个星期(星期天作为一个星期的开始)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%w&lt;/td&gt;&lt;td&gt;十进制表示的星期几(星期天是 0)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%W&lt;/td&gt;&lt;td&gt;十进制表示的一年中的第几个星期(星期一作为一个星期的开始)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%x&lt;/td&gt;&lt;td&gt;重 新设置本地日期(08/20/99)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%X&lt;/td&gt;&lt;td&gt;重新设置本地时间(12：00：00)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%y&lt;/td&gt;&lt;td&gt;两 位数字表示的年(99)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%Y&lt;/td&gt;&lt;td&gt;当前月份&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%Z&lt;/td&gt;&lt;td&gt;时 区(PDT)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;百分号(%)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;实 例：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
            $ awk &apos;{ now=strftime( &amp;quot;%D&amp;quot;, systime() ); print now }&apos;
            $ awk &apos;{ now=strftime(&amp;quot;%m/%d/%y&amp;quot;); print now }&apos;
&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect3&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class=&quot;title&quot;&gt;14.8.3.&amp;nbsp;内 建数学函数&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;table&quot;&gt;&lt;p class=&quot;title&quot;&gt;&lt;b&gt;Table&amp;nbsp;4.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;table border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;colgroup&gt;&lt;col /&gt;&lt;col /&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;函数名称&lt;/th&gt;&lt;th&gt;返 回值&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;atan2(x,y)&lt;/td&gt;&lt;td&gt;y,x范围内的余切&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;cos(x)&lt;/td&gt;&lt;td&gt;余 弦函数&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;exp(x)&lt;/td&gt;&lt;td&gt;求幂&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;int(x)&lt;/td&gt;&lt;td&gt;取 整&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;log(x)&lt;/td&gt;&lt;td&gt;自然对数&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;rand()&lt;/td&gt;&lt;td&gt;随 机数&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sin(x)&lt;/td&gt;&lt;td&gt;正弦&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sqrt(x)&lt;/td&gt;&lt;td&gt;平 方根&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;srand(x)&lt;/td&gt;&lt;td&gt;x是rand()函数的种子&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;int(x)&lt;/td&gt;&lt;td&gt;取 整，过程没有舍入&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;rand()&lt;/td&gt;&lt;td&gt;产生一个大于等于0而小于1的随机数&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect3&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class=&quot;title&quot;&gt;14.8.4.&amp;nbsp;自定义函数&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;在 awk中还可自定义函数，格式如下：&lt;/p&gt;&lt;pre class=&quot;screen&quot;&gt;
        function name ( parameter, parameter, parameter, ... ) {
                        statements
                        return expression                  # the return statement and expression are optional
        }
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div lang=&quot;en&quot; class=&quot;sect1&quot;&gt;&lt;div class=&quot;titlepage&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;h2 style=&quot;clear: both;&quot; class=&quot;title&quot;&gt;15.&amp;nbsp;How-to&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;itemizedlist&quot;&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li&gt;&lt;p&gt;如何把一行竖排的数据转换成横排？&lt;/p&gt;&lt;p&gt;awk  &apos;{printf(&amp;quot;%s,&amp;quot;,$1)}&apos; filename&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;script language=&quot;javascript&quot;&gt;postamble();&lt;/script&gt;</description>
		<guid>http://www.517sou.net/Article/406.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/406/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/406.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/406/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/405.aspx</link>
		<title>统计文件中字符出现次数</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>技术文摘</category>
		<pubDate>Wed, 27 Jan 2010 06:20:16 GMT</pubDate>
		<description>&lt;p&gt;统计文件中字符出现次数假设文件(test.txt)内容如下：&lt;br /&gt;1&lt;br /&gt;1&lt;br /&gt;2&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;要求结果显示：&lt;br /&gt;2 1&lt;br /&gt;2  2&lt;br /&gt;2 3&lt;br /&gt;1 4&lt;br /&gt;说明：第一列为字符串出现的频率，第二列为字符串内容，&lt;/p&gt;&lt;div&gt;&lt;b&gt;方法一:&lt;/b&gt;&lt;/div&gt;&lt;pre&gt;&lt;ol class=&quot;dp-other&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;uniq&amp;nbsp;-c&amp;nbsp;test.txt&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;div&gt;效果：&lt;/div&gt;&lt;div&gt;2 1&lt;br /&gt;2 2&lt;br /&gt;2 3&lt;br /&gt;1 4&lt;/div&gt;&lt;div&gt;&lt;b&gt;注意&lt;/b&gt;，如果上述文件中，字符串没有sort的，则可以先sort&lt;/div&gt;&lt;pre&gt;&lt;ol class=&quot;dp-other&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;sort&amp;nbsp;test.txt&amp;nbsp;|&amp;nbsp;uniq&amp;nbsp;-c&amp;nbsp;|&amp;nbsp;sort&amp;nbsp;-nr&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;b&gt;方法二:&lt;/b&gt;&lt;/div&gt;&lt;pre&gt;&lt;ol class=&quot;dp-other&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;awk&amp;nbsp;&apos;{p[$1]&amp;nbsp;+=&amp;nbsp;1}END{for(a&amp;nbsp;in&amp;nbsp;p)&amp;nbsp;print&amp;nbsp;p[a],&amp;quot;\t&amp;quot;,a}&apos;&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;div&gt;效果：&lt;/div&gt;&lt;p&gt;2 1&lt;br /&gt;2 2&lt;br /&gt;2 3&lt;br /&gt;1 4&lt;/p&gt;&lt;p&gt;按出现次数大小排序&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-other&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;awk&amp;nbsp;&apos;{p[$1]&amp;nbsp;+=&amp;nbsp;1}END{for(a&amp;nbsp;in&amp;nbsp;p)&amp;nbsp;print&amp;nbsp;p[a],&amp;quot;\t&amp;quot;,a}&apos;&amp;nbsp;test.txt|sort&amp;nbsp;-nr&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;</description>
		<guid>http://www.517sou.net/Article/405.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/405/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/405.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/405/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/404.aspx</link>
		<title>Informix主要系统表的结构及相关字段的含义</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>数据库技术</category>
		<pubDate>Tue, 26 Jan 2010 02:11:02 GMT</pubDate>
		<description>&lt;p&gt;内容提要:&lt;br /&gt;介绍Informix系统表的结构及相关字段的含义&lt;/p&gt;&lt;p&gt;&lt;b&gt;说明:&lt;br /&gt;一、实例信息&lt;/b&gt;&lt;br /&gt;*sysconfig ————&amp;gt;; onconfig文件&lt;br /&gt;*sysprofile ————&amp;gt;; 服务器统计信息&lt;br /&gt;*syslog ————&amp;gt;; 逻辑日志&lt;br /&gt;*sysvpprof ————&amp;gt;; 虚拟处理器&lt;br /&gt;create table &amp;quot;sysmaster&amp;quot;.sysconfig {服务器配置参数}&lt;br /&gt;( &lt;br /&gt;cf_id integer, {唯一数字标志符 }&lt;br /&gt;cf_name char(18) , {onconfig参数名 }&lt;br /&gt;cf_flags integer, {标志，0=在视图中 }&lt;br /&gt;cf_original char(256), {启动时在onconfig中的值 }&lt;br /&gt;cf_effective char(256), {实际使用的值 }&lt;br /&gt;cf_default char(256) {onconfig文件中不指定时默认使用的值 } &lt;br /&gt;);&lt;br /&gt;grant select on sysconfig to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.sysprofile {服务器概貌信息}&lt;br /&gt;( &lt;br /&gt;name char(13), {概貌元素名 }&lt;br /&gt;value integer {当前值 }&lt;br /&gt;);&lt;br /&gt;grant select on sysprofile to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.syslogs {逻辑日志信息}&lt;br /&gt;( &lt;br /&gt;number smallint, {日志文件号 }&lt;br /&gt;uniqid integer, {日志文件唯一ID }&lt;br /&gt;size integer, {日志文件页 } &lt;br /&gt;used integer, {日志文件使用的页 } &lt;br /&gt;is_used integer, {1为已用，0为未用 }&lt;br /&gt;is_current integer, {1为当前 }&lt;br /&gt;is_backed_up integer, {1为备份 }&lt;br /&gt;is_new integer, {1为新 }&lt;br /&gt;is_archived integer, {1为存档 }&lt;br /&gt;is_temp integer, {1为临时 }&lt;br /&gt;flags smallint {日志文件标志 }&lt;br /&gt;);&lt;br /&gt;grant select on syslogs to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.sysvpprof {虚处理器信息与统计}&lt;br /&gt;( &lt;br /&gt;vpid integer, {虚拟处理器 }&lt;br /&gt;class char(50),{虚拟处理器类名(cpu, adm, lio, pio等)}&lt;br /&gt;usercpu float, {用户时间unix秒数 }&lt;br /&gt;syscpu float {系统时间unix秒数 }&lt;br /&gt;);&lt;br /&gt;grant select on sysvpprof to public;&lt;/p&gt;&lt;p&gt;&lt;b&gt;二、dbspace与块信息&lt;/b&gt;&lt;br /&gt;*sysdbspaces ————&amp;gt;; dbspace&lt;br /&gt;*syschunks ————&amp;gt;; 块&lt;br /&gt;*syschkio ————&amp;gt;; 块I/O&lt;br /&gt;*syschfree ————&amp;gt;; 块自由空间 注：syschfree是个不支持的表&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.sysdbspaces {dbspace配置}&lt;br /&gt;( &lt;br /&gt;dbsnum smallint, {dbspace号 }&lt;br /&gt;name char(18), {dbspace名 }&lt;br /&gt;owner char(8), {dbspace拥有者 }&lt;br /&gt;fchunk smallint, {dbspace第一块 }&lt;br /&gt;nchunks smallint, {dbspace块数 } &lt;br /&gt;is_mirrored integer, {dbspace是否镜像 1=YES，0=NO}&lt;br /&gt;is_blobspace integer, {dbspace是否大对象空间 }&lt;br /&gt;is_temp integer, {dbspace是否临时，1=YES，0=NO }&lt;br /&gt;flags smallint {dbspace标志 }&lt;br /&gt;);&lt;br /&gt;grant select on sysdbspaces to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.syschunks {chunk配置}&lt;br /&gt;( &lt;br /&gt;chknum smallint, {chunk号 }&lt;br /&gt;dbsnum smallint, {dbspace号 }&lt;br /&gt;nxchknum smallint, {dbspace中下一个块号 }&lt;br /&gt;chksize integer, {chunk中的页 }&lt;br /&gt;offset integer, {设备页偏移量 }&lt;br /&gt;nfree integer, {块中未用页数 } &lt;br /&gt;is_offline integer, {chunk是否脱机，1=YES，0=NO}&lt;br /&gt;is_recovering integer, {chunk是否恢复，1=YES，0=NO}&lt;br /&gt;is_blobchunk integer, {chunk是否blobchunk，1=YES，0=NO} &lt;br /&gt;is_inconsistent integer, {chunk是否不一致，1=YES，0=NO }&lt;br /&gt;flags smallint, {由bitbal转换的块标志 }&lt;br /&gt;fname char(128),{设备路径名 } &lt;br /&gt;mfname char(128),{镜像设备路径名 }&lt;br /&gt;moffset integer, {镜像设备偏移量 }&lt;br /&gt;mis_offline integer, {镜像是否脱机，1=YES，0=NO }&lt;br /&gt;mis_recovering integer, {镜像是否恢复，1=YES，0=NO }&lt;br /&gt;mflags smallint {镜像块标志 }&lt;br /&gt;);&lt;br /&gt;grant select on syschunks to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.syschfree {显示块中的未用空间块}&lt;br /&gt;( &lt;br /&gt;chknum integer, { chunk number 块号 }&lt;br /&gt;extnum integer, { extent number in chunk 块区域号 }&lt;br /&gt;start integer, { physical addr of start 开始物理地址 }&lt;br /&gt;leng integer { length of extent 区域长度 } &lt;br /&gt;);&lt;br /&gt;create unique index syschfreeidx on syschfree (chknum, extnum);&lt;br /&gt;revoke all on syschfree from public;&lt;br /&gt;grant select on syschfree to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.syschkio {块设备I/O统计信息}&lt;br /&gt;( &lt;br /&gt;chunknum smallint, {块号 } &lt;br /&gt;reads integer, {读操作数 }&lt;br /&gt;pagesread integer, {读页数 } &lt;br /&gt;writes integer, {写操作数 }&lt;br /&gt;pageswritten integer, {写页数 } &lt;br /&gt;mreads integer, {镜像读操作数 }&lt;br /&gt;mpagesread integer, {镜像读页数 } &lt;br /&gt;mwrites integer, {镜像写操作数 }&lt;br /&gt;mpageswritten integer {镜像写页数 }&lt;br /&gt;);&lt;br /&gt;grant select on syschkio to public;&lt;/p&gt;&lt;p&gt;&lt;b&gt;三、数据库与表信息&lt;br /&gt;&lt;/b&gt;*sysdatabases ————&amp;gt;; 数据库&lt;br /&gt;*systabnames ————&amp;gt;; 表&lt;br /&gt;*sysextents ————&amp;gt;; 表区域&lt;br /&gt;*sysptprof ————&amp;gt;; 表I/O&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.sysdatabase {实例中所有的数据库信息}&lt;br /&gt;( &lt;br /&gt;name char(18), {数据库名 }&lt;br /&gt;partnum integer, {systables表ID }&lt;br /&gt;owner char(8), {生成者用户名 }&lt;br /&gt;created integer, {生成日期 }&lt;br /&gt;is_logging integer, {无缓冲日志，1=YES，0=NO }&lt;br /&gt;is_buff_log integer, {缓冲日志，1=YES，0=NO }&lt;br /&gt;is_ansi integer, {ANSI方式数据库1=YES，0=NO } &lt;br /&gt;is_nls integer, {NLS支持，1=YES，0=NO }&lt;br /&gt;flags smallint {指示日志的标志 }&lt;br /&gt;);&lt;br /&gt;grant select on sysdatabase to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.systabnames {实例中的所有表}&lt;br /&gt;( &lt;br /&gt;partnum integer, { table id for table 表号 }&lt;br /&gt;dbsname char(18), { database name 数据库名}&lt;br /&gt;owner char(8), { table owner 表拥有者 }&lt;br /&gt;tabname char(18), { table name 表名 }&lt;br /&gt;collate char(32) { collation assoc with database 与GLS的相关性 }&lt;br /&gt;);&lt;br /&gt;create unique index systabs_pnix on systabnames(partnum);&lt;br /&gt;revoke all on systabnames from public;&lt;br /&gt;grant select on systabnames to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.sysextents {实例中的表和每个区域}&lt;br /&gt;( &lt;br /&gt;dbsname char(18), {数据库名 }&lt;br /&gt;tabname char(18), {表名 }&lt;br /&gt;start integer, {这个区域的物理地址 }&lt;br /&gt;size integer {这个区域的长度(页数) }&lt;br /&gt;);&lt;br /&gt;grant select on sysextents to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.sysptnext {区域的信息}&lt;br /&gt;( &lt;br /&gt;pe_partnum integer, { partnum for this partition 这个区域的编号 }&lt;br /&gt;pe_extnum smallint, { extent number 区域号 }&lt;br /&gt;pe_phys integer, { physical addr for this extent 这个区域的物理地址 }&lt;br /&gt;pe_size integer, { size of this extent 这个区域的长度(页数) }&lt;br /&gt;pe_log integer { logical page for start 开始逻辑页 }&lt;br /&gt;);&lt;br /&gt;create unique index sysptnextidx on sysptnext (pe_partnum, pe_extnum);&lt;br /&gt;revoke all on sysptnext from public;&lt;br /&gt;grant select on sysptnext to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.sysptprof {表I/O概貌}&lt;br /&gt;( &lt;br /&gt;dbsname char(18), {数据库名}&lt;br /&gt;tabname char(18), {表名 }&lt;br /&gt;partnum integer, {表编号 }&lt;br /&gt;lockreqs integer, {锁请求 }&lt;br /&gt;lockwts integer, {锁等待 }&lt;br /&gt;deadlks integer, {死锁 }&lt;br /&gt;lktouts integer, {锁超时 }&lt;br /&gt;isreads integer, {读 }&lt;br /&gt;iswrites integer, {写入 }&lt;br /&gt;isrewrites integer, {改写 }&lt;br /&gt;isdeletes integer, {删除 }&lt;br /&gt;bufreads integer, {缓冲区读} &lt;br /&gt;bufwrites integer, {行冲区写}&lt;br /&gt;seqscans integer, {顺序扫描}&lt;br /&gt;pagreads integer, {磁盘读 }&lt;br /&gt;pagwrites integer {磁盘写 }&lt;br /&gt;);&lt;br /&gt;grant select on sysptprof to public;&lt;/p&gt;&lt;p&gt;&lt;b&gt;四、用户对话信息&lt;br /&gt;&lt;/b&gt;*syssessions ————————&amp;gt;; 对话数据&lt;br /&gt;*syssesprof ————————&amp;gt;; 用户统计信息&lt;br /&gt;*syslocks ————————&amp;gt;; 用户锁&lt;br /&gt;*syseswts ————————&amp;gt;; 等待时间&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.syssessions {用户对话与连接信息}&lt;br /&gt;( &lt;br /&gt;sid integer, {对话号 }&lt;br /&gt;username char(8), {用户名 }&lt;br /&gt;uid smallint,{用户unix号 }&lt;br /&gt;pid integer, {用户进程号 }&lt;br /&gt;hostname char(16),{主机名 }&lt;br /&gt;tty char(16),{tty端口 }&lt;br /&gt;connected integer, {用户连接时间 }&lt;br /&gt;feprogram char(16),{程序名 }&lt;br /&gt;pooladdr integer, {专有对话池指针 }&lt;br /&gt;is_wlatch integer, {标志1=YES，0=NO，等待锁存 }&lt;br /&gt;is_wlock integer, {标志1=YES，0=NO，等待锁 }&lt;br /&gt;is_wbuff integer, {标志1=YES，0=NO，等待缓冲区 }&lt;br /&gt;is_wckpt integer, {标志1=YES，0=NO，等待校验点 }&lt;br /&gt;is_wlogbuf integer, {标志1=YES，0=NO，等待日志缓冲区}&lt;br /&gt;is_wtrans integer, {标志1=YES，0=NO，等待事务 }&lt;br /&gt;is_monitor integer, {标志1=YES，0=NO，监视进程 }&lt;br /&gt;is_incrit integer, {标志1=YES，0=NO，在关键段中 }&lt;br /&gt;state integer {标志 }&lt;br /&gt;);&lt;br /&gt;grant select on syssessions to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.syssesprof {用户对话性能统计}&lt;br /&gt;( &lt;br /&gt;sid integer, {对话号 }&lt;br /&gt;lockreqs decimal(16,0), {请求的锁 }&lt;br /&gt;locksheld decimal(16,0), {锁保持 }&lt;br /&gt;lockwts decimal(16,0), {锁等待 }&lt;br /&gt;deadlks decimal(16,0), {发现的死锁 }&lt;br /&gt;lktouts decimal(16,0), {死锁超时 }&lt;br /&gt;logrecs decimal(16,0), {逻辑日志记录写入 }&lt;br /&gt;isreads decimal(16,0), {读 }&lt;br /&gt;iswrites decimal(16,0), {写 }&lt;br /&gt;isrewrites decimal(16,0), {改写 }&lt;br /&gt;isdeletes decimal(16,0), {删除 }&lt;br /&gt;iscommits decimal(16,0), {提交 }&lt;br /&gt;isrollbacks decimal(16,0), {撤销 }&lt;br /&gt;longtxs decimal(16,0), {长事务 }&lt;br /&gt;bufreads decimal(16,0), {缓冲区读 }&lt;br /&gt;bufwrites decimal(16,0), {缓冲区写 }&lt;br /&gt;seqscans decimal(16,0), {顺序扫描 }&lt;br /&gt;pagreads decimal(16,0), {页读 }&lt;br /&gt;pagwrites decimal(16,0), {页写 }&lt;br /&gt;total_sorts decimal(16,0), {总排序 }&lt;br /&gt;dsksorts decimal(16,0), {磁盘排序 }&lt;br /&gt;max_sortdiskspace decimal(16,0),{排序使用的最大空间 } &lt;br /&gt;logspused decimal(16,0), {当前使用的日志字节 }&lt;br /&gt;maxlogsp decimal(16,0) {逻辑日志使用的最大空间}&lt;br /&gt;);&lt;br /&gt;grant select on syssesprof to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.syslocks {服务器上的锁活动}&lt;br /&gt;( &lt;br /&gt;dbsname char(18), {数据库 }&lt;br /&gt;tabname char(18), {表名 }&lt;br /&gt;rowidlk integer, {索引关键字锁的行号 }&lt;br /&gt;keynum smallint, {索引关键字锁的关键字号}&lt;br /&gt;type integer, {锁拥有者对话ID }&lt;br /&gt;owner integer, {第一个等待者对话ID }&lt;br /&gt;waiter char(4) {锁类型 }&lt;br /&gt;);&lt;br /&gt;grant select on syslocks to public;&lt;br /&gt;{*******************************************************&lt;br /&gt;注：锁类型包括&lt;br /&gt;*B ——————&amp;gt;;byte lock(字节锁)&lt;br /&gt;*IS ——————&amp;gt;;intent shared lock(意图共享锁)&lt;br /&gt;*S ——————&amp;gt;;shared lock(共享锁)&lt;br /&gt;*XS ——————&amp;gt;;repeatable read shared key(可重复读共享锁)&lt;br /&gt;*U ——————&amp;gt;;update lock(更新锁)&lt;br /&gt;*IX ——————&amp;gt;;intent exclusive lock(意图独占锁)&lt;br /&gt;*SIX ——————&amp;gt;;shared intent exclusive(共享意图独占锁)&lt;br /&gt;*X ——————&amp;gt;;exclusive lock(独占锁)&lt;br /&gt;*XR ——————&amp;gt;;repreatable read exclusive(可重复读独占锁)&lt;/p&gt;&lt;p&gt;基本说来，这些锁类型是三种锁的组合：共享锁(S)、独占锁(X)、更新锁(U)。共享锁使其他用户也能读数据，但不能改变数据。独占锁不让其他用户共享数据。&lt;br /&gt;更新锁在更新数据时不让其他用户改变数据。&lt;/p&gt;&lt;p&gt;IDS中可以锁定的对象包括：&lt;br /&gt;*数据库 ——————&amp;gt;;每个用户打开数据库时即对数据库采用共享锁，防止别人删除正在使用的数据。这个操作显示为sysmaster数据库和sysdatabase表中的锁，rowid指向包含数据库名的记录。&lt;br /&gt;*表 ——————&amp;gt;;表锁显示为表上的锁，rowid为0，keynum为0。&lt;br /&gt;*页 ——————&amp;gt;;页锁显示为rowid以00结尾，即页中的所有行均锁定。&lt;br /&gt;*行 ——————&amp;gt;;行锁显示实际rowid(不以00结尾)。&lt;br /&gt;*键 ——————&amp;gt;;键锁显示为keynum如果行的索引需要更新，则锁在该行的索引。&lt;br /&gt;********************************************************}&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.sysseswts {对象等待状态与时间}&lt;br /&gt;( &lt;br /&gt;sid integer, {对话ID }&lt;br /&gt;reason char(50), {等待原因说明 }&lt;br /&gt;numwaits integer, {这个原因的等待数 }&lt;br /&gt;cumtime float, {这个原因的等待累计时间}&lt;br /&gt;maxtime integer {这个原因的等待最长时间}&lt;br /&gt;);&lt;br /&gt;grant select on sysseswts to public;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.systrans {用户事务}&lt;br /&gt;( &lt;br /&gt;tx_id integer,{事务表指针 }&lt;br /&gt;tx_logbeg integer,{事务开始的逻辑日志号 }&lt;br /&gt;tx_loguniq integer {事务中使用的当前逻辑日志号}&lt;br /&gt;);&lt;br /&gt;grant select on systrans to public;&lt;/p&gt;&lt;p&gt;create table &amp;quot;sysmaster&amp;quot;.syssqexpalin {用户查询}&lt;br /&gt;( &lt;br /&gt;sqx_sessionid integer, {SQL语句的对话ID，匹配onstat -u 输出 }&lt;br /&gt;sqx_bufreads integer, {SQL语句完成的缓冲区读次数}&lt;br /&gt;sqx_pagereads integer, {SQL语句完成的页面读次数}&lt;br /&gt;sqx_totsorts integer, {SQL语句完成的排序次数}&lt;br /&gt;sqx_estcost integer, {这个查询的估计成本，应与SET EXPLAIN的输出相同。注：这个成本有时偏高，但可以作为寻找坏查询的参考}&lt;br /&gt;sqx_estrows integer, {检查这个查询返回的行，应与SET EXPALIN的输出相同}&lt;br /&gt;sqx_seqscan smallint,{查询是顺序表格扫描时返回1，通常表示有问题}&lt;br /&gt;sqx_srtscan smallint,{查询是排序扫描时返回1}&lt;br /&gt;sqx_autoindex smallint,{查询是表格自动索引时返回1}&lt;br /&gt;sqx_mrgjoin smallint,{查询是合并连接时返回1}&lt;br /&gt;sqx_dynhashjoin smallint,{查询是动态散列连接时返回1 }&lt;br /&gt;sqx_sqlstatement char(32000){SQL语句文本 }&lt;br /&gt;);&lt;br /&gt;grant select on syssqexplain to public;&lt;/p&gt;&lt;p&gt;参考资料:Informix数据库管理员手册&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/404.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/404/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/404.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/404/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/403.aspx</link>
		<title>informx技术支持库</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>数据库技术</category>
		<pubDate>Tue, 26 Jan 2010 01:59:10 GMT</pubDate>
		<description>&lt;p&gt;&lt;a href=&quot;http://www-900.ibm.com/cn/support/viewdoc/uprosupport?pageid=0&amp;amp;category=5&quot; target=&quot;_blank&quot;&gt;informx技术支持库&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;table border=&quot;0&quot; cellspacing=&quot;2&quot; cellpadding=&quot;0&quot; width=&quot;443&quot;&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td class=&quot;v14-header-1&quot; colspan=&quot;3&quot;&gt;&lt;p&gt;标题&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;3&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=&quot;1&quot; height=&quot;5&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L15000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何清理hung住的分布式事务&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L23000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;IDS 11.50版本中的限制连接数新特性介绍&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L30000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何找到数据库的哪些用户具有DBA权限？&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L30001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;为什么数据库的逻辑日志不能够动态增加？&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L30002&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何让informix数据库再次进入到恢复模式，来完成之前失败的数据备份恢复操作？&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1417869H06000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;应用程序变更引起的KAIO: out of OS resources&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869I16000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;使用onbar备份做表级恢复时 archeck core dump&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869K02000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何正确删除informix的共享内存段&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869K03000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何判断不同类型的长事务&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869K04000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Onbar备份恢复的辅助工具 onsmsync&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869K04001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;当遇到日志满的情况时应该收集的信息&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869K05000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;异步方式下 HDR备机对主机的性能影响&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869K16000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;获取当前informix产品或库文件版本几种方法&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869K16001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何获取最近的SQL执行时生成的serial值和所处理的记录数&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869K23000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;查询优化器介绍&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L02000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何查找那个session使用了过多的临时表空间&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L08000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;使用fragment提高权限管理的粒度&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L08001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;使用PDQ提高建立index的效率&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L14000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix 一个锁占用多少内存空间&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869J09000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何监控Informix数据库长事务回滚进度&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869J09001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;全局事务事务导致数据库阻塞的解决方法&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869K23000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;使用SQL trace分析SQL语句&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869K24000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix CLI 与 ODBC&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869L14000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Onstat 　g ntt 打印出网络用户时间&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869L14001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Onstat 　u输出&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869L14002&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;时间戳&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869L14004&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;使用onmode 　F 释放共享内存&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869L14001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;是否可以在HDR secondary上执行oncheck检查？&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2010-01-08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869G30000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;IDS通信文件.info.servicename&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869G30000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;audit初步使用&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;table border=&quot;0&quot; cellspacing=&quot;2&quot; cellpadding=&quot;0&quot; width=&quot;443&quot;&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td class=&quot;v14-header-1&quot; colspan=&quot;3&quot;&gt;标题&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;3&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=&quot;1&quot; height=&quot;5&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869F16000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何查找表中存在的重复记录&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869F16001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;使用硬件复制技术备份Informix时，需要步骤&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869F22000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;IDS 11.50.xC5 &apos;合并&apos;新功能介绍&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2997869F22000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;ISA之远程信息收集&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2997869F22001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何使用setLogWriter打开Informix JDBC driver的跟踪日志&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869F22000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何监控数据库的回滚进程&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2997869F22002&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何使用新的方法来打开SQLIDEBUG&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869F22001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;收集数据之客户端服务器连接-客户端连接失败&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869F22002&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;对于informix产品问题需要收集的一般性信息&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869F23000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;IDS11.50.xC5 “延迟处理”新功能介绍&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869F23000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;IDS11.50.xC5“分级查询”新功能介绍&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G01000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;无标题&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G17000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;备份信息是如何存储在保留页当中的&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G17001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;在线日志中关于逻辑日志的警告信息及预防措施&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G17002&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;使用SQL创建默认的Low/medium/high update statistics 语句&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G17003&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何获得含有远程表的查询计划&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G20000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;升级到JDBC3.50后，插入数据报“-79783 Encoding or code set not supported”的错误信息&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G20001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;JDBC3.50 在WAS 6.0版本上不能正确显示中文的问题&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G30000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;HDR环境使用sequence对象可出现重复值&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869G30000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;IDS通信文件.info.servicename&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869G30000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;audit初步使用&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869G31000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix 11.5 新特性介绍: 第 1 部分&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869G31001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix 11.5 新特性介绍: 第 2 部分&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869G31002&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix 11.5 新特性介绍: 第 3 部分&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869G31003&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix 11.5 新特性介绍: 第 4 部分&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1197869H05000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何卸载Informix产品&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869H05000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;HDR数据复制过程原理&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869H05000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;为什么HDR Secondary会丢失已经提交的交易&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869H07000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix 11.5 新特性介绍: 第 5 部分&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2697869H07001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix 11.5 新特性介绍: 第 6 部分&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;table border=&quot;0&quot; cellspacing=&quot;2&quot; cellpadding=&quot;0&quot; width=&quot;443&quot;&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td class=&quot;v14-header-1&quot; colspan=&quot;3&quot;&gt;标题&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;3&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=&quot;1&quot; height=&quot;5&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G20000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;升级到JDBC3.50后，插入数据报“-79783 Encoding or code set not supported”的错误信息&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G20001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;JDBC3.50 在WAS 6.0版本上不能正确显示中文的问题&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869G30000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;HDR环境使用sequence对象可出现重复值&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-08-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869E08000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何删除共享内存段&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-26&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869E08001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Server Hung in Blocked Checkpoint&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-26&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1497869D16000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Bufwait问题分析&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-26&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869D29000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;应用插入数据报 -271 错误分析&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-26&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1697869E18000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何重新安装scheduler API&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-26&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869E18000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix配置参数EXTSHMADD用途简述&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-26&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2827869C18000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;update statistics的功能与作用介绍&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-21&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=7897869D15000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;避免长事务的方法&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-21&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=7897869D15001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;死锁的预防&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-21&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2497869D16000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;RA_PAGES 和 RA_THRESHOLD 的配置与调整&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-21&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2997869D16000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;-881 Resulting string length from TRIM exceeds the limit&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-21&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869D28000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;怎样开启IDS的大chunk支持&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-20&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869D28001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Onstat工具的加强与更新(2)&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-20&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869E05000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;KAIO OUT OF RESOURCE&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-05-20&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869B12000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;怎样重构或者迁移IDS 11版本中的sysadmin系统数据库。&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-10&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1997869C27000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;收集数据：informix家族产品必读&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-10&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1697869C26000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;解决数据库系统中存在的半个汉字问题&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-10&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1697869C26001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#996699&quot;&gt;实时监控数据库表的数据插入情况&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-10&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1197869C30000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何下载informix产品或补丁版本&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-10&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869A07000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;INFORMIX锁机制及如何分析其锁冲突（第一部分）&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-03&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869A08000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;INFORMIX锁机制及如何分析其锁冲突（第二部分）&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-03&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869A20001&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;理解Informix Dynamic Server index B-Tree scanner&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-03&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869C27000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;[Informix数据库服务器数据访问方式分析及优化方法之二&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-03&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869C26000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#996699&quot;&gt;Informix主要系统表的结构及相关字段的含义&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-01&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2997869C27000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;HP 平台上如何判断是否达到文件描述符使用上限&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-01&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2607869B13000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix数据库对UTF8字符集的支持&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-01&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869B26000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何除去表中数据回车符的方法&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-01&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table border=&quot;0&quot; cellspacing=&quot;2&quot; cellpadding=&quot;0&quot; width=&quot;443&quot;&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td class=&quot;v14-header-1&quot; colspan=&quot;3&quot;&gt;标题&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;3&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=&quot;1&quot; height=&quot;5&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1857869C25000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Errors -25573 and oserr = 233 or Network driver cannot accept a connection on the port&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-01&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2997869C27000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;HP 平台上如何判断是否达到文件描述符使用上限&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-01&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2807869C30000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix XPS 安装配置和基本使用&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-01&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=7697869C26000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;informix 虚拟处理器&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-04-01&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1697869B12000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;有关informix BTS defect问题导致IDS数据库系统运行故障的说明。&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-02-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2427869A19000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#996699&quot;&gt;informix中理解统计更新&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-02-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869B13000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#996699&quot;&gt;informix客户端连接数据库,报密码错误&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-02-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2897869A12000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix数据库服务器数据访问方式分析及优化方法第一部分&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-02-17&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869A13000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;使用onlog查找、验证历史信息&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-02-13&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897869A22000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何kill分布式事务类型的长事务&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-02-13&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1197869A13000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;Informix与client SDK安装顺序，及其匹配原则&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-02-13&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1697869A22000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;IDS 7版与IDS 9版HDR的差异&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-02-13&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot; bordercolorlight=&quot;#ffffff&quot; bordercolordark=&quot;#ffffff&quot; bordercolor=&quot;#ffffff&quot;&gt;&lt;td bgcolor=&quot;#ffffff&quot; height=&quot;20&quot; width=&quot;16&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/fw.gif&quot; /&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;339&quot;&gt;&lt;a class=&quot;fbox&quot; href=&quot;http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897868L24000&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5c81a7&quot;&gt;如何估算长事务回滚的时间&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td bgcolor=&quot;#ffffff&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;center&quot;&gt;2009-02-09&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/403.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/403/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/403.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/403/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/402.aspx</link>
		<title>浅谈Java中的垃圾回收机制</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>技术文摘</category>
		<pubDate>Fri, 22 Jan 2010 08:37:54 GMT</pubDate>
		<description>&lt;p&gt;1.垃圾回收是一种动态存储管理技术，它自动地释放不再被程序引用的对象，按照特定的垃圾收集算法来实现资源自动回收的功能。当一个对象不再被引用的时候，内存回收它占领的空间，以便空间被后来的新对象使用。&lt;br /&gt;事实上，除了释放没用的对象，垃圾收集也可以清除内存记录碎片。&lt;br /&gt;2.但是任何一种垃圾收集算法一般要做2件基本的事情：（1）发现无用信息对象；（2）回收被无用对象占用的内存空间，使该空间可被程序再次使用。&lt;br /&gt;如何来发现无用的信息对象呢？如何来回收呢？&lt;br /&gt;3.大多数垃圾回收算法使用了根集(root set)这个概念；所谓根集就量正在执行的Java程序可以访问的引用变量的集合(包括局部变量、参数、类变量)，程序可以使用引用变量访问对象的属性和调用对象的方法。垃圾收集首选需要确定从根开始哪些是可达的和哪些是不可达的，从根集可达的对象都是活动对象，它们不能作为垃圾被回收，这也包括从根集间接可达的对象。而根集通过任意路径不可达的对象符合垃圾收集的条件，应该被回收。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;1、 引用计数法(Reference Counting Collector)&lt;br /&gt;&lt;br /&gt;　　引用计数法是唯一没有使用根集的垃圾回收的法，该算法使用引用计数器来区分存活对象和不再使用的对象。一般来说，堆中的每个对象对应一个引用计数器。当每一次创建一个对象(new一个对象)并赋给一个变量时，引用计数器置为 1。当对象被赋给任意变量时，引用计数器每次加1当对象出了作用域后(该对象丢弃不再使用，请问是什么知道这个对象 是不要用了呢？)，引用计数器减1，一旦引用计数器为0，对象就满足了垃圾收集的条件。&lt;br /&gt;&lt;br /&gt;2、tracing算法(Tracing Collector)&lt;br /&gt;&lt;br /&gt;　　tracing算法是为了解决引用计数法的问题而提出，它使用了根集的概念。基于tracing算法的垃圾收集器从根集开始扫描，识别出哪些对象可达，哪些对象不可达，并用某种方式标记可达对象，例如对每个可达对象设置一个或多个位。在扫描识别过程中，基于tracing算法的垃圾收集也称为标记和清除(mark-and-sweep)垃圾收集器.&lt;br /&gt;&lt;br /&gt;3、compacting算法(Compacting Collector)&lt;br /&gt;&lt;br /&gt;　　为了解决堆碎片问题，基于tracing的垃圾回收吸收了Compacting算法的思想，在清除的过程中，算法将所有的对象移到堆的一端，堆的另一端就变成了一个相邻的空闲内存区，收集器会对它移动的所有对象的所有引用进行更新，使得这些引用在新的位置能识别原来 的对象。在基于Compacting算法的收集器的实现中，一般增加句柄和句柄表。　　&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;分代垃圾回收详述&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left&quot;&gt;&lt;img class=&quot;Image&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1001/vyj09p_150432_1.gif&quot; /&gt;&lt;br /&gt;如上图所示，为Java堆中的各代分布。&lt;/p&gt;&lt;ol style=&quot;text-align: left&quot;&gt;&lt;li&gt;&lt;strong&gt;Young（年轻代）&lt;br /&gt;&lt;/strong&gt;年轻代分三个区。一个Eden区，两个Survivor区。大部分对象在 Eden区中生成。当Eden区满时，还存活的对象将被复制到Survivor区（两个中的一个），当这个Survivor区满时，此区的存活对象将被复制到另外一个Survivor区，当这个Survivor去也满了的时候，从第一个Survivor区复制过来的并且此时还存活的对象，将被复制“年老区 (Tenured)”。需要注意，Survivor的两个区是对称的，没先后关系，所以同一个区中可能同时存在从Eden复制过来对象，和从前一个Survivor复制过来的对象，而复制到年老区的只有从第一个Survivor去过来的对象。而且，Survivor区总有一个是空的。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Tenured（年老代）&lt;br /&gt;&lt;/strong&gt;年老代存放从年轻代存活的对象。一般来说年老代存放的都是生命期较长的对象。&lt;/li&gt;&lt;li style=&quot;text-align: left&quot;&gt;&lt;strong&gt;Perm（持久代）&lt;br /&gt;&lt;/strong&gt;用于存放静态文件，如今 Java类、方法等。持久代对垃圾回收没有显著影响，但是有些应用可能动态生成或者调用一些class，例如Hibernate等，在这种时候需要设置一个比较大的持久代空间来存放这些运行过程中新增的类。持久代大小通过-XX:MaxPermSize=&amp;lt;N&amp;gt;进行设置。&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;GC类型&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;GC有两种类型：&lt;strong&gt;Scavenge GC和Full GC&lt;/strong&gt;。&lt;/p&gt;&lt;ol style=&quot;text-align: left&quot;&gt;&lt;li&gt;Scavenge GC&lt;br /&gt;一般情况下，当新对象生成，并且在Eden申请空间失败时，就好触发Scavenge GC，堆Eden区域进行GC，清除非存活对象，并且把尚且存活的对象移动到Survivor区。然后整理Survivor的两个区。&lt;/li&gt;&lt;li&gt;&lt;p&gt;Full GC&lt;br /&gt;对整个堆进行整理，包括Young、Tenured和Perm。Full GC比Scavenge GC要慢，因此应该尽可能减少Full GC。有如下原因可能导致Full GC：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Tenured被写满&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Perm域被写满&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;System.gc()被显示调用&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;上一次GC之后Heap的各域分配策略动态变化&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;目前的收集器主要有三种：&lt;strong&gt;串行收集器、并行收集器、并发收集器&lt;/strong&gt;。&lt;br /&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left&quot;&gt;&lt;li&gt;&lt;strong&gt;串行收集器&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;使用单线程处理所有垃圾回收工作，因为无需多线程交互，所以效率比较高。但是，也无法使用多处理器的优势，所以此收集器适合单处理器机器。当然，此收集器也可以用在小数据量（&lt;strong&gt;100M&lt;/strong&gt;左右）情况下的多处理器机器上。可以使用&lt;strong&gt;-XX:+UseSerialGC&lt;/strong&gt;打开。&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;并行收集器&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;对年轻代进行并行垃圾回收，因此可以减少垃圾回收时间。一般在多线程多处理器机器上使用。使用&lt;strong&gt;-XX:+UseParallelGC&lt;/strong&gt;.打开。并行收集器在J2SE5.0第六6更新上引入，在Java SE6.0中进行了增强--可以堆年老代进行并行收集。&lt;strong&gt;如果年老代不使用并发收集的话，是使用单线程进行垃圾回收&lt;/strong&gt;，因此会制约扩展能力。使用&lt;strong&gt;-XX:+UseParallelOldGC&lt;/strong&gt;打开。&lt;/li&gt;&lt;li&gt;使用&lt;strong&gt;-XX:ParallelGCThreads=&amp;lt;N&amp;gt;&lt;/strong&gt;设置并行垃圾回收的线程数。&lt;strong&gt;此值可以设置与机器处理器数量相等&lt;/strong&gt;。&lt;/li&gt;&lt;li&gt;&lt;p&gt;此收集器可以进行如下配置：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;最大垃圾回收暂停:&lt;/strong&gt;指定垃圾回收时的最长暂停时间，通过&lt;strong&gt;-XX:MaxGCPauseMillis=&amp;lt;N&amp;gt;&lt;/strong&gt;指定。&amp;lt;N&amp;gt;为毫秒.如果指定了此值的话，&lt;strong&gt;堆大小和垃圾回收相关参数会进行调整以达到指定值&lt;/strong&gt;。设定此值可能会减少应用的吞吐量。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;吞吐量:&lt;/strong&gt;吞吐量为&lt;strong&gt;垃圾回收时间与非垃圾回收时间的比值&lt;/strong&gt;，通过&lt;strong&gt;-XX:GCTimeRatio=&amp;lt;N&amp;gt;&lt;/strong&gt;来设定，公式为&lt;strong&gt;1/（1+N）&lt;/strong&gt;。例如，-XX:GCTimeRatio=19时，表示5%的时间用于垃圾回收。默认情况为99，即1%的时间用于垃圾回收。&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;并发收集器&lt;br /&gt;&lt;/strong&gt;可以保证大部分工作都并发进行（应用不停止），垃圾回收只暂停很少的时间，此收集器适合对响应时间要求比较高的中、大规模应用。使用&lt;strong&gt;-XX:+UseConcMarkSweepGC&lt;/strong&gt;打开。&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;并发收集器主要减少年老代的暂停时间，他在应用不停止的情况下使用独立的垃圾回收线程，跟踪可达对象。在每个年老代垃圾回收周期中，在收集初期并发收集器会对整个应用进行简短的暂停，在收集中还会再暂停一次。第二次暂停会比第一次稍长，在此过程中多个线程同时进行垃圾回收工作。&lt;/li&gt;&lt;li&gt;并发收集器使用&lt;strong&gt;处理器换来短暂的停顿时间&lt;/strong&gt;。在一个N个处理器的系统上，并发收集部分使用&lt;strong&gt;K/N&lt;/strong&gt;个可用处理器进行回收，一般情况下&lt;strong&gt;1&amp;lt;=K&amp;lt;=N/4&lt;/strong&gt;。&lt;/li&gt;&lt;li&gt;在只有&lt;strong&gt;一个处理器的主机上使用并发收集器&lt;/strong&gt;，设置为&lt;strong&gt;incremental mode&lt;/strong&gt;模式也可获得较短的停顿时间。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;浮动垃圾&lt;/strong&gt;：由于在应用运行的同时进行垃圾回收，所以有些垃圾可能在垃圾回收进行完成时产生，这样就造成了“Floating Garbage”，这些垃圾需要在下次垃圾回收周期时才能回收掉。所以，并发收集器一般需要&lt;strong&gt;20%&lt;/strong&gt;的预留空间用于这些浮动垃圾。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Concurrent Mode Failure&lt;/strong&gt;：并发收集器在应用运行时进行收集，所以需要保证堆在垃圾回收的这段时间有足够的空间供程序使用，否则，垃圾回收还未完成，堆空间先满了。这种情况下将会发生“并发模式失败”，此时整个应用将会暂停，进行垃圾回收。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;启动并发收集器&lt;/strong&gt;：因为并发收集在应用运行时进行收集，所以必须保证收集完成之前有足够的内存空间供程序使用，否则会出现“Concurrent Mode Failure”。通过设置&lt;strong&gt;-XX:CMSInitiatingOccupancyFraction=&amp;lt;N&amp;gt;&lt;/strong&gt;指定还有多少剩余堆时开始执行并发收集&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;小结&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;串行处理器：&lt;/strong&gt;&lt;br /&gt;--适用情况：数据量比较小（100M左右）；单处理器下并且对响应时间无要求的应用。&lt;br /&gt;--缺点：只能用于小型应用&lt;/li&gt;&lt;li&gt;&lt;strong&gt;并行处理器：&lt;/strong&gt;&lt;br /&gt;--适用情况：“对吞吐量有高要求”，多CPU、对应用响应时间无要求的中、大型应用。举例：后台处理、科学计算。&lt;br /&gt;--缺点：应用响应时间可能较长&lt;/li&gt;&lt;li&gt;&lt;strong&gt;并发处理器：&lt;br /&gt;&lt;/strong&gt;--适用情况：“对响应时间有高要求”，多CPU、对应用响应时间有较高要求的中、大型应用。举例：Web服务器/应用服务器、电信交换、集成开发环境。&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;堆大小设置&lt;br /&gt;&lt;/strong&gt;JVM 中最大堆大小有三方面限制：相关操作系统的数据模型（32-bt还是64-bit）限制；系统的可用虚拟内存限制；系统的可用物理内存限制。32位系统下，一般限制在1.5G~2G；64为操作系统对内存无限制。我在Windows Server 2003 系统，3.5G物理内存，JDK5.0下测试，最大可设置为1478m。&lt;br /&gt;&lt;code&gt;&lt;strong&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;典型设置：&lt;/span&gt;&lt;/strong&gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;ol class=&quot;dp-xml&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;java&amp;nbsp;-Xmx3550m&amp;nbsp;-Xms3550m&amp;nbsp;-Xss128k&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:NewRatio&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;4&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:SurvivorRatio&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;4&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:MaxPermSize&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;16m&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:MaxTenuringThreshold&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;&lt;code&gt;&lt;strong&gt;说明：&lt;/strong&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;&lt;code&gt;&lt;strong&gt;-Xmx3550m&lt;/strong&gt;：设置JVM最大可用内存为3550M。&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;&lt;code&gt;&lt;strong&gt;-Xms3550m&lt;/strong&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;&lt;code&gt;：设置JVM促使内存为3550m。此值可以设置与-Xmx相同，以避免每次垃圾回收完成后JVM重新分配内存。&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;&lt;code&gt;&lt;strong&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;-Xmn2g&lt;/span&gt;&lt;/strong&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;&lt;code&gt;：设置年轻代大小为2G。&lt;strong&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;整个堆大小=年轻代大小 + 年老代大小 + 持久代大小&lt;/span&gt;&lt;/strong&gt;。持久代一般固定大小为64m，所以增大年轻代后，将会减小年老代大小。此值对系统性能影响较大，Sun官方推荐配置为整个堆的3/8。&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;&lt;code&gt;&lt;strong&gt;-Xss128k&lt;/strong&gt;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;：设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M，以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下，减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的，不能无限生成，经验值在3000~5000左右。&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;&lt;code&gt;&lt;strong&gt;-XX:NewRatio=4&lt;/strong&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style=&quot;font-family: NSimsun&quot;&gt;&lt;code&gt;:设置年轻代（包括Eden和两个Survivor区）与年老代的比值（除去持久代）。设置为4，则年轻代与年老代所占比值为1：4，年轻代占整个堆栈的1/5&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;pre&gt;&lt;ol class=&quot;dp-xml&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;java&amp;nbsp;-Xmx3550m&amp;nbsp;-Xms3550m&amp;nbsp;-Xss128k&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:NewRatio&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;4&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:SurvivorRatio&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;4&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:MaxPermSize&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;16m&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:MaxTenuringThreshold&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;0&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;b&gt;&lt;span&gt;说明：&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:NewRatio&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;4&lt;/span&gt;&lt;span&gt;:设置年轻代（包括Eden和两个Survivor区）与年老代的比值（除去持久代）。设置为4，则年轻代与年老代所占比值为1：4，年轻代占整个堆栈的1/5 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:SurvivorRatio&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;4&lt;/span&gt;&lt;span&gt;：设置年轻代中Eden区与Survivor区的大小比值。设置为4，则两个Survivor区与一个Eden区的比值为2:4，一个Survivor区占整个年轻代的1/6 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:MaxPermSize&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;16m&lt;/span&gt;&lt;span&gt;:设置持久代大小为16m。 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;attribute&quot;&gt;-XX:MaxTenuringThreshold&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;0&lt;/span&gt;&lt;span&gt;：设置垃圾最大年龄。&lt;b&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;如果设置为0的话，则年轻代对象不经过Survivor区，直接进入年老代。&lt;/span&gt;&lt;/b&gt;对于年老代比较多的应用，可以提高效率。&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;b&gt;如果将此值设置为一个较大值，则年轻代对象会在Survivor区进行多次复制，这样可以增加对象再年轻代的存活时间&lt;/b&gt;&lt;/span&gt;，增加在年轻代即被回收的概论。 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;常见配置汇总&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;堆设置&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;-Xms&lt;/strong&gt;:初始堆大小&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-Xmx&lt;/strong&gt;:最大堆大小&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:NewSize=n&lt;/strong&gt;:设置年轻代大小&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:NewRatio=n:&lt;/strong&gt;设置年轻代和年老代的比值。如:为3，表示年轻代与年老代比值为1：3，年轻代占整个年轻代年老代和的1/4&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:SurvivorRatio=n&lt;/strong&gt;:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如：3，表示Eden：Survivor=3：2，一个Survivor区占整个年轻代的1/5&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:MaxPermSize=n&lt;/strong&gt;:设置持久代大小&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;收集器设置&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;-XX:+UseSerialGC&lt;/strong&gt;:设置串行收集器&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:+UseParallelGC&lt;/strong&gt;:设置并行收集器&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:+UseParalledlOldGC&lt;/strong&gt;:设置并行年老代收集器&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:+UseConcMarkSweepGC&lt;/strong&gt;:设置并发收集器&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;垃圾回收统计信息&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;-XX:+PrintGC&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:+PrintGCDetails&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:+PrintGCTimeStamps&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-Xloggc:filename&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;并行收集器设置&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;-XX:ParallelGCThreads=n&lt;/strong&gt;:设置并行收集器收集时使用的CPU数。并行收集线程数。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:MaxGCPauseMillis=n&lt;/strong&gt;:设置并行收集最大暂停时间&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:GCTimeRatio=n&lt;/strong&gt;:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;并发收集器设置&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;-XX:+CMSIncrementalMode&lt;/strong&gt;:设置为增量模式。适用于单CPU情况。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;-XX:ParallelGCThreads=n&lt;/strong&gt;:设置并发收集器年轻代收集方式为并行收集时，使用的CPU数。并行收集线程数&lt;/li&gt;&lt;/ul&gt;</description>
		<guid>http://www.517sou.net/Article/402.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/402/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/402.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/402/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/401.aspx</link>
		<title>php中session过期时间设置</title>
		<author>shanyiwan@live.com(flyinweb)</author>
		<category>技术文摘</category>
		<pubDate>Fri, 22 Jan 2010 02:34:52 GMT</pubDate>
		<description>&lt;p&gt;php中session过期时间设置：修改PHP配置文件中的session.gc_maxlifetime。&lt;/p&gt;&lt;p&gt;概述：每一次php请求，会有1/100的概率（默认值）触发“session回收”。如果“session回收”发生，那就会检查/tmp/sess_*的文件，如果最后的修改时间到现在超过了1440秒（gc_maxlifetime的值），就将其删除，意味着这些session过期失效。&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;1. session在Server&lt;/font&gt;&lt;font color=&quot;#ff0000&quot;&gt;端（一般是Apache with PHP module）如何存在的？&lt;/font&gt;&lt;/p&gt;&lt;p&gt;默认的，php会将session保存在/tmp目录下，文件名为这个样子：sess_01aab840166fd1dc253e3b4a3f0b8381。每一个文件对应了一个session（会话）。&lt;/p&gt;&lt;div class=&quot;mycode&quot;&gt;more /tmp/sess_01aab840166fd1dc253e3b4a3f0b8381&lt;br /&gt;username|s:9:”jiangfeng”;admin|s:1:”0″;&lt;br /&gt;#变量名|类型:长度:值&lt;/div&gt;&lt;p&gt;删除这里的session文件，就表示对应的session失效了。&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;2. session在client端（一般是浏览器）如何存在的？&lt;/font&gt;&lt;/p&gt;&lt;p&gt;session在浏览器端，只需要保存session ID（由server端生成的唯一ID）就可以了。有两种保存方式：在cookie中、在url里面。如果cookie中保存session ID，就可以看到浏览器的cookie中有一个PHPSESID变量。如果是URL传递的，就可以看到形如:&lt;br /&gt;index.php?PHPSESID=01aab840166fd1dc253e3b4a3f0b8381的URL。（在server端通过session.use_cookies来控制使用哪一种方式）&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;3. 在server端，php如何判断session文件是否过期？&lt;/font&gt;&lt;/p&gt;&lt;p&gt;如果”最后的修改时间”到”现在”超过了gc_maxlifetime（默认是1440）秒，这个session文件就被认为是过期了，在下一次session回收的时候，如果这个文件仍然没有被更改过，这个session文件就会被删除（session就过期了）。&lt;/p&gt;&lt;p&gt;简单的说，如果我登录到某网站，如果在1440秒（默认值）内没有操作过，那么对应的session就认为是过期了。&lt;/p&gt;&lt;p&gt;所以，修改php.ini文件中的gc_maxlifetime变量就可以延长session的过期时间了：（例如，我们把过期时间修改为86400秒）&lt;/p&gt;&lt;div class=&quot;mycode&quot;&gt;session.gc_maxlifetime = 86400&lt;/div&gt;&lt;p&gt;然后，重启你的web服务（一般是apache）就可以了。&lt;/p&gt;&lt;p&gt;注意：php5里面session过期使用了回收机制。这里设置时间为86400秒，如果session在86400秒内没有被修改过，那么在下一次“回收”时才真的被删除。&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;3. session“回收”何时发生？&lt;/font&gt;&lt;/p&gt;&lt;p&gt;默认情况下，每一次php请求，就会有1/100的概率发生回收，所以可能简单的理解为“每100次php请求就有一次回收发生”。这个概率是通过以下参数控制的&lt;/p&gt;&lt;div class=&quot;mycode&quot;&gt;#概率是gc_probability/gc_divisor&lt;br /&gt;session.gc_probability = 1&lt;br /&gt;session.gc_divisor = 100&lt;/div&gt;&lt;p&gt;注意1：假设这种情况gc_maxlifetime=120，如果某个session文件最后修改时间是120秒之前，那么在下一次回收（1/100的概率）发生前，这个session仍然是有效的。&lt;/p&gt;&lt;p&gt;注意2：如果你的session使用session.save_path中使用别的地方保存session，session回收机制有可能不会自动处理过期session文件。这时需要定时手动（或者crontab）的删除过期的session：cd /path/to/sessions; find -cmin +24 | xargs rm&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;4. 一些特殊情况&lt;/font&gt;&lt;/p&gt;&lt;p&gt;因为回收机制会检查文件的“最后修改时间”，所以如果某个会话是活跃的，但是session的内容没有改变过，那么对应的session文件也就没有改变过，回收机制会认为这是一个长时间没有活跃的session而将其删除。这是我们不愿看到的，可以通过增加如下的简单代码解决这个问题：&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;lt;?php &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;(!isset(&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$_SESSION&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;last_access&apos;&lt;/span&gt;&lt;span&gt;])||(time()-&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$_SESSION&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;last_access&apos;&lt;/span&gt;&lt;span&gt;])&amp;gt;60) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;vars&quot;&gt;$_SESSION&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;last_access&apos;&lt;/span&gt;&lt;span&gt;]&amp;nbsp;=&amp;nbsp;time(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;?&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;代码会每隔60秒，尝试修改修改一次session。&lt;/p&gt;&lt;p&gt;总结：如果想修改session过期时间，修改变量gc_maxlifetime就可以了。php5的session采用被动的回收机制（garbage collection）。过期的session文件不会自己消失，而是通过触发“回收”来处理过期的session。&lt;/p&gt;&lt;p&gt;更多资源：&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://cn.php.net/manual/en/session.configuration.php&quot; target=&quot;_blank&quot;&gt;PHP Runtime Configuration&lt;/a&gt;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/401.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/401/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/401.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/401/Feeds.ashx</wfw:commentRss>
	</item>
</channel>
</rss>