<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/xsl/rss.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:ppp="http://blog.sohu.com/rss/module/ppp/"
	>

	<channel>
		<title>生活很精彩</title>
		<link>http://morinson.blog.sohu.com/</link>
		<description><![CDATA[你读了许多书，但蛰居书室是不行的。]]></description>
		<pubDate>Sat, 12 Jul 2008 11:32:28 +0800</pubDate>
		<generator>搜狐博客</generator>
		<ppp:ebi>ed24c99792</ppp:ebi>
		<image>
			<title>http://blog.sohu.com</title>
			<url>http://js.pp.sohu.com/ppp/blog/images/common/logo_150_60.gif</url>
			<link>http://blog.sohu.com/</link>
			<width>100</width>
			<height>43</height>
			<description>搜狐博客</description>
		</image>
		<item>
			<title>莫于得失处看得太重，拘泥于边角，无掌握全局之大胸襟，心神自乱。</title>
			<link>http://morinson.blog.sohu.com/94339835.html</link>
			<comments>http://morinson.blog.sohu.com/94339835.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:32:28 +0800</pubDate>
			<category>读书</category>
			<guid>http://morinson.blog.sohu.com/94339835.html</guid>
			<description><![CDATA[//========================================================================<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 莫于得失处看得太重，拘泥于边角，无掌握全局之大胸襟，心神自乱。<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 偶得<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 2006-05-28<br /> //======================================================================== 
 ]]></description>
		</item>
		    
		
		<item>
			<title>内存配置优化SQL Server服务器性能</title>
			<link>http://morinson.blog.sohu.com/94339770.html</link>
			<comments>http://morinson.blog.sohu.com/94339770.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:31:23 +0800</pubDate>
			<category>sql server</category>
			<guid>http://morinson.blog.sohu.com/94339770.html</guid>
			<description><![CDATA[　　Microsoft SQL Server 2000 的内存管理组件消除了对 SQL Server 可用的内存进行手工管理的需要。SQL
Server 在启动时根据操作系统和其它应用程序当前正在使用的内存量，动态确定应分配的内存量。当计算机和SQL Server
上的负荷更改时，分配的内存也随之更改。有关更多信息，请参见内存构架。 <br /> <br />　　下列服务器配置选项可用于配置内存使用并影响服务器性能：  <br /> <br />　　min server memory <br /> <br />　　max server memory <br /> <br />　　max worker threads <br /> <br />　　index create memory <br /> <br />　　min memory per query <br /> <br />　
　min server memory 服务器配置选项可用于确保 SQL Server
至少以最小的分配内存量启动，并且内存低于该值时不会释放内存。可以基于 SQL Server 的大小及活动将该配置选项设置为特定的值。始终将
min server memory 服务器配置选项设置为某个合理的值，以确保操作系统不向 SQL Server 请求太多内存而影响 SQL
Server 性能。　　max server memory 服务器配置选项可用于：在 SQL Server 启动及运行时，指定 SQL
Server 可以分配的最大内存量。如果知道有多个应用程序与 SQL Server
同时运行，而且想保障这些应用程序有足够的内存运行，可以将该配置选项设置为特定的值。如果这些其它应用程序（如 Web
服务器或电子邮件服务器）只根据需要请求内存，则 SQL Server 将根据需要给它们释放内存，因此不要设置 max server
memory 服务器配置选项。然而，应用程序通常在启动时不假选择地使用可用内存，而如果需要更多内存也不请求。如果有这种行为方式的应用程序与
SQL Server 同时运行在相同的计算机上，则将 max server memory
服务器配置选项设置为特定的值，以保障应用程序所需的内存不由 SQL Server 分配出。 <br /> <br />　　不要将 min server memory 和 max server memory 服务器配置选项设置为相同的值，这样做会使分配给 SQL Server 的内存量固定。动态内存分配可以随时间提供最佳的总体性能。有关更多信息，请参见服务器内存选项。  <br /> <br />　
　max worker threads 服务器配置选项可用于指定为用户连接到 SQL Server 提供支持的线程数。255
这一默认设置对一些配置可能稍微偏高，这要具体取决于并发用户数。由于每个工作线程都已分配，因此即使线程没有正在使用（因为并发连接比分配的工作线程
少），可由其它操作（如高速缓冲存储器）更好地利用的内存资源也可能是未使用的。一般情况下，应将该配置值设置为并发连接数，但不能超过
1,024。有关更多信息，请参见max worker threads 选项。 <br /> <br />　　说明 当 SQL Server 运行在 Microsoft Windowsreg; 95 或 Microsoft Windows 98 上时，最大工作线程服务器配置选项不起作用。  <br /> <br />　
　index create memory
服务器配置选项控制创建索引时排序操作所使用的内存量。在生产系统上创建索引通常是不常执行的任务，通常调度为在非峰值时间执行的作业。因此，不常创建索
引且在非峰值时间时，增加该值可提高索引创建的性能。不过，最好将 min memory per query
配置选项保持在一个较低的值，这样即使所有请求的内存都不可用，索引创建作业仍能开始。有关更多信息，请参见 index create memory
选项。 <br /> <br />　　min memory per query
服务器配置选项可用于指定分配给查询执行的最小内存量。当系统内有许多查询并发执行时，增大 min memory per query
的值有助于提高消耗大量内存的查询（如大型排序和哈希操作）的性能。不过，不要将 min memory per query
服务器配置选项设置得太高，尤其是在很忙的系统上，因为查询将不得不等到能确保占有请求的最小内存、或等到超过 query wait
服务器配置选项内所指定的值。如果可用内存比执行查询所需的指定最小内存多，则只要查询能对多出的内存加以有效的利用，就可以使用多出的内存。]]></description>
		</item>
		    
		
		<item>
			<title>先找到感兴趣的职位，觉得适合自己，然后再着手做简历。</title>
			<link>http://morinson.blog.sohu.com/94339735.html</link>
			<comments>http://morinson.blog.sohu.com/94339735.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:30:51 +0800</pubDate>
			<category>读书</category>
			<guid>http://morinson.blog.sohu.com/94339735.html</guid>
			<description><![CDATA[//========================================================================<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 先找到感兴趣的职位，觉得适合自己，然后再着手做简历。<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 偶得<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 2006-05-27<br /> //======================================================================== 
 ]]></description>
		</item>
		    
		
		<item>
			<title>关于Oracle数据库中的汉字显示总结</title>
			<link>http://morinson.blog.sohu.com/94339687.html</link>
			<comments>http://morinson.blog.sohu.com/94339687.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:30:06 +0800</pubDate>
			<category>oracle</category>
			<guid>http://morinson.blog.sohu.com/94339687.html</guid>
			<description><![CDATA[<div>
    <p><font color="#cc0000">作者：shenyuan　来源：赛迪网技术社区　发布时间：2006.12.30</font></p><p>&nbsp;</p><p>Oracle以其强大的数据库管理能力、高安全性、多用户操作时数据的一致性，赢得了用户的广泛青睐，获得了很高的市场占有率。但是，它在汉字信息显示时存在多种字符集，且相互之间不能通用，这就给多数据库之间的数据共享带来了一些麻烦。  </p><p>笔者从事Oracle数据库管理及应用软件的开发工作多年，常遇到Oracle数据库汉字显示的问题，主要现象是汉字显示为不可识别的乱码，信息无法使用。本文介绍笔者在实际工作中的一点心得，与大家一起探讨。  </p><p><strong>中英文Oracle之间的数据共享</strong> </p><p>在
笔者的实际工作中，有为多个二级厂矿开发的基于Oracle数据库的应用程序，而
各个单位所用的Oracle数据库，在安装时所采用的字符集各不相同，有的用英文字符集，有的用中文字符集。当表中的数据只是数字、英文信息时，数据共享
是可以的; 当表中含有汉字信息时，以正常的方式进行共享，就看不到汉字了，而只会见到一些乱码。下面以Oracle
7.3版的数据库为例说明解决方法。 </p><p>假设源数据库是中文字符集，目标数据库是英文字符集，利用 Delphi作为转换工具。实际的步骤依据导入和导出有所不同，导出数据时步骤如下：  </p><p><strong>1. 配置客户端字符集</strong>  </p><p>首
先将本机Oracle客户端的字符集配置得和源数据库的字符集一致。打开注册表，
找到HKEY_LOCAL_MACHINE，选下面的SOFTWARE，再选Oracle，在注册表中找到NLS_LANG,将值改为：
AMERICAN_AMERICA.ZHS16CGB231280。 </p><p>&nbsp;</p><p><strong>2. 配置数据库别名 </strong> </p><p>用Delphi的工具SQL EXPLORER配置两个数据库假名，其中DBSOURCE1用来连接源数据库，DBMIDDLE1用来连接中间数据库（Paradox表）。  </p><p><strong>3. 导出 </strong> </p><p>打
开Delphi的工具Database
DeskTop,在主菜单中选Tools下面的Utilities，再选Copy，会弹出一个新的对话框，在Alias（数据库别名）中选择
DBSOURCE1，并输入用户口令。在打开的数据库中选择需要的表，点击OK按钮。在Alias（数据库别名）中选择DBMIDDLE1。在File
Name栏中输入目标表名，点击COPY按钮，如果显示: Copy Successfully Completed，则数据导出成功。 </p><p>导入数据时步骤如下:  </p><p><strong>1. 配置客户端字符集</strong>  </p><p>首
先将本机Oracle客户端的字符集配置得和目标数据库的字符集一致。打开注册
表，找到HKEY_LOCAL_MACHINE，选下面的SOFTWARE，再选Oracle,在注册表中找到NLS_LANG,将值改为：
AMERICAN_AMERICA.US7ASCII。 </p><p><strong>2. 配置数据库别名 </strong> </p><p>用Delphi的工具SQL EXPLORER配置一个数据库别名：DBTARGET1，用来连接目标数据库。  </p><p><strong>3. 导入 </strong> </p><p>打
开Delphi的工具Database
DeskTop,在主菜单中选Tools下面的Utilities，再选Copy，会弹出一个新的对话框，在Alias（数据库别名）中选择
DBMIDDLE1。在打开的数据库中选择需要的表，点击OK按钮。在Alias（数据库别名）中选择DBTARGET1，并输入用户口令。在File
Name栏中输入目标表名，点击COPY按钮，如果显示: Copy Successfully
Completed，则数据导入成功。此时，在目标数据库中查看导入的表，汉字显示就正常了。 </p><p><strong>小型机和PC服务器之间的数据共享</strong> </p><p>笔
者所在公司有小型机Alpha
2100作为数据库服务器，上面有多个二级单位使用。随着时间的推移，数据增加，用户增加，小型机不堪重负，运行速度缓慢，不能满足日常的工作需要。为了
缓解这种情况，有部分单位自备了PC服务器，将数据从小型机上移植下来，建立了自己单独的数据库。 </p><p>两
个数据库都安装的是英文字符集，从小型机上导出的数据，装入到PC服务器，遇到汉字信息也不能正常显示。这主要是因为两者的操作系统不同，小型机上是
VMS系统，而PC服务器上是NT 4.0，有两种方法可以解决这个问题: </p><p><strong>1. 用仿真终端的方式将数据导出 </strong> </p><p>用Telnet连接到小型机上，执行exp，将某个用户的数据库导出为一个*.dmp文件，保存在PC服务器上。  </p><p><strong>2. 用FTP将数据取到本机 </strong> </p><p>用FTP连接到小型机上，执行bin，再执行Get，将数据（*.dmp文件）以二进制的方式传输到本机。注意这里必须用二进制方式，否则数据无法正常使用。  </p><p>得到小型机上的数据后，再将本机客户端配置得和PC服务器的字符集一致，将数据导入PC服务器数据库中，则一切数据均可使用了。  </p><p>数据库升级 在数据库的使用中常会遇到Oracle的版本升级，如何在保证原来数据安全的情况下，将数据库平稳地升级？这里分两种情况：  </p><p><strong>1. 英文字符集的安装</strong>  </p><p>如果原来的数据库安装采用的是英文字符集，则从Oracle 7.3升级到Oracle 8.0.5时，只要将数据字典Props$中的参数修改为&ldquo;US7ASCII&rdquo;即可。  </p><p>以系统DBA的身份登录SQL*PLUS，执行如下的命令，修改数据字典：  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　SQL&gt;UPDATE PROPS$ SET VALUE$=&lsquo;US7ASCII&rsquo;WHERE NAME=&lsquo;NLS_CHARACTERSET&rsquo;; <br />　　<br />　　SQL&gt;COMMIT;</pre>     </td>   </tr> </tbody></table> </center>　　 <p>注意，修改后必须重新启动数据库，配置才起作用，然后将从Oracle  </p><p><strong>2. 中文字符集的安装 </strong> </p><p>如果原来的数据库安装采用的是中文字符集，直接将数据导入，是否可用呢？不可以，汉字显示为乱码。  </p><p>原
因是Oracle 7.3的中文字符集的参数是：ZHS16CGB231280，而Oracle
8.0.5的中文字符集的参数是：ZHS16GBK。两者不一样，为了能正常地使用，必须修改Oracle
8.0.5的数据字典的参数为：ZHS16CGB231280。具体的修改步骤如下, 用系统DBA的身份登录SQL*PLUS，执行： </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　SQL&gt;UPDATE PROPS$ SET VALUE$=&lsquo;ZHS16CGB231280&rsquo;WHERE NAME=&lsquo;NLS_CHARACTERSET&rsquo;; <br />　　<br />　　SQL&gt;COMMIT;</pre>     </td>   </tr> </tbody></table> </center>　　 <p>注意，修改后必须重新启动数据库，配置才起作用，然后将从Oracle 7.3导出的数据，导入Oracle 8.0.5的数据库中即可。  </p><p>&nbsp;</p> 
 </div>]]></description>
		</item>
		    
		
		<item>
			<title>做企业的残酷性就是在于，企业生存需要什么，企业人就要会什么，这不是个人的好恶可以改变的。</title>
			<link>http://morinson.blog.sohu.com/94339628.html</link>
			<comments>http://morinson.blog.sohu.com/94339628.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:29:06 +0800</pubDate>
			<category>读书</category>
			<guid>http://morinson.blog.sohu.com/94339628.html</guid>
			<description><![CDATA[//========================================================================<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 做企业的残酷性就是在于，企业生存需要什么，企业人就要会什么，这不是个人的好恶可以改变的。<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 偶得<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; 2006-05-26<br /> //======================================================================== 
 ]]></description>
		</item>
		    
		
		<item>
			<title>用Linux命令完成Oracle自动物理备份</title>
			<link>http://morinson.blog.sohu.com/94339580.html</link>
			<comments>http://morinson.blog.sohu.com/94339580.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:28:16 +0800</pubDate>
			<category>oracle</category>
			<guid>http://morinson.blog.sohu.com/94339580.html</guid>
			<description><![CDATA[<div>
    <p><font color="#cc0000">作者：王全海　来源：赛迪网技术社区　发布时间：2006.12.22</font></p><p>Oracle
数据库提供了几种数据备份方法，但用得最多的还是使用exp进行逻辑备份，而物
理备份（包括联机备份和脱机备份）过程用得并不多。其主要原因是物理备份过程比较复杂，不易掌握。本文以Oracle数据库在Linux下自动物理备份
（脱机备份）的实现为例描述物理备份的操作步骤，希望能帮助更多的Oracle数据库管理员了解这一物理备份过程，避免不必要的数据丢失。 </p><p>本文的目标是通过执行一Shell脚本来完成Oracle数据库自动备份的全过程，而且能够在当前目录下生成其压缩文件。具体实现步骤如下：  </p><p>1．以Oracle用户身份登录到Linux系统下。  </p><p>2．建立database.srcipt文件，以便生成备份数据库的一些参数信息并保存在文件database.parm中。  </p><p>这些信息对于以后恢复数据库具有重要的参考作用，所以在物理备份的过程中，需要保存这些信息，也可以把其他一些重要的信息写在这个脚本里。  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　$vi database.srcipt <br />　　<br />　　spool database.parm <br />　　<br />　　--这是当前备份数据库的系统参数列表 <br />　　<br />　　select * from v$parameter; <br />　　<br />　　--这是当前备份数据库的字符集部分参数 <br />　　<br />　　select * from props$; <br />　　<br />　　--这是当前备份数据库数据文件存储位置及名称 <br />　　<br />　　select * from v$datafile; <br />　　<br />　　--这是当前备份数据库控制文件存储位置及名称 <br />　　<br />　　select * from v$controlfile; <br />　　<br />　　--这是当前备份数据库日志文件存储位置及名称 <br />　　<br />　　select * from v$logfile; <br />　　<br />　　--可以在这里添加其他一些重要信息 <br />　　<br />　　--开始生成备份shell文件，可参考backup.sh <br />　　<br />　　spool off <br />　　<br />　　spool backup.sh <br />　　<br />　　select 'cp '||name || ' backup/' from v$datafile ; <br />　　<br />　　select 'cp '||name || ' backup/' from v$controlfile ; <br />　　<br />　　select 'cp '||member || ' backup/' from v$logfile; <br />　　<br />　　spool off <br />　　<br />　　shutdown immediate <br />　　<br />　　exit <br />　　<br />　　!</pre>     </td>   </tr> </tbody></table> </center>　　<p>3．修改上一步中生成的backup.sh文件，并执行它来完成数据库文件的操作系统备份。为清晰起见，将这段脚本命名为文件alterbackup.sh。  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　$vi alterbackup.sh <br />　　<br />　　echo &ldquo;该脚本完成把数据库数据文件、控制文件、日志文件的复制到当前目录的过程&rdquo; <br />　　<br />　　cat backup.sh|grep &lsquo;cp /&rsquo;&gt;c.sh <br />　　<br />　　#该语句把backup.sh中所有以&ldquo;cp /&rdquo;开头的语句提取出来生成新的文件c.sh <br />　　<br />　　rm backup.sh <br />　　<br />　　mv c.sh backup.sh <br />　　<br />　　chmod +x backup.sh <br />　　<br />　　. backup.sh <br />　　<br />　　#注意：点号&ldquo;.&rdquo;与backup.sh之间有一空格</pre>     </td>   </tr> </tbody></table> </center>　　 <p>4．建立数据库启动脚本，以便完成备份之后启动数据库，将这段脚本命名为startup.script。  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　$vi startup.script <br />　　<br />　　spool StartStatus.readme <br />　　<br />　　--开始启动数据库 <br />　　<br />　　startup <br />　　<br />　　--数据库启动完成，可以查看StartStatus.readme文件检查数据库启动情况 <br />　　<br />　　spool off <br />　　<br />　　exit <br />　　<br />　　!</pre>     </td>   </tr> </tbody></table> </center>　　 <p>5．为节省磁盘空间和复制到其他存储位置，建立Shell文件gzip.script来完成备份数据文件的压缩。注意生成备份文件时，在文件名中注明时间。  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　$vi gzip.sh <br />　　<br />　　echo &ldquo;开始进行备份文件的压缩过程&rdquo; <br />　　<br />　　thedate=&lsquo;date + %Y.%m.%d.%H.%M&rsquo; <br />　　<br />　　#注意：字符串前后都有一个反引号，不是单引号 <br />　　<br />　　outfile=$thedate <br />　　<br />　　tar -cvf backup$outfile.tar backup/* <br />　　<br />　　#将备份到backup目录下的所有文件生成一档案文件 <br />　　<br />　　gzip backup$outfile.tar <br />　　<br />　　#把档案文件进行压缩，以节省硬盘空间 <br />　　<br />　　rm -R backup #删除那些没有压缩的文件</pre>     </td>   </tr> </tbody></table> </center>　　<p>&nbsp;</p><p>6．把上面第2步到第5步生成的内容组织成一个Shell文件begin.sh，但这之前还需要先运行以下命令：  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　$chmod +x alterbackup.sh <br />　　<br />　　$chmod +x gzip.sh <br />　　<br />　　$vi begin.sh</pre>     </td>   </tr> </tbody></table> </center>　　 <p>echo &ldquo;开始进行数据库的自动物理备份过程，该Shell将在当前目录下生成backup.gz文件，该文件中包含数据库的一些参数信息及数据库的物理文件&hellip;&hellip;&rdquo;  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　mkdir backup <br />　　<br />　　sqlplus internal/oracle &lt; database.srcipt <br />　　<br />　　. alterbackup.sh <br />　　<br />　　sqlplus internal/oracle &lt; startup.script <br />　　<br />　　. gzip.sh <br />　　<br />　　echo &ldquo;数据库自动进行物理备份过程结束，请在当前目录下检查backup.tar.gz&rdquo;</pre>     </td>   </tr> </tbody></table> </center>　　 <p>7．增加数据库参数文件的备份语句。  </p><p>数据库参数文件通常存储在&ldquo;ORACLE/ADMIN/数据库名/pfile/&rdquo;目录下，其文件命名规则为&ldquo;init+数据库名.ora&rdquo;，数据库名缺省名称为orcl，可根据数据库安装名称来进行修改。如果不知道该文件存储在什么位置，可使用下面命令进行查找：  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　$find $ORACLE_HOME -name &lsquo;initorcl.ora&rsquo;</pre>     </td>   </tr> </tbody></table> </center>　　 <p>该语句可能显示出/u01/app/oracle/product/8.1.7/dbs/initorcl.ora，由于在Linux中有一种链接文件，所以要查看显示出的文件是不是链接文件，如果是，还需要进一步查看其原始文件。  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　$ll /u01/app/oracle/product/8.1.7/dbs/initorcl.ora</pre>     </td>   </tr> </tbody></table> </center>　　 <p>本例中显示出该文件是一个链接文件，它指向/u01/app/oracle/admin/orcl/pfile/initorcl.ora。为此，可以修改第3步的alterbackup.sh，修改结果如下（粗体显示，该语句需要根据数据库安装情况进行修改）：  </p><p>&nbsp;</p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　<br />　　&hellip;&hellip; <br />　　<br />　　chmod +x backup.sh <br />　　<br />　　cp /u01/app/oracle/admin/orcl/pfile/initorcl.ora backup/initorcl.ora <br />　　<br />　　. backup.sh <br />　　<br />　　#注意：点号&ldquo;.&rdquo;与backup.sh之间有一空格</pre>     </td>   </tr> </tbody></table> </center>　　 <p>8．在准备进行备份时，先使用&ldquo;ls -l（或ll）&rdquo;命令检查当前目录下，此时应该有这样几个文件：alterbackup.Sh，begin.sh，database.script，gzip.sh，startup.script。此后，还应执行命令：  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　$chmod +x begin.sh</pre>     </td>   </tr> </tbody></table> </center>　　 <p>如果一切完成，就可以执行begin.sh来完成备份过程了:  </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　<br />　　. begin.sh</pre>     </td>   </tr> </tbody></table> </center>　　 <p>注意begin.sh与前面点号之前有一空格。以后每次需要做备份时，只需运行begin.sh即可。这里也可以使用crontab自动完成按计划备份，有关如何使用crontab，请参考相关资料，也可在网上查询，本文不再做介绍。  </p><p>使
用此方法进行物理备份过程，不仅备份了数据库的数据文件，也同时记录了数据库的一
些重要信息（第2步的database.parm文件中），这对于以后恢复数据是非常重要的。最后要提醒读者注意的是，本文提供的方法要求有足够大的剩余
磁盘空间（尽管最后只保留了备份文件的压缩文件），这个缺撼留给读者去弥补。 </p><p>注：该文在RedHat 7.3、Oracle 8i Enterprise Edition Release 8.1.7 for Linux 下使用/bin/bash下调试通过。 </p> 
 </div>]]></description>
		</item>
		    
		
		<item>
			<title>人生中，每一件事情都有转向的能力，就看我们怎么想、怎么转。我们不会在3分钟内成功，但也许只花1分钟，</title>
			<link>http://morinson.blog.sohu.com/94339434.html</link>
			<comments>http://morinson.blog.sohu.com/94339434.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:26:02 +0800</pubDate>
			<category>读书</category>
			<guid>http://morinson.blog.sohu.com/94339434.html</guid>
			<description><![CDATA[//========================================================================<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 人生中，每一件事情都有转向的能力，就看我们怎么想、怎么转。我们不会在3分钟内成功，但也许只花1分钟，生命从此不同。思考！<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 偶得<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 2006-05-25<br /> //======================================================================== 
 ]]></description>
		</item>
		    
		
		<item>
			<title>在Oracle里加快SQL执行的三种方法</title>
			<link>http://morinson.blog.sohu.com/94339373.html</link>
			<comments>http://morinson.blog.sohu.com/94339373.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:24:44 +0800</pubDate>
			<category>oracle</category>
			<guid>http://morinson.blog.sohu.com/94339373.html</guid>
			<description><![CDATA[<p><font color="#cc0000">作者：sjanyau　来源：赛迪网技术社区　发布时间：2006.12.20</font></p><p>Oracle提供了多种方法用于减少花在剖析Oracle SQL表达式上的时间，在执行带有大量执行计划的复杂查询时剖析过程会拖累系统的性能。现在我们来简要地看看这些方法中的几种。 </p><p><strong>使用ordered提示</strong> </p><p>Oracle
必须花费大量的时间来剖析多表格的合并，用以确定表格合并的最佳顺序。
如果SQL表达式涉及七个乃至更多的表格合并，那么有时就会需要超过30分钟的时间来剖析，因为Oracle必须评估表格合并所有可能的顺序。八个表格就
会有40,000多种顺序。Ordered这个提示（hint）和其他的提示一起使用能够产生合适的合并顺序。 </p><p>Ordered
这个提示会要求列在SQL表达式FROM字句里的表格按照指定的顺 序进行合并，FROM字句里的第一个表格会指定驱动表格（driving
table）。驱动表格应该是返回最小行数的表格。使用ordered提示会跳过非常耗时和耗资源的剖析操作，并加快Oracle SQL的执行。 </p><p>Listing A如下： </p><center> <table align="center" border="1" cellpadding="2" cellspacing="0"> <tbody><tr>     <td style="font-size: 9pt;" bgcolor="#e6e6e6">     <pre>　　Listing A <br />　　select /*+ ordered use_nl(bonus) <br />   parallel(e, 4) */ e.ename, hiredate, b.comm from emp e, bonus b<br />    where e.ename = b.ename ;<br />　</pre>     </td>   </tr> </tbody></table> </center>　 <p>Listing A里是一个复杂查询的例子，这个查询被强制进行一个嵌套循环，从而与对emp表格进行的并行查询合并。要注意，我已经使用ordered提示来引导Oracle去按照WHERE子句所列出的顺序来评估表格。 </p><p><strong>使用theordered_predicates</strong> </p><p>ordered_predicates提示在查询的WHERE子句里指定的，并被用来指定布尔判断（Boolean predicate）被评估的顺序。在没有ordered_predicates的情况下，Oracle会使用下面这些步骤来评估SQL判断的顺序： </p> <p>子查询的评估先于外层WHERE子句里的Boolean条件。  </p> <p>所有没有内置函数或者子查询的布尔条件都按照其在WHERE子句里相反的顺序进行评估，即最后一条判断最先被评估。  </p> <p>每个判断都带有内置函数的布尔判断都依据其预计的评估值按递增排列。  </p> <p>你
可以使用ordered_predicates提示来强制取代这些缺省的评估规
则，那么你WHERE子句里的项目就会按照其在查询里出现的顺序被评估。在查询的WHERE子句里使用了PL/SQL函数的情况下，通常会使用
ordered_predicates提示。如果你知道限制最多的判断并且希望Oracle最先评估这些判断的时候，在这种情况下，它也是非常有用的。用
法提示：你不能使用ordered_predicates提示来保存对索引键进行判断评估的顺序。 </p> <p><strong>限制表格合并评估的数量</strong> </p> <p>提
高SQL剖析性能的最后一种方法是强制取代Oracle的一个参数，这个参数控制
着在评估一个查询的时候，基于消耗的优化器所评估的可能合并数量。optimizer_search_limit这个参数会指定表格合并组合的最大数量，
后者将会在Oracle试图确定合并多表格最佳方式的时候被评估。这个参数有助于防止优化器花更多的时间来评估可能的合并顺序，而不是把时间花在寻找最佳
合并顺序上。optimizer_search_limit还控制着用于调用star
join提示的阙值，当查询里的表格数量低于optimizer_search_limit（其缺省的值是5）的时候，star提示就会被光顾。 </p> <p>以上只是一些Oracle DBA用来优化Oracle数据库应用程序SQL查询的性能的一些小技巧。 </p>]]></description>
		</item>
		    
		
		<item>
			<title>因为我不想等到失败，才后悔自己的潜力没有发挥，所以要相信自己，要去做。</title>
			<link>http://morinson.blog.sohu.com/94339320.html</link>
			<comments>http://morinson.blog.sohu.com/94339320.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:23:47 +0800</pubDate>
			<category>读书</category>
			<guid>http://morinson.blog.sohu.com/94339320.html</guid>
			<description><![CDATA[//========================================================================<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 因为我不想等到失败，才后悔自己的潜力没有发挥，所以要相信自己，要去做。<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 偶得<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; 2006-05-25<br /> //======================================================================== 
 ]]></description>
		</item>
		    
		
		<item>
			<title>主流数据库集群技术深入探讨</title>
			<link>http://morinson.blog.sohu.com/94339262.html</link>
			<comments>http://morinson.blog.sohu.com/94339262.html#comment</comments>
			<dc:creator>生活很精彩</dc:creator>
			<pubDate>Sat, 12 Jul 2008 11:22:53 +0800</pubDate>
			<category>集群</category>
			<guid>http://morinson.blog.sohu.com/94339262.html</guid>
			<description><![CDATA[<div>
    <p>来自网络&nbsp;</p><p>&nbsp;CSDN声明：CSDN登载此文出于传递更多信息之目的，并不意味着赞同其观点或证实其描述</p><p>下面讨论的数据库集群技术分属两类体系：基于数据库引擎的集群技术和基于数据库网关（中间件）的集群技术。可以用来集群几个数据库集群。在数据库集群产品方面，其中主要包括基于数据库引擎的集群技术的Oracle  RAC、</p><p>&nbsp;</p><p><font face="Arial">用
来保存计算最终结果的数据库是整个信息系统的重要组成部分，技术也相对成熟。然而，对于所有数据库而言，
除了记录正确的处理结果之外，也面临着一些挑战：如何提高处理速度，数据可用性、数据安全性和数据集可扩性。将多个数据库联在一起组成数据库集群来达到上
述目标应该说是一个很自然的想法。 <br />　　集群（Cluster）技术是使用特定的连接方式，将价格相对较低的硬件设备结合起来，同时也能提供高性能相当的任务处理能力。 </font></p>  <p><font face="Arial">　　本文试图对当前主要的数据库集群用到的具体技术和市场上的主流产品进行分析并作点评，从而为读者提供一个数据库集群的评价参考。  </font></p>  <p><font face="Arial">　　下面讨论的数据库集群技术分属两类体系：基于数据库引擎的集群技术和基于数据库网关（中间件）的集群技术。  </font></p>  <p><font face="Arial">　　 <img src="http://biz.chinabyte.com/imagelist/05/09/v4yp9dutxq5d.jpg" border="0" /></font></p>  <p><font face="Arial">　　基于数据库引擎的集群技术（共享磁盘或非共享磁盘） </font></p>  <p><font face="Arial">　　<img src="http://biz.chinabyte.com/imagelist/05/09/31ex3xt4bjr0.jpg" border="0" /> </font></p>  <p><font face="Arial">　　基于数据库网关（中间件）的集群技术（不共享磁盘） </font></p><p>&nbsp;</p><br /><p><font face="Arial"><br />关键技术 </font></p> <p><font face="Arial">　　在复杂的数据库集群技术之间做比较，其实就是比较它所包含的各项子技术性能和它们之间的协调运作能力，下面的文字将介绍数据库集群最需要得到重视的核心技术，同时也关注到了一些技术细节。  </font></p> <p><font face="Arial">　　提高处理速度的四种办法 </font></p> <p><font face="Arial">　　提高磁盘速度：主要思想是提高磁盘的并发度。尽管实现方法各不相同，但是它们最后的目的都是提供一个逻辑数据库的存储映象。  </font></p> <p><font face="Arial">　　【点评】系统为了提高磁盘访问速度，建立一个虚拟的涵盖所有数据&ldquo;大&rdquo;数据库，而不用去考虑数据的实际物理磁盘存放位置。  </font></p> <p><font face="Arial">　　分散数据的存放：利用多个物理服务器来存放数据集的不同部分，使得不同的服务器进行并行计算成为可能。  </font></p> <p><font face="Arial">　
　ORACLE
RAC是共享磁盘的体系结构，用户只需简单地增加一个服务器节点，RAC就能自动地将这节点加入到它的集群服务中去，RAC会自动地将数据分配到这节点
上，并且会将接下来的数据库访问自动分布到合适的物理服务器上，而不用修改应用程序；UDB是非共享磁盘的体系结构，需要手工修改数据分区，MSCS和
ASE也是同样情况。ICX是一种基于中间件的数据库集群技术，对客户端和数据库服务器都是透明的。可以用来集群几个数据库集群。 </font></p> <p><font face="Arial">　　【点评】系统通过化整为零的策略，将数据表格分散到多个服务器或者每个服务器分管几个内容不同的表格，这样做的目的在于通过多服务器间并行运算以提高访问速度。  </font></p> <p><font face="Arial">　　对称多处理器系统： </font></p> <p><font face="Arial">　　利用多处理机硬件技术来提高数据库的处理速度。 </font></p> <p><font face="Arial">　　所有基于数据库引擎的集群都支持这个技术。 </font></p> <p><font face="Arial">　　【点评】将多CPU处理器进行合理调度，来同时处理不同的访问要求，但这种技术在数据库上的应用的实际收益是很有限的。  </font></p> <p><font face="Arial">　
　交易处理负载均衡：在保持数据集内容同步的前提下，将只读操作分布到多个独立的服务器上运行。因为绝大多数的数据库操作是浏览和查询，如果我们能拥有多
个内容同步的数据库服务器，交易负载均衡就具有最大的潜力（可以远远大于上面叙述的最多达四个处理器的对称多处理器系统）来提高数据库的处理速度，同时会
具有非常高的数据可用性。 </font></p> <p><font face="Arial">　　所有基于数据库引擎的集群系统都只支持一个逻辑
数据库映象和一个逻辑或物理的备份。这个备份的主要目的是预防数据灾难。因此，备份里的数据只能通过复制机制来更新，应用程序是不能直接更新它的。利用备
份数据进行交易负载均衡只适用于一些非常有限的应用，例如报表统计、数据挖掘以及其它非关键业务的应用。 </font></p> <p><font face="Arial">　　【点评】负载平衡算是一项&ldquo;老&rdquo;技术了。但将性能提高到最大也是集群设计所追求的终极目标。传统意义上，利用备份数据进行交易负载均衡只适用于一些非常有限的应用。  </font></p> <p><font face="Arial">　　上述所有技术在实际部署系统的时候可以混合使用以达到最佳效果。 </font></p> <p><font face="Arial">　　提高可用性的四种方法 </font></p> <p><font face="Arial">　　硬件级冗余：让多处理机同时执行同样的任务用以屏蔽瞬时和永久的硬件错误。有两种实现方法：构造特殊的冗余处理机和使用多个独立的数据库服务器。  </font></p> <p><font face="Arial">　　基于数据库的集群系统都是用多个独立的数据库服务器来实现一个逻辑数据库，在任意瞬间，每台处理器运行的都是不同的任务。这种系统可以屏蔽单个或多个服务器的损坏，但是因为没有处理的冗余度，每次恢复的时间比较长。  </font></p> <p><font face="Arial">　　【点评】传统意义上，硬件越贵，性能越高，但往往事与愿违。想通过追加和升级硬件设备来改善硬件级的冗余，要进行详细的需求分析和论证。  </font></p> <p><font face="Arial">　　通讯链路级冗余：冗余的通讯链路可以屏蔽瞬时和永久的通讯链路级的错误。 </font></p> <p><font face="Arial">　　基于数据库引擎的集群系统有两种结构：共享磁盘和独立磁盘。RAC, MSCS  可以认为是共享磁盘的集群系统。UDB和ASE 是独立磁盘的集群系统。共享磁盘集群系统的通讯的冗余度最小。 </font></p> <p><font face="Arial">　　【点评】通讯链路级的冗余具有容错功能。 </font></p> <p><font face="Arial">　
　软件级冗余：由于现代操作系统和数据库引擎的高度并发性，由竞争条件、死锁、以及时间相关引发的错误占据了非正常停机服务的绝大多数原因。采用多个冗余
的运行数据库进程能屏蔽瞬时和永久的软件错误。基于数据库引擎的集群系统都用多个处理器来实现一个逻辑数据库，它们只能提供部分软件冗余，因为每一瞬间每
个处理器执行的都是不同的任务。 </font></p> <p><font face="Arial">　　【点评】改善软件设计来提高冗余性能和屏蔽软件级错误是每个技术开发商的梦想。传统的集群系统只能提供部分软件冗余。  </font></p> <p><font face="Arial">　　数据冗余： </font></p> <p><font face="Arial">　　1.  被动更新数据集：所有目前的数据复制技术(同步或异步)，例如磁盘镜像、数据库文件复制以及数据库厂商自带的数据库备份工具都只能产生被动复制数据集。它一般只用于灾难恢复。  </font></p> <p><font face="Arial">　　【点评】大多数应用都是采用被动更新数据集的方法。这种方法容灾能力差，资源占用多，已面临淘汰和革新。  </font></p> <p><font face="Arial">　　2.  主动更新数据集：这种数据集需要一台或多台备份数据库服务器来管理，它可用于报表生成，数据挖掘，灾难恢复甚至低质量负载均衡。分同步和异步两种。  </font></p> <p><font face="Arial">　　异步主动复制数据集：先把事务处理交给主服务器来完成，然后事务处理再被串行地交给备份服务器以执行同样操作来保证数据一致性。所有的商用数据库都支持异步主动复制技术。  </font></p> <p><font face="Arial">　
　同步主动复制数据集：要求所有并发事务处理在所有数据库服务器上同时完成。直接好处就是解决了队列管理问题，同时通过负载均衡实现更高性能和可用性。
RAC, UDB, MSCS 和 ASE是用完全串行化并结合两阶段提交协议来实现的，设计目标就是为了获得一份可用于快速灾难恢复的数据集。 </font></p> <p><font face="Arial">　　【点评】主动更新数据集是目前比较先进的数据冗余方法。专业人员还可以进行更底层的技术细节比较。底层技术的差异直接影响着一些重要指标。  </font></p> <p><font face="Arial">　　提高安全和数据集可扩性的技术 </font></p> <p><font face="Arial">　
　在提高数据库安全性和数据集可扩性这两方面，可以创新的空间是很小的。数据库最常见的安全办法是口令保护，要么是分布式的，要么是集中式的。在数据库前
面增加防火墙会增加额外的延迟，因此，尽管许多安全侵犯事件是来自于公司内部，但是数据库防火墙还是很少被采用。如果数据库集群技术是基于中间件技术实现
的，就有可能在不增加额外延迟的情况下，在数据经过的路径上实现防火墙功能。数据库数据集的可扩性只能通过将数据分布到多个独立的物理服务器上来实现。
<br />主流产品 </font></p> <p><font face="Arial">　　在数据库集群产品方面，其中主要包括基于数据库引擎的集群技术的Oracle RAC、Microsoft  MSCS、IBM DB2 UDB、Sybase ASE，以及基于数据库网关（中间件）的集群技术的ICX-UDS等产品。 </font></p> <p><font face="Arial">　　Oracle RAC </font></p> <p><font face="Arial">　
　Oracle RAC 支持 Oracle 数据库在集群上运行的所有类型的主流商业应用程序。这包括流行的封装产品，如
SAP、PeopleSoft 和 Oracle E-Business Suite 等，以及自主研发的应用程序，其中包括 OLTP 和
DSS，以及 Oracle 有效支持混合 OLTP/DSS 环境的独有能力。Oracle 是唯一提供具备这一功能的开放系统数据库的厂商。
Oracle RAC 运行于集群之上，为 Oracle
数据库提供了最高级别的可用性、可伸缩性和低成本计算能力。如果集群内的一个节点发生故障，Oracle
将可以继续在其余的节点上运行。如果需要更高的处理能力，新的节点可轻松添加至集群。为了保持低成本，即使最高端的系统也可以从采用标准化商用组件的小型
低成本集群开始逐步构建而成。 </font></p> <p><font face="Arial">　　Oracle
的主要创新是一项称为高速缓存合并的技术，它最初是针对 Oracle9i
真正应用集群开发的。高速缓存合并使得集群中的节点可以通过高速集群互联高效地同步其内存高速缓存，从而最大限度地低降低磁盘
I/O。高速缓存最重要的优势在于它能够使集群中所有节点的磁盘共享对所有数据的访问。数据无需在节点间进行分区。Oracle RAC
支持企业网格。Oracle RAC 的高速缓存合并技术提供了最高等级的可用性和可伸缩性。Oracle
RAC能显著降低了运营成本，增强了灵活性，从而赋予了系统更卓越的适应性、前瞻性和灵活性。动态提供节点、存储器、CPU
和内存可以在实现所需服务级别的同时，通过提高的利用率不断降低成本。 </font></p> <p><font face="Arial">　　
Oracle RAC采用了&ldquo;sharing
everything&rdquo;的实现模式,通过CPU共享和存储设备共享来实现多节点之间的无缝集群，用户提交的每一项任务被自动分配给集群中的多台机器执行，
用户不必通过冗余的硬件来满足高可靠性要求。另一方面，RAC可以实现CPU的共享，即使普通服务器组成的集群也能实现过去只有大型主机才能提供的高性
能。 </font></p> <p><font face="Arial">　　Microsoft MSCS </font></p> <p><font face="Arial">　
　数年以来，Microsoft一直致力于对自身服务器解决方案的伸缩能力、可用性与可靠性进行扩展。最初代号为Wolfpack且先后被称为
Microsoft集群服务器与Microsoft集群服务的MSCS是Microsoft在NT集群技术领域中的首次重拳出击，它是公认的最佳
Microsoft集群解决方案。在MSCS群集中，MSCS软件最多可以同四台运行在高速网络上的物理计算机建立连接。通常情况下，群集中的计算机能够
按照&ldquo;活动--活动&rdquo;方式共享相同的存储子系统与功能，这意味着所有集群计算机（节点）均可主动通过共享负载的方式协同完成工作，并在某个节点出现故障时
分担它的工作。MSCS的主要用途是通过自身提供的容错能力提高应用程序可用性。容错能力是指将相关处理过程从某个节点上的故障应用程序移植到集群中其它
健康节点上的集群功能。当故障应用程序得到恢复后，集群应当能够对原先的集群节点实现&ldquo;故障返回&rdquo;。MSCS能够在不丢失任何与故障应用程序相关数据的前
提下对集群上所运行的应用程序进行故障恢复与故障返回管理，并且能够在故障恢复过程中维护用户及应用程序状态。这种类型的集群功能被称作有状态集群功能。
MSCS同时还允许用户在应用程序升级过程中继续进行工作。您可以采取滚动升级方式（例如每次在一个集群节点上升级应用程序并确保其它节点上的应用程序继
续处于可用状态）而不必在升级过程中停止使用应用程序。 </font></p> <p><font face="Arial">　　SQL
Server
2005是微软的下一代数据管理和分析解决方案，给企业级应用数据和分析程序带来更好的安全性、稳定性和可靠性，更易于创建、部署和管理。它凭借针对故障
转移群集机制的支持能力，得以增强的多实例支持能力以及分析服务对象与数据备份及恢复能力，分析服务的可用性得到了提高。它提供了诸如表分区、快照隔离、
64位支持等方面的高级可伸缩性功能，使用户能轻松构建和部署关键应用。表和索引的分区功能显著增强了对大型数据库的查询性能。 </font></p> <p><font face="Arial">　　<img src="http://biz.chinabyte.com/imagelist/05/09/1j88r9h71756.jpg" border="0" /> </font></p> <p><font face="Arial">　　利用Windows 2000 MSCS实现的4节点集群 <br />性能指标 </font></p> <p><font face="Arial">　　这部分将介绍集群系统的细节技术指标。在做系统规划时，用户就可去掉一些应用中不太重要的指标，或赋予这些指标以不同的权重，从而进行专业的技术性能比较，选择最适合自己的数据库集群系统。  </font></p> <p><font face="Arial">　　处理速度 </font></p> <p><font face="Arial">　　磁盘技术：所有集群系统都能很好地应用磁盘技术，但是由于DM，FM会对磁盘系统带来传输速度的负面影响，因此这方面它们相对欠缺。  </font></p> <p><font face="Arial">　　数据分割：所有基于数据库引擎的集群系统都有很好数据分割能力。 </font></p> <p><font face="Arial">　　SMP：所有基于数据库引擎的集群系统的SMP性能指标都比较接近。 </font></p> <p><font face="Arial">　　负载均衡：一般的数据库引擎的集群系统由于使用了备份的数据集，因此只能支持有限的负载均衡。这一指标不同产品之间有差异。  </font></p> <p><font face="Arial">　　数据可用性 </font></p> <p><font face="Arial">　　处理器和软件冗余：只有部分集群系统支持该功能。 </font></p> <p><font face="Arial">　　通讯链路冗余：一般来说，共享磁盘的集群系统通讯链路冗余指标较低，独立磁盘的集群系统指标较高。 </font></p> <p><font face="Arial">　　数据冗余： </font></p> <p><font face="Arial">　　主动异步复制：除了磁盘和文件镜像外，其他集群系统支持该功能。 </font></p> <p><font face="Arial">　　主动同步复制：所有集群系统支持该功能，细节指标略有不同。 </font></p> <p><font face="Arial">　　被动异步复制：所有集群系统该性能指标都比较接近。 </font></p> <p><font face="Arial">　　被动同步更新：所有集群系统该性能指标都比较接近。 </font></p> <p><font face="Arial">　　通过广域网的复制技术： </font></p> <p><font face="Arial">　　远程主动异步复制：所有的集群系统都支持这种复制技术，只不过对队列的管理能力有所不同。DM，FM和RAID的此性能相对较低。RAID不支持远程复制功能。  </font></p> <p><font face="Arial">　　远程主动同步复制：ICX在这方面做的比较好。 </font></p> <p><font face="Arial">　　远程被动异步复制：DM 和  FM支持这种类型的复制，因为DM和FM对集群是透明的，是在集群系统的下一层工作的，所有的集群系统都可以利用它们提供的功能。 </font></p> <p><font face="Arial">　　远程被动同步复制：DM和FM支持这种类型的复制，因为这种复制方式只在距离很近的时候才能使用（使用双模光纤，半径五英里）。同样地，因为DM和FM对集群是透明的,  所有的集群系统都可以利用它们提供的功能, 如果部署的话，所有的集群系统都是类似的。 </font></p> <p><font face="Arial">　　安全性 </font></p> <p><font face="Arial">　　口令：这是所有集群系统的基本性能。分布式或集中式的口令保护基本上保证了数据的安全。 </font></p> <p><font face="Arial">　　数据库防火墙：大多数数据库集群系统得数据库防火墙很少被采用，而ICX则采用在数据经过的路径上实现防火墙功能。  </font></p> <p><font face="Arial">　　数据集的可扩性 </font></p> <p><font face="Arial">　　数据分区：所有基于数据库引擎的集群系统都具备数据分区以保证数据集的可扩展。 </font></p> <p><font face="Arial">　　数据分区的可用性：所有集群系统该性能指标比较接近。 </font></p> <p><font face="Arial">　　集群管理 </font></p> <p><font face="Arial">　
　共享磁盘的集群系统，比如RAC、MSCS，它们的管理比较方便，其中RAC的服务更多。但是，由于此种系统中的每一单独的服务器需要特殊处理，和独立
磁盘的集群系统比较，就容易管理多了（虽然进行初始化和修改配置的时候也不那么容易）,但它们都要求应用程序对集群不透明，而且配置，修改也比较麻烦。
</font></p> <p><font face="Arial">　　独立磁盘的集群系统象 UDB、ASE此性能相对稍低，因为用的都是非共享磁盘，所以管理相对繁琐。  </font></p> <p><font face="Arial">　　ICX在易管理性（初始配置和将来的修改）方面和独立磁盘集群系统的性能相当，但是在对底层数据管理复杂性方面做得比较好。在对数据库引擎和数据进行底层修复的时候任务需要直接到每台数据库处理器上去做。  </font></p> <p><font face="Arial">　　那些磁盘工具，即DM、FM和RAID，它们对集群是透明的。管理相对简单得多。 </font></p> <p><font face="Arial">　　应用透明度 </font></p> <p><font face="Arial">　　因为在错误回复和分区方面对应用程序不透明以及它们对应用程序都有些特殊的要求，基于数据库引擎的RAC、MSCS、UDB、ASE和ICX在这方面都有待提高的地方。而DM、FM和RAID它们对应用程序可以说是完全透明的。  <br />IBM DB2 UDB </font></p> <p><font face="Arial">　　DB2  UDB大量自动或自我管理功能可使管理员能够节省更多时间来集中精力考虑驱动业务价值的问题，甚至可以消除较小的实施项目对专职管理员的需求。 </font></p> <p><font face="Arial">　
　UDB的优势体现在DB2的开放无界:支持Unix, Linux
以及Windows等主流操作系统；支持各种开发语言和访问接口；同时具有良好的数据安全性和稳定性。DB2
V8.2的高可用性灾备技术，可在极短时间内使关键应用得到恢复。利用DB2数据分区部件(DPF)实现横向扩展，可以支持多达1000台服务器组成的庞
大数据库群集，为构建企业级数据仓库提供坚实的技术基础。利用DB2的数据分区部件以及DB2信息集成器(DB2
II)技术，数据库操作可综合利用网格中的每台服务器的运算能力，实现真正意义上的网格运算。 </font></p> <p><font face="Arial">　
　UDB V8.2应用更多的创新技术，Design Advisor可以帮助 DBA
制定全面的数据库设计决策，包括集成复杂的功能划分、物化查询表，大大缩短部署时间。自动生成统计信息概要代表了来自 IBM
LEO研发项目的首次部署。自主对象维护特性可自动执行基于策略的管理和维护功能，如表重构、统计信息收集和数据库备份。高可用性灾难恢复和客户机重路由
特性实现了具备随选能力的企业所需的24*7信息可用性和恢复力。此外，DB2 UDB 提供与 Java/Eclipse 和 Microsoft
.NET IDE的深入集成或插件。 </font></p> <p><font face="Arial">　　 <img src="http://biz.chinabyte.com/imagelist/05/09/1jcv9yc4j982.jpg" border="0" /></font></p> <p><font face="Arial">　　DB2 UDB结构拓扑图 </font></p> <p><font face="Arial">　　SYBASE ASE </font></p> <p><font face="Arial">　
　ASE性能的提高是建立在虚拟服务器架构上的，这是 Sybase
独有的体系结构。当前的ASE版本是ASE15。与操作系统和相关软件保持独立让ASE15可以更智能化地进行系统自我调优。VSA只需要很少的内存资源
和内部交换开销，所以ASE15可以管理大量的联机用户。能够使ASE提高性能并控制成本的最主要原因是它采用了专利技术的、自调整的优化器和查询引擎。
它可以智能地调整复杂的查询操作并忽略那些未包含相关信息的分区上的数据。ASE15还通过一系列用来管理和诊断数据库服务器的新特性来降低运营成本。
</font></p> <p><font face="Arial">　　ASE15
拥有高可靠性和极低的运行风险。个人数据的安全性是ASE特别关注的领域，使用了一种无需修改应用的独特加密系统。当应用和安全软件进行连接时将降低实施
成本并避免产生新的安全漏洞。ASE15 还通过一种简单、直接和可编程的脚本语言来方便进行加密和解密。在解决意外停机问题时，ASE15
在其已证实的可靠性和高系统利用率的基础上，增加了许多显著的功能来增强系统的可用性和灾难恢复过程。新的存储引擎支持四种数据分区方式，在不同的物理设
备上进行不同的分区操作。能帮助数据库管理员迅速地建立冗余灾难恢复节点并在异构的数据平台上同步数据库。 </font></p> <p><font face="Arial">　
　ASE15系统新的查询和存储引擎被设计用于支持下一代网格计算和集群技术。它结合了充分利用数据分区技术的查询处理机制和适用于解决集群问题的优化器
技术。同时ASE15为事件驱动的企业提供了一个绝好的数据库平台。与web services 和
XML的架构将减少系统内部的相互依赖性，并为应用开发提供更大的灵活性。 </font></p> <p><font face="Arial">　　ICX-UDS </font></p> <p><font face="Arial">　　ICX-UDS不受基于数据库引擎的集群技术限制，可以支持不同的数据库。 </font></p> <p><font face="Arial">　
　它类似通常的代理服务器。把ICX放置在关键的网络路径上，监听数据库系统流量。ICX网关将自动过滤出无状态的查询访问，并将负载均衡到所有服务器
上。在这里，网关就象一个在线&ldquo;编译器&rdquo;，它将所有对数据库的更新操作发送到所有数据库上执行，而将无状态的查询操作只发送到其中某一数据库服务器上。
</font></p> <p><font face="Arial">　　对于统计报表和数据挖掘类应用，可以通过复制和只读去获得更快的处理速度。还能指定更多的只读来负载均衡。ICX  网关的容错可以通过备份网关来达到。加载一个非同步的数据库可以造出不影响主服务机群的近于实时的数据源。 </font></p> <p><font face="Arial">　　 <img src="http://biz.chinabyte.com/imagelist/05/09/i602br22jnkk.jpg" border="0" /></font></p> <p><font face="Arial">　　ICX 网关和负载均衡器配置示意图 <br />应用点评 </font></p> <p><font face="Arial">　　Oracle  RAC和Oracle数据库提供的特定新管理性增强功能实现了企业网格。各种规模的企业都可以采用Oracle RAC来支持各类应用程序。 </font></p> <p><font face="Arial">　
　企业网格采用大型标准化商用组件配置：处理器、网络和存储器。利用Oracle
RAC的高速缓存合并技术，Oracle数据库实现了最高可用性和可伸缩性。现在，利用Oracle数据库和Oracle
RAC将大幅降低了运行成本，进一步增强了灵活性，其动态提供节点、存储器、CPU和内存的特性可以更轻松、高效地保持服务级别，而通过提高的利用率又进
一步降低了成本。企业网格是未来的数据中心，使企业具备更高的适应能力、前瞻性和敏捷性。 </font></p> <p><font face="Arial">　　集群技术随着服务器硬件系统与网络操作系统的发展将会在可用性、高可靠性、系统冗余等方面逐步提高。我们汇集了市场上的主流产品，并从分析性能指标的角度出发，对产品进行了简要评价。  </font></p> <p><font face="Arial">　　Sybase  ASE是一个深受用户欢迎的高性能数据库，它具有一个开放的、可扩展的体系结构，易于使用的事务处理系统，以及低廉的维护成本。 </font></p> <p><font face="Arial">　
　ASE可支持传统的、关键任务的OLTP和DSS应用，并且满足Internet应用的发展需要，Sybase可以很好地满足关键任务的企业业务应用的
需求，提供数据库可靠性、集成性和高性能。ASE有效的多线索结构，内部并行机制和有效的查询优化技术提供了出色性能和可伸缩性；还可提供先进的企业集
成、强健和数据访问与数据移动技术，支持跨越远程Sybase和non-Sybase数据库的分布事务和查询。ASE进一步扩展了这些功能，通过分布信息
和管理商业事务，支持通过企业信息门户对商业系统进行个性化的用户访问。 </font></p> <p><font face="Arial">　　MSCS对于诸如电子邮件服务器、数据库应用程序之类的应用程序，是一种良好的运行方式。 </font></p> <p><font face="Arial">　
　假设您决定在一个4节点MSCS群集上运行Microsoft Exchange 2000
Server。当安装MSCS软件以及适用于群集的Exchange 2000版本后，您可以对群集进行配置，以便使Exchange
2000能够在主要节点发生故障时在备份节点上进行故障恢复。当故障发生时，主服务器上肯定存在处于打开状态的用户会话，然而，MSCS能够在不丢失任何
数据的情况下快速、自动的完成故障恢复。备份节点将从故障节点上接替工作负载及相关数据，并继续为用户提供服务。 </font></p> <p><font face="Arial">　　ICX的最大优点是在数据库集群技术面临的挑战上有了新的探索，此项基于中间件的数据库集群技术为获得具有高可扩性的高性能数据库提供了一条切实可行的途径，同时能灵活地适应未来的技术变化。  </font></p> <p><font face="Arial">　
　这种中间件复制技术可位于关键的网络路径上，监听所有进出数据库系统的流量，方便地提供防火墙和其它安全服务，保护物理的数据库服务器。通过多个服务器
的并发处理很容易地隐藏了处理的延迟。实时并行同步交易复制：一旦我们突破了实时并行同步交易复制的技术障碍，用户就能通过由多个数据库服务器构成的集群
来获得高性能，高可用性和高安全性。 </font></p> <p><font face="Arial">　　DB2  UDB是一个可以随企业增长的数据库。当对网站的事务需求达到峰值时它可以迅速响应，它可以进行扩展以容纳分布在许多不同数据库中的数量不断增长的信息。  </font></p> <p><font face="Arial">　
　随着信息基础结构从一个处理器发展到多个处理器再到高度并行的多个群集，它也随之扩展。将分区技术和群集技术集成到新的 DB2 UDB
Enterprise Server Edition 中意味着该版本很灵活。DB2
UDB还添加了自主数据库技术，它使数据库管理员可以选择使用增强的自动化技术来配置、调优和管理他们的数据库。自主数据库管理意味着管理员可以在管理日
常任务上花费较少的时间。表的多维群集减轻了 DBA
创建索引的工作负担，同时提供了数据群集以快速查询。DB2内置的已规划的和未规划的可用性能力确保了业务应用程序在任何时候都可用。诸如索引重建、索引
创建和表装载之类的联机实用程序以及可以不停止数据库进行更改的配置参数，都意味着改进的性能和高可用性。 </font></p> <p><font face="Arial">　　【相关链接】 </font></p> <p><font face="Arial">　　理想的数据库集群应具备的特点 </font></p> <p><font face="Arial">　　提高速度：只通过简单地增加数据库服务器就能相对提高数据库处理速度。 </font></p> <p><font face="Arial">　　数据同步：在任何时刻需要有多个随时可用的实时同步数据服务。最好有多个异地的同步数据服务。 </font></p> <p><font face="Arial">　　安全保证：除了密码保护之外，我们最好能控制企业内部对数据库的非法访问。 </font></p> <p><font face="Arial">　　可扩展性：应保证我们能任意增大数据集而没有对可用性产生负面影响。 </font></p> <p><font face="Arial">　　一般来说，有关数据库集群的技术都非常庞杂。更具挑战性的是，实际应用要求在提高速度、数据同步、安全保证、可扩展性方面的指标能同时提升，而不是单纯提升某一指标而牺牲其他指标。全面提升这些技术指标是数据库集群技术都将面临的重大课题。  </font></p> <p><font face="Arial">　　【名词解释】 </font></p> <p><font face="Arial">　　集群:是一组通过协同工作方式运行同一套应用程序并针对客户端及应用程序提供单一系统映像的独立计算机。集群技术的目标在于通过多层网络结构进一步提高伸缩能力、可用性与可靠性。  </font></p> <p><font face="Arial">　　可伸缩性:是指一台计算机在维持可接受性能的前提下处理不断提高的工作负载的能力。 </font></p> <p><font face="Arial">　　可用性:是指存在质量、备用能力、获取简便性以及可访问能力。 </font></p> <p><font face="Arial">　　可靠性:是指系统牢固程度。</font></p> 
 </div>]]></description>
		</item>
		    
		
	</channel>
</rss>
