﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-bangzhu</title><link>http://www.blogjava.net/bangzhu/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 18:43:12 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 18:43:12 GMT</pubDate><ttl>60</ttl><item><title>esxi 中两台vesx vmkernel不能通信</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/26/384110.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Thu, 26 Jul 2012 14:36:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/26/384110.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/384110.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/26/384110.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/384110.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/384110.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">在一台DELL R710上安装了esxi5.0，并部署了两台esxi5.0的VM，名为vesxA,vesxB.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">并在两台vesx上分别创建了vmkernel，连接到同一vSwitch,完成后，发现两台vesx间不能用vmkernel通信。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">后请教有经验的同事，说是虚中虚需要在vSwitch中开启 混杂模式，经测试问题解决。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">但是为什么呢？</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">请教高人得出答案：</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">由于vSwitch中的MAC TABLE记录只能从虚拟机的.vmx文件中读取。而.vmx中记录的MAC是虚拟机的网卡的MAC，当我们新建了一个vmkernel port后，生成的MAC并没有写入.vmx。所以当vSwitch 收到关于vmkernel port后，发现没有相关MAC记录，就会把包丢弃。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">有人会问，交换机不是有Flooding功能么？</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">估计是由于vSwitch节省资源开销的原因，没有使用这个功能，所以这个时候就需要打开混杂模式，将vSwitch变成vHUB.</p><img src ="http://www.blogjava.net/bangzhu/aggbug/384110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-26 22:36 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/26/384110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Suse Linux开启FTP服务</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/26/384109.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Thu, 26 Jul 2012 14:35:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/26/384109.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/384109.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/26/384109.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/384109.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/384109.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">一、配置/etc/vsftpd.conf文件</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">1、vi /etc/vsftpd.conf</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">2、修改如下配置项</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 30px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;anonymous_enable=YES &nbsp;改成 anonymous_enable=NO&nbsp;&nbsp; // 不启用匿名访问</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 30px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 30px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;#local_enable=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 改成 local_enable=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; // 开启本地用户登录服务</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 30px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 30px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;#write_enable=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;改成 write_enable=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // 开启任何用户的写权限</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">二、配置/etc/ftpusers文件</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">1、vi&nbsp; /etc/ftpusers</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">2、该文件中列出的用户是禁止使用FTP登录的，如果要使这些用户通过FTP登录，在用户前面加上#</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 30px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">三、重启FTP服务</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 30px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;<br />service vsftpd restart</p><img src ="http://www.blogjava.net/bangzhu/aggbug/384109.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-26 22:35 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/26/384109.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Myeclipse启动不了的解决方法</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/26/384108.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Thu, 26 Jul 2012 14:34:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/26/384108.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/384108.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/26/384108.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/384108.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/384108.html</trackback:ping><description><![CDATA[<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp; &nbsp;我们在开发过程中经常在加载大工程时由于项目很大，导致编译时间很长。或是其他原因导致进度条有时候一直在不停地跑，占用了大量内存，在无奈之下直接将进程kill掉，当再次打开，这时候悲剧的事情发生了</span><img src="http://zjhlht.iteye.com/images/smiles/icon_mad.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "  alt="" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;&nbsp;&nbsp; 发现MyEclipse启动不了了，进程的内存大小永远都是恒定值。陷入了一个纠结中。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">这里就说一下在工作经常遇到这样的问题是怎样解决的：&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">环境说明</strong>&nbsp;<br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">IDE版本： Myecplise6.0（其他版本方法相同）&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">安装路径：D:\dev_IDE\myeclipse&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">工作空间：D:\dev_IDE\myeclipse\workspace&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">方法一：修改工作空间</strong>&nbsp;<br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;&nbsp;&nbsp; 在刚启动Myeclipse的时候会有一个选择工作空间的地方。换一个新的工作空间即可，若是原来将默认工作空间勾中了，没有出来，就去你的MyEclipse安装路径中（如：D:\dev_IDE\myeclipse\eclipse\configuration\.settings），里面有个org.eclipse.ui.ide.prefs文件，将里面的SHOW_WORKSPACE_SELECTION_DIALOG修改为true即可。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;&nbsp;&nbsp; 这样做有个坏处，就是需要你重新import你的工程，需要重新编译，需要你养成经常备份的习惯。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">方法二：删除错误编译信息</strong>&nbsp;<br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;&nbsp;&nbsp; 这个方法最近才发现，当你由于在编译工程期间将进程kill掉以后，就会有编译加载&#8220;内容&#8221;出错，导致在启动的时候无法解析这个&#8220;内容&#8221;，所以要将该内容清除。如，当你的工程名为&#8220;TestProject&#8221;，在安装文件夹中（D:\dev_IDE\myeclipse\workspace\.metadata\.plugins\org.eclipse.core.resources\.projects\TestProject），有两个文件.markers和.markers.snap，将这两个文件删除。重启Myeclipse，OK了。&nbsp;</span>&nbsp;<img src ="http://www.blogjava.net/bangzhu/aggbug/384108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-26 22:34 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/26/384108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>三十而立的人生准则，会有更新</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/21/383672.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Sat, 21 Jul 2012 14:24:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/21/383672.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/383672.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/21/383672.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/383672.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/383672.html</trackback:ping><description><![CDATA[<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">第一条：&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;&nbsp;&nbsp; 学习是和我的社会地位、收入等挂钩，学习是一种最好的投资。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">第二条：&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;&nbsp;&nbsp; 时间管理不是让我在有限的时间里面做更多的事，而是让我在把时间都放在有投资时间里面，去掉不必要做的事，做有投资价值的事（就是很重要但不紧急的事）。比如：锻炼身体，每天锻炼一小时，健康快乐生活一辈子，幸福一辈人。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">第三条：&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;&nbsp;&nbsp; 这个世界上不是什么事情都是非黑既白，有很多灰色地带的，为生存有时还会踩界。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">第四条：&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;&nbsp;&nbsp; in:out=1:1</span>&nbsp;<img src ="http://www.blogjava.net/bangzhu/aggbug/383672.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-21 22:24 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/21/383672.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>与JDK奋斗的一上午</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/21/383673.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Sat, 21 Jul 2012 14:24:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/21/383673.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/383673.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/21/383673.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/383673.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/383673.html</trackback:ping><description><![CDATA[<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">话说本人也是手欠啊，操作系统是Win7的前几天无法识别自己的移动硬盘，于是我就还原系统了，JDK安装在D盘。当时还原完就直接将以前安装在D盘的程序文件夹全部删除了。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">然后就是各位熟知的悲剧了，无论怎么重新安装都不行了，我也把注册表里面几乎所有的方法都尝试过了，都不行。查看了网上。总结来看有以下几种&#8220;偏方&#8221;：&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">1、删除注册表里面所有和Java相关的表项 ---------事实上我试过了，但是很不幸，我把有Java的都删了大半，但是我这里没用&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">2、关闭windows的windows installer功能打开命令行 ，输入msiexec /unregserver&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">重新下载一个 windows installer，重新安装一遍然后再启用就好了&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 再输入msiexec /regserver&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">3、什么360啊，完美卸载啊都无法删除。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">4、这就是大救星啊...去下一个window&nbsp; installer&nbsp; clean up ，打开软件，然后把里面关于JDK的项删除。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; " /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; ">终于可以重新安装JDK了。&nbsp;</span>&nbsp;<img src ="http://www.blogjava.net/bangzhu/aggbug/383673.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-21 22:24 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/21/383673.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式--状态模式(State)</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/21/383671.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Sat, 21 Jul 2012 14:23:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/21/383671.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/383671.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/21/383671.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/383671.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/383671.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: left; background-color: #ffffff; color: #333333; font-size: 13px; line-height: 19px; ">前几天由于忙工作上的事情，每天加班到10点左右才回家，回到家就没有再开电脑更新东西，今天早了一些回家，开始继续更新东西，今天要写的是状态模式，哦，对于一个没有状态的人来说，写状态模式，不知道会写成什么样子，反正是一起讨论用嘛，能把我所知道的清楚表达出来已经很心满意足啦。在理解状态模式的时候，我总觉得它和策略模式很像很像，有人说它们是孪生兄弟，那我们现在看看状态模式到底是一个什么样的东西。</p><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: left; background-color: #ffffff; color: #333333; font-size: 13px; line-height: 19px; "><blockquote style="border-left-width: 1px; border-left-color: #cccccc; margin-left: 10px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; background-color: #fafafa; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">状态模式是对象的一个行为模式，它允许一个对象在其内部状态改变的时候改变其行为，这个对象看上去就像改了了它的类一样。</p></blockquote><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">下图是关于红绿灯转换的一个实现类图，具体的转换是这样子的，在初始的情况下，设定一个灯的状态，比如是绿灯，那么灯的下一个状态则是黄灯，紧接着是红灯，然后再是绿灯，依次循环；通过改变灯的状态，改变其行为。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a href="http://plabmedia.com/wp-content/uploads/2012/07/state.jpg" style="color: #108ac6; "><img title="状态模式结构类图" alt="" width="417" size-full=""  wp-image-380"="" height="282" src="http://plabmedia.com/wp-content/uploads/2012/07/state.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; cursor: default; display: block; margin-left: auto; margin-right: auto; " /></a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">下面是这个类图的实现代码：</p><blockquote style="border-left-width: 1px; border-left-color: #cccccc; margin-left: 10px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; background-color: #fafafa; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">package com.plabmedia.state;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public interface LightState {</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">/**<br />* 打印当前的状态<br />*/<br />public void print(Light light);</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">package com.plabmedia.state;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public class RedLight implements LightState{</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">@Override<br />public void print(Light light) {<br />System.out.println("current state is red");<br />light.setState(new GreenLight());<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">package com.plabmedia.state;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public class YellowLight implements LightState{</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">@Override<br />public void print(Light light) {<br />System.out.println("current state is yellow");<br />light.setState(new RedLight());<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">package com.plabmedia.state;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public class GreenLight implements LightState {</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">@Override<br />public void print(Light light) {<br />System.out.println("current state is green");<br />light.setState(new YellowLight());<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">package com.plabmedia.state;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public class Light {</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">private LightState state;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public LightState getState() {<br />return state;<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public void setState(LightState state) {<br />this.state = state;<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public void print(){<br />state.print(this);<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public Light(LightState state){<br />this.state = state;<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">package com.plabmedia.state;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public class Client {</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">public static void main(String args[]){<br />Light light = new Light(new GreenLight());<br />light.print();<br />light.print();<br />light.print();<br />light.print();<br />light.print();<br />light.print();<br />}</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}</p></blockquote><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">运行结果：</p><blockquote style="border-left-width: 1px; border-left-color: #cccccc; margin-left: 10px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; background-color: #fafafa; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">current state is green<br />current state is yellow<br />current state is red<br />current state is green<br />current state is yellow<br />current state is red</p></blockquote><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">上面是对状态模式一个小小的实现，这个实现也仅仅是认识级的，在我们实际应用中，如果用到状态模式，应该比这个要负责的多，只是基本的结构是相似的。那我们下面针对状态模式做一些讨论。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="color: #0000ff; ">1.在什么情况下使用状态模式：</span></p><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">一个对象的行为依赖于它所处的状态，对象的行为必须随着其状态的改变而改变；</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">需要多多重条件转移语句进行演化的时候，可以把每个分支封装成一个状态类；现在写代码的时候，我是不太喜欢用条件转移语句，特别是最好的那个else语句，我觉得它承担的东西太多了，前面不满足的情况它都要来处理，凭什么啊。</li></ul></div><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: left; background-color: #ffffff; color: #333333; font-size: 13px; line-height: 19px; "><span style="color: #0000ff; ">2.状态模式要注意的地方：</span></div><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: left; background-color: #ffffff; color: #333333; font-size: 13px; line-height: 19px; "><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">谁来定义状态的变化：客户端还是状态内部决定？这要看当时应用的环境，如果状态的变化是固定的，我觉得可以再客户端进行设定；如果状态的变化依赖于前一个状态，比如在工作流系统中，当前状态是依赖于前一个状态的，这需要状态内部来觉得。</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">状态对象创建时机：需要的时候创建？还是事先创建好所有的对象，供需要的时候调用？这要分系统需要来决定，如果一个系统，状态变化的顺序固定，不那么频繁，则可以在需要的时候创建所需要的对象；否则，对于频繁变化的状态，从性能上将，还是首先创建好各个状态对象，供需要时调用。</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">可以把环境类传到具体的状态类中，状态类在需要的时候调用环境类，比如示例中的样子，其实在每个状态类里面，也可以直接调用环境类的print方法，这样看来，Client只需要初始化环境类，然后就可以看到它的状态在不停地变化。</li></ul></div><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: left; background-color: #ffffff; color: #333333; font-size: 13px; line-height: 19px; "><span style="color: #0000ff; ">3.状态模式与策略模式的区别：</span></div><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: left; background-color: #ffffff; color: #333333; font-size: 13px; line-height: 19px; "></div><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: left; background-color: #ffffff; color: #333333; font-size: 13px; line-height: 19px; ">我粗俗的说一些，从我的理解的基础上，二者之间的区别在于状态模式在集体作战，而策略模式是单兵作战，怎么说呢？状态模式因为其内部状态的改变会有不同的行为出现，而对于策略模式，只要客户端选中了一种策略，在整个生命周期内，都是这种策略。所以，在区分使用状态模式和策略模式的时候，主要是看系统有没有状态的变化，如果系统在整个生命周期内，只有一种状态，那很好，选择策略模式；如果系统在整个过程中，状态多样性，那需要选择状态模式。</div><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: left; background-color: #ffffff; color: #333333; font-size: 13px; line-height: 19px; "></div><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: left; background-color: #ffffff; color: #333333; font-size: 13px; line-height: 19px; ">先写这么多吧，好没有状态啊，希望大家都抽出时间一起讨论，说说自己对状态模式的看法。</div><img src ="http://www.blogjava.net/bangzhu/aggbug/383671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-21 22:23 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/21/383671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat 配置环境变量</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/19/383547.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Thu, 19 Jul 2012 14:21:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/19/383547.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/383547.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/19/383547.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/383547.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/383547.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">1.我的电脑---属性---高级系统设置---环境变量---(系统变量)新建</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><img src="http://my.csdn.net/uploads/201207/19/1342674606_2538.png" width="407" height="169" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">变量名：CATALINA_HOME(必须)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">变量值：tomcat的路径 &nbsp; &nbsp; &nbsp;(我的是： &nbsp;&nbsp;E:\工具\学习软件\apache-tomcat-6.0.35\apache-tomcat-6.0.35)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">2.找到path变量，在后面加上</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp; &nbsp;变量值后：;<span style="white-space: pre; ">%CATALINA_H</span><span style="white-space: pre; ">OME%</span>;<span style="white-space: pre; ">%CATALINA_H</span><span style="white-space: pre; ">OME%\bin;</span>（用;和前面的分开）</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">3. win+R 就可以cmd了(默认是startup开启,shutdown 结束;我是改成ts开启,td结束)</p><img src ="http://www.blogjava.net/bangzhu/aggbug/383547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-19 22:21 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/19/383547.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring　AOP源于生活的原理（一）</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/19/383546.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Thu, 19 Jul 2012 14:20:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/19/383546.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/383546.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/19/383546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/383546.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/383546.html</trackback:ping><description><![CDATA[<h1>AOP原理</h1><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="color: #454545; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span>spring用代理类包裹切面，把他们织入到Spring管理的bean中。也就是说代理类伪装成目标类，它会截取对目标类中方法的调用，让调用者对目标类的调用都先变成调用伪装类，伪装类中就先执行了切面，再把调用转发给真正的目标bean。&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "></p><h1>生活中的AOP</h1><div style="font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "></div><blockquote style="color: #000000; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">现在可以自己想一想，怎么搞出来这个伪装类，才不会被调用者发现（过JVM的检查，JAVA是强类型检查，哪里都要检查类型）。&nbsp;<br />实现和目标类相同的接口，我也实现和你一样的接口，反正上层都是接口级别的调用，这样我就伪装成了和目标类一样的类（实现了同一接口，咱是兄弟了），也就逃过了类型检查，到java运行期的时候，利用多态的后期绑定（所以spring采用运行时），伪装类（代理类）就变成了接口的真正实现，而他里面包 裹了真实的那个目标类，最后实现具体功能的还是目标类，只不过伪装类在之前干了点事情（写日志，安全检查，事物等）。&nbsp;</blockquote><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "></p><h3>兄弟模式</h3><blockquote style="color: #000000; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">生活解析</p><blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">这就好比，一个人让你办件事，每次这个时候，你弟弟就会先出来，当然他分不出来了，以为是你，你这个弟弟虽然办不了这事，但是他知道你能办，所以就答应下来了，并且收了点礼物（写日志），收完礼物了，给把事给人家办了啊，所以你弟弟又找你这个哥哥来了，最后把这是办了的还是你自己。但是你自己并不知道你弟弟已经收礼物了，你只是专心把这件事情做好。&nbsp;</p></blockquote><blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">在兄弟模式中spring会使用JDK的java.lang.reflect.Proxy类，它允许Spring动态生成一个新类来实现必要的接口，织入通知，并且把对这些接口的任何调用都转发到目标类。</p></blockquote><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">实际理论</p><blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">JDK动态代理：其代理对象必须是某个接口的实现，它是通过在运行期间创建一个接口的实现类来完成对目标对象的代理。</p></blockquote><h3>&nbsp;父子模式</h3><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 生活解析</p><blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">顺着这个思路想，要是本身这个类就没实现一个接口呢，你怎么伪装我，我就压根没有机会让你搞出这个双胞胎的弟弟，那么就用第2种代理方式，创建一个目标类的子类，生个儿子，让儿子伪装我&nbsp;。</p></blockquote><blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;生成子类调用，这次用子类来做为伪装类，当然这样也能逃过JVM的强类型检查，我继承的吗，当然查不出来了，子类重写了目标类的所有方法，当然在这些重写的方法中，不仅实现了目标类的功能，还在这些功能之前，实现了一些其他的（写日志，安全检查，事物等）。&nbsp;</p></blockquote><blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">这次的对比就是，儿子先从爸爸那把本事都学会了，所有人都找儿子办事情，但是儿子每次办和爸爸同样的事之前，都要收点小礼物（写日志），然后才去办真正的事。当然爸爸是不知道儿子这么干的了。 这里就有件事情要说，某些本事是爸爸独有的(final的)，儿子学不了，学不了就办不了这件事，办不了这个事情，自然就不能收人家礼了。&nbsp;&nbsp;</p></blockquote><blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">在父子模式中spring使用CGLIB库生成目标类的一个子类，在创建这个子类的时候，spring织入通知，并且把对这个子类的调用委托到目标类。&nbsp;</p></blockquote><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">实际理论</p><blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">CGLIB代理：实现原理类似于JDK动态代理，只是它在运行期间生成的代理对象是针对目标类扩展的子类。CGLIB是高效的代码生成包，底层是依靠ASM（开源的java字节码编辑类库）操作字节码实现的，性能比JDK强。</blockquote></blockquote><blockquote style="color: #000000; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><h3>两种模式总结</h3></blockquote><blockquote style="color: #000000; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">相比之下，兄弟模式好些，它能更好的实现松耦合，尤其在今天都高喊着面向接口编程的情况下，父子模式只是在没有实现接口的时候，也能织入通知，应当做一种例外。</p></blockquote><img src ="http://www.blogjava.net/bangzhu/aggbug/383546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-19 22:20 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/19/383546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle备份和恢复</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/17/383349.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Tue, 17 Jul 2012 13:32:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/17/383349.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/383349.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/17/383349.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/383349.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/383349.html</trackback:ping><description><![CDATA[<h1><span style="font-family: 宋体; ">备份</span></h1><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">备份其实就是为了防止出错或者宕机时，作为冗余的一种手段。</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">一、</span><span style="font-family: Calibri; ">Oracle</span><span style="font-family: 宋体; ">备份从备份类型上分可以分为两类：物理备份和逻辑备份</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">1、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">物理备份：</span><span style="font-family: Calibri; ">copy</span><span style="font-family: 宋体; ">，将</span><span style="font-family: Calibri; ">datafile</span><span style="font-family: 宋体; ">、</span><span style="font-family: Calibri; ">control file</span><span style="font-family: 宋体; ">等文件</span><span style="font-family: Calibri; ">copy</span><span style="font-family: 宋体; ">到别的地方</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Oracle</span><span style="font-family: 宋体; ">也提供了一些工具比如</span><span style="font-family: Calibri; ">rman</span><span style="font-family: 宋体; ">、用户管理备份。</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">2、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">逻辑备份：复制数据</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 38.95pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 52.5pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">imp/exp</span><span style="font-family: 宋体; ">、</span><span style="font-family: Calibri; ">impdp/expdp</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">二、按备份时的数据库状态</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">两种状态：启动状态和关闭状态</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">1、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">热备份（联机备份）</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">2、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">冷备份（脱机备份）</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">三、从备份的状态</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">1</span><span style="font-family: 宋体; ">、一致性备份（拥有相同的</span><span style="font-family: Calibri; ">scn</span><span style="font-family: 宋体; ">）</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">2</span><span style="font-family: 宋体; ">、非一致性备份</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">四、备份规模大小</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">1</span><span style="font-family: 宋体; ">、完全备份</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">注意：归档模式下的备份才为有效备份，当然要分为一致性和不一致性。</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">非归档需要关闭才是有效备份，打开的不建议使用。</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">3、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">表空间备份</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">注意：当数据库在归档模式下备份才有效备份</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">表空间处于只读或者</span><span style="font-family: Calibri; ">offline</span><span style="font-family: 宋体; ">有效备份</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">4、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">数据文件</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">注意：归档下的备份是有效备份</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">数据文件被设置为</span><span style="font-family: Calibri; ">read&nbsp;olny</span><span style="font-family: 宋体; ">或者</span><span style="font-family: Calibri; ">offline</span><span style="font-family: 宋体; ">时的备份有效</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">5</span><span style="font-family: 宋体; ">、控制文件</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">6</span><span style="font-family: 宋体; ">、归档日志文件</span></span></p><h1><span style="font-family: 宋体; ">恢复</span></h1><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">就是将业务回到数据块崩溃前的状态</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 42pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">一、</span><span style="font-family: 宋体; ">实例恢复（</span><span style="font-family: Calibri; ">crash recovery</span><span style="font-family: 宋体; ">）</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 42pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">Oracle</span><span style="font-family: 宋体; ">自动进行</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">1</span><span style="font-family: 宋体; ">、缓存恢复（</span><span style="font-family: Calibri; ">cache recovery</span><span style="font-family: 宋体; ">）</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">2</span><span style="font-family: 宋体; ">、事务恢复（</span><span style="font-family: Calibri; ">transaction recovery</span><span style="font-family: 宋体; ">）</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">二、介质恢复（</span><span style="font-family: Calibri; ">media recovery</span><span style="font-family: 宋体; ">）</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: 宋体; ">三、恢复方式</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">1</span><span style="font-family: 宋体; ">、完全恢复</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1</span><span style="font-family: 宋体; ">）如果是整库恢复</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">先</span><span style="font-family: Calibri; ">mount</span><span style="font-family: 宋体; ">数据库</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">确认所有的数据文件为</span><span style="font-family: Calibri; ">online</span><span style="font-family: 宋体; ">状态</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">执行恢复操作</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">用所有</span><span style="font-family: Calibri; ">Redo logs</span><span style="font-family: 宋体; ">文件</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2</span><span style="font-family: 宋体; ">）表空间或者数据文件及恢复</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">先</span><span style="font-family: Calibri; ">open</span><span style="font-family: 宋体; ">库</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">将需要恢复的表空间设置为</span><span style="font-family: Calibri; ">offline</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">执行恢复</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: 21pt; "><span style="font-size: 16px; "><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">用</span><span style="font-family: Calibri; ">redo logs</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 39pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">2、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">不完全恢复</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 72.75pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">1）&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">基于时间</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 72.75pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">2）&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">基于</span><span style="font-family: Calibri; ">scn</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 72.75pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">3）&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">基于</span><span style="font-family: Calibri; ">cancel</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 72.75pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">4）&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">基于日志序列号</span></span></p><h1><span style="font-family: Calibri; ">&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体; ">常见的备份和恢复技术</span></h1><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 57pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">1、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: 宋体; ">用户管理的备份和恢复</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 57pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">2、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: Calibri; ">RMAN</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 57pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">3、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: Calibri; ">Imp/exp</span><span style="font-family: 宋体; ">、</span><span style="font-family: Calibri; ">impdp/expdp</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 57pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">4、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: Calibri; ">FLASHBACK</span></span></p><p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 57pt; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; text-indent: -18pt; "><span style="font-family: Calibri; font-size: 16px; ">5、&nbsp;</span><span style="font-size: 16px; "><span style="font-family: Calibri; ">GG</span></span></p><img src ="http://www.blogjava.net/bangzhu/aggbug/383349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-17 21:32 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/17/383349.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> SQL Server 数据转换</title><link>http://www.blogjava.net/bangzhu/archive/2012/07/17/383348.html</link><dc:creator>拼搏</dc:creator><author>拼搏</author><pubDate>Tue, 17 Jul 2012 13:31:00 GMT</pubDate><guid>http://www.blogjava.net/bangzhu/archive/2012/07/17/383348.html</guid><wfw:comment>http://www.blogjava.net/bangzhu/comments/383348.html</wfw:comment><comments>http://www.blogjava.net/bangzhu/archive/2012/07/17/383348.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bangzhu/comments/commentRss/383348.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bangzhu/services/trackbacks/383348.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><span style="color: #660000; ">数据转换服务的概念</span></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><br /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; &nbsp;通常数据总是以不同的格式，存储在不同的地方，有的可能是文本文件，有的虽然具有表结构但不属于同一种数据源。这些情况极大地妨碍了数据的集中处理。为此SQL Server提供了DTS（Data Transformation Servers）组件。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; &nbsp;DTS本身包含多个工具，并提供了接口来实现在任何支持OLEDB的数据源间导入，导出或传递数据，并使这一工作变得简单，高效。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; &nbsp;利用DTS可能在任何OLEDB，ODBC 驱动程序的数据源或文本文件和SQL Server之间导入导出或传递数据具体<span style="color: #cc6600; ">表现</span>在：</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><span style="color: #cc6600; ">数据的导入导出服务</span>：</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; &nbsp;通过读写数据在不同应用程序间交换数据。例如：可以将文本文件或Microsoft Access数据库导入到SQL Server，也可以把数据从SQL Server导出到任何OLEDB数据源。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><span style="color: #cc6600; ">转换数据</span>：</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; &nbsp;所谓传递是指在数据未到达目标数据源前而对数据采取的系列操作。比如：DTS允许从源数据源的一列或多列计算出新的列值，然后将其存储在目标数据库中。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><span style="color: #cc6600; ">传递数据库对象</span></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; &nbsp;在异构数据源情况下，DTS的内置工具只能在数据源间传递表定义和数据。如果要传递其他数据库对象，如索引，约束，视图时，必须定义一个任务，从而在目标数据库上执行那些包含在任务中的SQL语句，SQL语句是被用来创建这些数据库对象的。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">DTS结构</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; DTS将数据导入，导出或传递定义成可存储的对象，即包裹或称为包，每一个包都是包括一个或具有一定顺序的多个任务的工作流，每个任务可以将数据从某一数据源拷贝至目标数据源，或使用Active脚本转换数据，或执行SQL语句，或运行外部程序。也可以在SQL Server数据源间传递数据库对象。包对象用来创建并存储步骤，这些步骤定义了一系列任务执行的顺序，以及执行任务的必要细节。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; 包是顶层对象，它包含三种底层对象：<span style="color: #000066; ">连接，任务，步骤</span>。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">连接：定义了有关源和目标数据的信息，这些信息包括数据格式和位置以及安全认证的密码。DTS可不包含或包含多个连接</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">任务：每个DTS包都含有一个或多个任务，每个任务都是数据转换（传递）处理的工作项目。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">步骤：步骤对象定义了任务执行的顺序，以及某一任务的执行是否依赖前一任务的结果。步骤的一个重要特性是步骤的优先权约束。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; ">&nbsp;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><span style="color: #660000; ">数据的导入</span></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; &nbsp;方法一：用企业管理器</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">1，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打开企业管理器，打开要导入数据的数据库，在表上按右键，所有任务&#8212;&#8212;导入数据，弹出DTS导入/导出向导，按下一步</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">2，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择数据源，即要导入的文件，按下一步</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">3，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择目的，选择Microsoft OLEDB 提供程序，选择数据库服务器，然后单击必要的身份验证方式。按下一步</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">4，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在指定表格复制或查询对话框中，单击复制表格</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">5，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在选择源表格对话框中，单击全部选定。下一步，完成。</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; &nbsp; 方法二：Transact&#8212;SQL语句</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><span style="color: #660000; ">数据的导出</span></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp; &nbsp; &nbsp;方法一：用企业管理器</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">1，&nbsp; 打开企业管理器，打开要导入数据的数据库，在表上按右键，所有任务&#8212;&#8212;导入数据，弹出DTS导入/导出向导，按下一步</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">2，单击下一步就会出现导出数据源对话框</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp;&nbsp;<img src="http://my.csdn.net/uploads/201207/16/1342397776_3168.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " />&nbsp; &nbsp;</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">3，单击下一步，则选择目的对话框</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp;<img src="http://my.csdn.net/uploads/201207/16/1342397887_3599.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /><br /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">4，单击下一步，则出现指定表复制或查询对话框</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp;&nbsp;<img src="http://my.csdn.net/uploads/201207/16/1342398018_6879.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /><br /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">5，单击下一步，选择源表和视图对话框</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><img src="http://my.csdn.net/uploads/201207/16/1342398127_4967.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /><br /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">6，</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp;<img src="http://my.csdn.net/uploads/201207/16/1342398202_9080.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /><br /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><br /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><img src="http://my.csdn.net/uploads/201207/02/1341226242_4682.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /><img src="http://my.csdn.net/uploads/201207/16/1342398576_7951.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; "><img src="http://my.csdn.net/uploads/201207/16/1342398391_3875.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /></span><span style="font-size: 18px; "><img src="http://my.csdn.net/uploads/201207/02/1341226266_1639.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /><img src="http://my.csdn.net/uploads/201207/02/1341226279_9864.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">8，</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial; line-height: 25px; text-align: left; background-color: #ffffff; "><span style="font-size: 18px; ">&nbsp; &nbsp;<img src="http://my.csdn.net/uploads/201207/16/1342398463_9313.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " /></span></p><img src ="http://www.blogjava.net/bangzhu/aggbug/383348.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bangzhu/" target="_blank">拼搏</a> 2012-07-17 21:31 <a href="http://www.blogjava.net/bangzhu/archive/2012/07/17/383348.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>