<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OS与Oracle &#187; 新特性</title>
	<atom:link href="http://www.os2ora.com/tag/%e6%96%b0%e7%89%b9%e6%80%a7/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.os2ora.com</link>
	<description>专注于现实世界Oracle数据库的高性能，高可扩展性与新一代数据库Exadata架构</description>
	<lastBuildDate>Fri, 16 Jul 2010 02:55:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>11gR2出色的SQL Monitor Report</title>
		<link>http://www.os2ora.com/fantastic-11gr2-sql-monitor-report/</link>
		<comments>http://www.os2ora.com/fantastic-11gr2-sql-monitor-report/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 14:20:28 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[11gR2]]></category>
		<category><![CDATA[active session]]></category>
		<category><![CDATA[gather_plan_statistics]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[SQL Monitor Report]]></category>
		<category><![CDATA[新特性]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/fantastic-11gr2-sql-monitor-report/</guid>
		<description><![CDATA[SQL Monitor Report是11g推出的一个新特性。如果说11gR1里的SQL Monitor Report已经达到可圈可点的程度，那么11gR2里的SQL Monitor Report可以说已经接近完美了。

这个SQL Monitor Report包含的信息比单纯的Execution Plan可全面多了，基本上，有了这份报告之后，troubleshooting所需要的大部分信息都已经具备了。

这个Report主要包括以下五部分......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a>&#160;</p>
<p>SQL Monitor Report是11g推出的一个新特性。如果说11gR1里的SQL Monitor Report已经达到可圈可点的程度，那么11gR2里的SQL Monitor Report可以说已经接近完美了。</p>
<p>这个SQL Monitor Report包含的信息比单纯的Execution Plan可全面多了，基本上，有了这份报告之后，troubleshooting所需要的大部分信息都已经具备了。</p>
<p><a href="http://www.oracle.com/technology/products/manageability/database/active_reports/samples/faq_ctas.html">这个Report</a>主要包括以下五部分:</p>
<p>1. 执行计划，包括SQL执行时年actual rows，我们一般根据它与estimate rows的吻合程度判断一个执行计划的正确与否。在10g的时候，一般可以通过hint gather_plan_statistics来让执行计划显示actural rows，而在11g中，不用相关的hint，SQL Monitor Report就能显示这部分信息了。</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image3.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="383" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb3.png" width="664" border="0" /></a> </p>
<p>2. 还是执行计划，不过没有详细的statistics，但是提供了以图形方式进行执行计划的展示。</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image4.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="374" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb4.png" width="664" border="0" /></a> </p>
<p>3. 并行进程在各个节点上的分布情况，还有每个slave进程的资源消耗情况(DB Time, wait events, physical IO, logical IO etc.)</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image5.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb5.png" width="664" border="0" /></a> </p>
<p>4. SQL对应的数据库活动情况，从这里可以看到SQL的负载特征，如在这里，这条SQL是典型的CPU密集型的SQL。</p>
</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image6.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="385" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb6.png" width="664" border="0" /></a> </p>
<p>5. 系统资源利用情况曲线图，包括CPU, IOPS, MBPS, PGA Usage, Temp Usage etc.</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image7.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="386" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb7.png" width="664" border="0" /></a> </p>
</p>
</p>
<p>可以想像，这个工具将能大幅度提高DBA的工作效率，对于离线分析SQL的执行性能带来了极大的方便。</p>
<p>一个最常提到的问题当然是如何去获取这一份Report，除了通过EM的界面去访问之外，我更趋向于用命令行的方式，这时，有两种选择</p>
<p>1. 如果想在一个SQL执行完之后马上生成SQL Monitor Report，可以简单地调用下面的脚本</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SET</span> linesize <span style="color: #cc66cc;">300</span>
<span style="color: #993333; font-weight: bold;">SET</span> pages <span style="color: #cc66cc;">50000</span>
<span style="color: #993333; font-weight: bold;">SET</span> long <span style="color: #cc66cc;">200000000</span>
<span style="color: #993333; font-weight: bold;">SET</span> longchunksize <span style="color: #cc66cc;">20000000</span>
<span style="color: #993333; font-weight: bold;">SET</span> heading off
<span style="color: #993333; font-weight: bold;">SET</span> termout off
<span style="color: #993333; font-weight: bold;">SET</span> timing off
<span style="color: #993333; font-weight: bold;">SET</span> time off
<span style="color: #993333; font-weight: bold;">SET</span> echo off
<span style="color: #993333; font-weight: bold;">SET</span> verify off
&nbsp;
define f<span style="color: #66cc66;">=</span>&amp;amp;<span style="color: #cc66cc;">1</span>
spool &amp;amp;f<span style="color: #66cc66;">..</span>html
&nbsp;
<span style="color: #993333; font-weight: bold;">SELECT</span>
DBMS_SQLTUNE<span style="color: #66cc66;">.</span>REPORT_SQL_MONITOR<span style="color: #66cc66;">&#40;</span>
session_id<span style="color: #66cc66;">=&gt;</span>sys_context<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'userenv'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'sid'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
report_level<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'ALL'</span><span style="color: #66cc66;">,</span>
type<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'active'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> report
<span style="color: #993333; font-weight: bold;">FROM</span> dual;
&nbsp;
spool off</pre></div></div>

<p>&#160;</p>
<p>2. 如果想在SQL执行过程中或执行结束后在另一个session捕捉SQL Monitor Report，首先必须得到这个SQL的sql_id，然后就可以利用下面的脚本进行调用了。</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SET</span> linesize <span style="color: #cc66cc;">300</span>
<span style="color: #993333; font-weight: bold;">SET</span> pages <span style="color: #cc66cc;">50000</span>
<span style="color: #993333; font-weight: bold;">SET</span> long <span style="color: #cc66cc;">200000000</span>
<span style="color: #993333; font-weight: bold;">SET</span> longchunksize <span style="color: #cc66cc;">20000000</span>
<span style="color: #993333; font-weight: bold;">SET</span> heading off
<span style="color: #993333; font-weight: bold;">SET</span> termout off
<span style="color: #993333; font-weight: bold;">SET</span> timing off
<span style="color: #993333; font-weight: bold;">SET</span> time off
<span style="color: #993333; font-weight: bold;">SET</span> echo off
<span style="color: #993333; font-weight: bold;">SET</span> verify off
&nbsp;
<span style="color: #993333; font-weight: bold;">SELECT</span>
DBMS_SQLTUNE<span style="color: #66cc66;">.</span>REPORT_SQL_MONITOR<span style="color: #66cc66;">&#40;</span>
sql_id<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'&amp;sql_id.'</span><span style="color: #66cc66;">,</span>
report_level<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'ALL'</span><span style="color: #66cc66;">,</span>
type<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'active'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> report
<span style="color: #993333; font-weight: bold;">FROM</span> dual;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/fantastic-11gr2-sql-monitor-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用Instance Caging实现数据库服务器的资源整合</title>
		<link>http://www.os2ora.com/database-instance-caging-server-consolidation/</link>
		<comments>http://www.os2ora.com/database-instance-caging-server-consolidation/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 08:44:04 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Oracle管理与维护]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[Instance Caging]]></category>
		<category><![CDATA[Partition]]></category>
		<category><![CDATA[Resource Manager]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[新特性]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/database-instance-caging-server-consolidation/</guid>
		<description><![CDATA[随着业务的发展，IT部门的服务器数量会越来越庞大，另一方面，这些服务器的利用率却得不到充分利用，于是，服务器的资源整合就被提上了议事日程，这方面的相应的解决方案一般有
Hardware Partitions, 
O/S Workload Managers, 
Virtualization
等等。
在11gR2中，Oracle也提供了一种简单有效的方法实现对服务器资源的整合，这就是Instance Caging技术......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p>随着业务的发展，IT部门的服务器数量会越来越庞大，另一方面，这些服务器的利用率却得不到充分利用，于是，服务器的资源整合就被提上了议事日程，这方面的相应的解决方案一般有</p>
<ol>
<li>Hardware Partitions, </li>
<li>O/S Workload Managers, </li>
<li>Virtualization</li>
<li>等等。</li>
</ol>
<p>在11gR2中，Oracle也提供了一种简单有效的方法实现对服务器资源的整合，这就是Instance Caging技术。</p>
<p>下面的描述实际上来源于Oracle发表的一篇白皮书，下载地址</p>
<p><a href="http://www.oracle.com/technology/products/manageability/database/pdf/owp_instance_caging.pdf">http://www.oracle.com/technology/products/manageability/database/pdf/owp_instance_caging.pdf</a></p>
<p>下面是两种应用资源整合的场合：</p>
<p>1. 对性能要求不严格的数据库，一般我们可以把多个数据库放在同个服务器上，没有突发负载的情况下，所有数据库共享服务器的资源，与把服务器的资源划分隔离给不同的数据库相比，这一方面可以充分利用服务器的计算资源，另一方面也省去了管理的开销。这时，要处理的主要问题在于当某个数据库有突发的工作负载的时候，我们不能让这个数据库占用整台机器的资源，以防止对其它数据库资源的争用。这时，我们说出现了资源过度分配的问题。</p>
<p>举个例子来说，一个有4个CPU的系统，运行着4个数据库，我们可以规定任一个数据库用CPU的最高额度是3个CPU。于是，当4个数据库同时处于业务高峰时，理论上的主机最高压力就会达到12CPU。不过，当启用Instance Caging之后，每个数据库能运行的进程数将受到控制，OS根据每个数据库能运行的进程数分配给每个数据库相应的CPU资源。这样，多个同时处于业务高峰的数据库将会根据预设的最高额度值共享服务器的资源。</p>
<p>2. 对性能要求苛刻的数据库，一般而言，我们希望对CPU进行分区，分配给不同的数据库不同的CPU数目，这样不同的数据库之间就不会造成相互的影响。比如有4个CPU，两个数据库，那么我们可以为第一个数据库分配1个CPU，第二个数据库分配3个CPU。</p>
<p>那么，如何启用Instance Caging呢？简单的两步：</p>
<p>1. 设置cpu_count</p>
<p>2. 启用任何一个Resource Manager Plan.</p>
<p>下面是一个实际案例，利用Instance Caging实现对服务器资源的分区的一个测试结果。</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2009/12/image5.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="396" alt="image" src="http://www.os2ora.com/wp-content/uploads/2009/12/image_thumb5.png" width="566" border="0" /></a> </p>
<p>可以看到，Instance Caging还是实现了它所宣称的partition功能的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/database-instance-caging-server-consolidation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
