<?xml version="1.0" encoding="GB2312"?>
<rss version="2.0">
<channel>
<title>Friends Life and Oracle</title>
<link>http://www.eygle.com/blog/</link>
<description>eygle的Oracle Blog，提供Oracle技术研究及深入探讨，同时记录个人爱好及生活历程。</description>
<copyright>Copyright 2006</copyright>
<lastBuildDate>Thu, 07 Dec 2006 14:17:14 +0800</lastBuildDate>
<generator>http://www.movabletype.org/?v=3.33</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs> 

<item>
<title>10gR2使用RMAN恢复临时表空间的增强</title>
<description><![CDATA[<p>我们知道在Oracle10gR2以前的版本中，如果使用RMAN恢复数据库，临时表空间的临时文件是不会自动恢复的。<br />
这曾经引发了一系列的麻烦，很多DBA在恢复完成之后忘记添加临时文件，经常到应用出错时才能发现。</p>

<p>从Oracle10gR2开始，使用RMAN恢复数据库之后，Oracle会自动重新创建临时文件，由于临时文件是<a href="http://www.eygle.com/archives/2005/08/a_little_more_a.html">Sparse File</a>，所以创建会非常迅速，通常你不会感觉得到。</p>

<p>以下是我曾经恢复的一段日志，其中记录了Oracle的恢复处理过程:</p>

<blockquote>Thu Sep 14 22:52:06 2006<BR>Successfully onlined Undo Tablespace 1.<BR>Dictionary check beginning<BR>Thu Sep 14 22:52:06 2006<BR>Errors in file /opt/oracle/admin/order/bdump/order_dbw0_31025.trc:<BR><strong>ORA-01157: cannot identify/lock data file 201 - see DBWR trace file</strong><BR>ORA-01110: data file 201: '/data1/oradata/ORDER/datafile/o1_mf_temp_28spyr8h_.tmp'<BR>ORA-27037: unable to obtain file status<BR>Linux Error: 2: No such file or directory<BR>Additional information: 3<BR>Thu Sep 14 22:52:06 2006<BR>Errors in file /opt/oracle/admin/order/bdump/order_dbw0_31025.trc:<BR><strong>ORA-01186: file 201 failed verification tests</strong><BR>ORA-01157: cannot identify/lock data file 201 - see DBWR trace file<BR>ORA-01110: data file 201: '/data1/oradata/ORDER/datafile/o1_mf_temp_28spyr8h_.tmp'<BR>Thu Sep 14 22:52:06 2006<BR>File 201 not verified due to error ORA-01157<BR>Thu Sep 14 22:52:06 2006<BR>Dictionary check complete<BR>Thu Sep 14 22:52:06 2006<BR>SMON: enabling tx recovery<BR>Thu Sep 14 22:52:06 2006<BR><strong>Re-creating tempfile /data1/oradata/ORDER/datafile/o1_mf_temp_28spyr8h_.tmp as </strong><BR><strong>/data1/oradata/ORDER/datafile/o1_mf_temp_2jlv4p90_.tmp</strong><BR>Database Characterset is ZHS16GBK<BR>replication_dependency_tracking turned off (no async multimaster replication found)<BR>Starting background process QMNC<BR>QMNC started with pid=22, OS id=13671<BR>Thu Sep 14 22:52:10 2006<BR>LOGSTDBY: Validating controlfile with logical metadata<BR>Thu Sep 14 22:52:10 2006<BR>LOGSTDBY: Validation complete<BR>Starting control autobackup<BR>Control autobackup written to DISK device<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle '/opt/oracle/product/db10g/dbs/c-1341966532-20060914-03'<BR>Completed: alter database open resetlogs</blockquote>

<p>这也是Oracle10gR2的一个细致改进。</p>

<p>-The End-</p>]]></description>
<link>http://www.eygle.com/archives/2006/12/10gr2rman_recover_temporaryfile.html</link>
<guid>http://www.eygle.com/archives/2006/12/10gr2rman_recover_temporaryfile.html</guid>
<category>Oracle10g</category>
<pubDate>Thu, 07 Dec 2006 14:17:14 +0800</pubDate>
</item>
<item>
<title>修改默认的undo_retention参数设置</title>
<description><![CDATA[<p>昨天，一个朋友的数据库数据被误操作删除掉了，请求我帮忙进行恢复。</p>

<p>数据库版本是Oracle10g Release 2的，我首先想到的是使用<a href="http://www.eygle.com/archives/2005/06/eoaoracle9iaeai.html">Flashback Query</a>进行闪回恢复，不幸的是ORA-01555，数据已经不能被闪回了。</p>

<p>查看当时的数据库参数undo_retention设置，发现这个参数被在10g中缺省的被设置为900秒，这个时间长度是不足够的。</p>

<p>马上将这个参数修改为10800，3个小时：<br />
<blockquote>ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH;</blockquote></p>

<p>记得以前<a href="http://www.eygle.com/archives/2005/03/oracle10gaeundo.html">一度</a>这个参数的缺省值被设为10800，可是随之而来的是UNDO表空间的过分扩展，难以<a href="http://www.eygle.com/archives/2005/11/oracle_howto_shrink_undo_tablespace.html">回收</a>，Oracle在不同版本中，也在进行不停的加权和折中。</p>

<p>Oracle也许会这样想:<strong>如果很少有人使用Flashback Query,而过大的undo_retention又会带来麻烦，那么干脆，设小点。</strong></p>

<p>恢复之后，将朋友的另外几个数据库的undo_retention同样修改为10800。<br />
这一设置，应该被更新如安装手册，安装完数据库后即刻作出调整。</p>

<p>另外一点需要记录的是，误删除操作是由于应用程序逻辑错误导致的，这种情况真是屡见不鲜；8.31时还处理过一个重大故障，同样是由于程序编写错误，导致数据库崩溃。<br />
可见，我们的程序员们在编码过程中，同样疏忽不得。</p>

<p>-The End-</p>]]></description>
<link>http://www.eygle.com/archives/2006/09/undo_retention_need_change.html</link>
<guid>http://www.eygle.com/archives/2006/09/undo_retention_need_change.html</guid>
<category>Oracle10g</category>
<pubDate>Fri, 15 Sep 2006 16:35:58 +0800</pubDate>
</item>
<item>
<title>Oracle10g的回收站(recyclebin)和自由空间管理</title>
<description><![CDATA[<p>今天在检查数据库报告时发现了这样一条记录：</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">- Large object Report <br /><br />OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE Size_Mb <br />---------- ----------------------------- ------------- ---------- ---------- <br />BOSSMGR BIN$FzMEZaDyQK3gRAADuow9AA==$0 TABLE BOSSMGR 25075</td>
        </tr>
    </tbody>
</table>
<p>在Oracle10g的<a href="http://www.eygle.com/archives/2005/12/how_to_maintain_10g_recyclebin.html">回收站</a>里，竟然有一个大小为25G的对象，想着手手动释放这个空间，首先检查回收站内的相关对象：</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; select tablespace_name,sum(bytes)/1024/1024 from dba_free_space <br />2 group by tablespace_name;</p>
            <p>TABLESPACE_NAME SUM(BYTES)/1024/1024<br />------------------------------ --------------------<br />SYSTEM 190.5<br />DBMON 98.5625<br />USERS 93.875<br />BOSSMGR 27485<br />SYSAUX 90.625<br />UNDOTBS1 7726.625</p>
            <p>6 rows selected.</p>
            <p>SQL&gt; select * from ( <br />2 select a.owner,a.OBJECT_NAME,a.ORIGINAL_NAME,b.bytes/1024/1024 MB<br />3 from dba_<strong style="COLOR: black; BACKGROUND-COLOR: #ff66ff">recyclebin</strong> a,dba_segments b where a.object_name=b.segment_name<br />4 order by MB desc) where rownum &lt;11;</p>
            <p><br />OWNER OBJECT_NAME ORIGINAL_NAME MB<br />------------ ------------------------------ -------------------------------- ----------<br />BOSSMGR BIN$FzMEZaDyQK3gRAADuow9AA==$0 SMS_ORG_9966_MT_BB 25075<br />BOSSMGR BIN$GEhw0fmlao/gRAADuow9AA==$0 SMS_USER_ACT_LT_D 150<br />BOSSMGR BIN$GQ9bLdyEMRXgRAADuow9AA==$0 TEM_HS_1000_MTREP 65<br />BOSSMGR BIN$GaA7x8y+dDrgRAADuow9AA==$0 TEM_HS_1000_MTREP 65<br />BOSSMGR BIN$F1VaFrYRJBfgRAADuow9AA==$0 STAT_RESPREPT_CENTER_TEM2 65<br />BOSSMGR BIN$F6luiSeSIurgRAADuow9AA==$0 TEM_HEBEI_0311 65<br />BOSSMGR BIN$F1VaFrYQJBfgRAADuow9AA==$0 PK_STAT_RESPREPT_CENTER_TEM2 45<br />BOSSMGR BIN$GaA7x8zHdDrgRAADuow9AA==$0 TEM_HS_1000_MTREP 35<br />BOSSMGR BIN$GY4HJpMhaVjgRAADuow9AA==$0 TEM_9966_USER 15<br />BOSSMGR BIN$GY4HJpMmaVjgRAADuow9AA==$0 TEM_9966_USER_2 15</p>
            <p>10 rows selected.</p>
            </td>
        </tr>
    </tbody>
</table>
<p>清空最大的对象：</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; purge table bossmgr.SMS_ORG_9966_MT_BB;</p>
            <p>Table purged.</p>
            </td>
        </tr>
    </tbody>
</table>
<p>我们注意到此时的dba_free_space空间并未发生变化：</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; select tablespace_name,sum(bytes)/1024/1024 from dba_free_space <br />2 group by tablespace_name;</p>
            <p>TABLESPACE_NAME SUM(BYTES)/1024/1024<br />------------------------------ --------------------<br />SYSTEM 190.5<br />DBMON 98.5625<br />USERS 93.875<br />BOSSMGR 27485<br />SYSAUX 90.625<br />UNDOTBS1 7726.625</p>
            <p>6 rows selected.</p>
            </td>
        </tr>
    </tbody>
</table>
那么是哪里发生了变化呢？
<div id="a001014more">
<div id="more">
<p>变化发生在dba_free_space视图的构成上。在Oracle10g中，如果启用flash drop功能，在drop表时，数据库不会直接删除，而是将其放在回收站中，当空间出现短缺时，才会逐渐回收这部分空间。当对象删除之后，这部分空间会记入free space，也就是说被包含在dba_free_space的查询结果之中。</p>
<p>我们看一下这个视图的变化，在Oracle9i之中，这个视图构建如下：</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; set long 9999 <br />SQL&gt; set pagesize 99<br />SQL&gt; select text from dba_views where view_name=upper('&amp;view_name');<br />Enter value for view_name: dba_free_space<br />old 1: select text from dba_views where view_name=upper('&amp;view_name')<br />new 1: select text from dba_views where view_name=upper('dba_free_space')</p>
            <p>TEXT<br />--------------------------------------------------------------------------------<br />select ts.name, fi.file#, f.block#,<br />f.length * ts.blocksize, f.length, f.file#<br />from sys.ts$ ts, sys.fet$ f, sys.file$ fi<br />where ts.ts# = f.ts#<br />and f.ts# = fi.ts#<br />and f.file# = fi.relfile#<br />and ts.bitmapped = 0<br />union all<br />select /*+ ordered use_nl(f) use_nl(fi) */<br />ts.name, fi.file#, f.ktfbfebno,<br />f.ktfbfeblks * ts.blocksize, f.ktfbfeblks, f.ktfbfefno<br />from sys.ts$ ts, sys.x$ktfbfe f, sys.file$ fi<br />where ts.ts# = f.ktfbfetsn<br />and f.ktfbfetsn = fi.ts#<br />and f.ktfbfefno = fi.relfile#<br />and ts.bitmapped &lt;&gt; 0 and ts.online$ in (1,4) and ts.contents$ = 0</p>
            </td>
        </tr>
    </tbody>
</table>
<p>而在Oracle10g中，这个视图增加了关于<strong style="COLOR: black; BACKGROUND-COLOR: #ff66ff">recyclebin</strong>的部分：</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; set long 9999 <br />SQL&gt; set pagesize 99<br />SQL&gt; select text from dba_views where view_name=upper('&amp;view_name');<br />Enter value for view_name: dba_free_space<br />old 1: select text from dba_views where view_name=upper('&amp;view_name')<br />new 1: select text from dba_views where view_name=upper('dba_free_space')</p>
            <p>TEXT<br />--------------------------------------------------------------------------------<br />select ts.name, fi.file#, f.block#,<br />f.length * ts.blocksize, f.length, f.file#<br />from sys.ts$ ts, sys.fet$ f, sys.file$ fi<br />where ts.ts# = f.ts#<br />and f.ts# = fi.ts#<br />and f.file# = fi.relfile#<br />and ts.bitmapped = 0<br />union all<br />select /*+ ordered use_nl(f) use_nl(fi) */<br />ts.name, fi.file#, f.ktfbfebno,<br />f.ktfbfeblks * ts.blocksize, f.ktfbfeblks, f.ktfbfefno<br />from sys.ts$ ts, sys.x$ktfbfe f, sys.file$ fi<br />where ts.ts# = f.ktfbfetsn<br />and f.ktfbfetsn = fi.ts#<br />and f.ktfbfefno = fi.relfile#<br />and ts.bitmapped &lt;&gt; 0 and ts.online$ in (1,4) and ts.contents$ = 0<br />union all<br />select /*+ ordered use_nl(u) use_nl(fi) */<br />ts.name, fi.file#, u.ktfbuebno,<br />u.ktfbueblks * ts.blocksize, u.ktfbueblks, u.ktfbuefno<br />from sys.<strong style="COLOR: black; BACKGROUND-COLOR: #ff66ff">recyclebin</strong>$ rb, sys.ts$ ts, sys.x$ktfbue u, sys.file$ fi<br />where ts.ts# = rb.ts#<br />and rb.ts# = fi.ts#<br />and rb.file# = fi.relfile#<br />and u.ktfbuesegtsn = rb.ts#<br />and u.ktfbuesegfno = rb.file#<br />and u.ktfbuesegbno = rb.block#<br />and ts.bitmapped &lt;&gt; 0 and ts.online$ in (1,4) and ts.contents$ = 0<br />union all<br />select ts.name, fi.file#, u.block#,<br />u.length * ts.blocksize, u.length, u.file#<br />from sys.ts$ ts, sys.uet$ u, sys.file$ fi, sys.<strong style="COLOR: black; BACKGROUND-COLOR: #ff66ff">recyclebin</strong>$ rb<br />where ts.ts# = u.ts#<br />and u.ts# = fi.ts#<br />and u.segfile# = fi.relfile#<br />and u.ts# = rb.ts#<br />and u.segfile# = rb.file#<br />and u.segblock# = rb.block#<br />and ts.bitmapped = 0</p>
            </td>
        </tr>
    </tbody>
</table>
<p>这就是Oracle10g的回收站(recyclebin)和自由空间管理的变化。</p>
<p>在Oracle10g中，有时候查询dba_free_space视图异常缓慢，就是因为<strong style="COLOR: black; BACKGROUND-COLOR: #ff66ff">recyclebin</strong>中对象太多的缘故。</p>
<p>&nbsp;</p>
</div>
</div>]]></description>
<link>http://www.eygle.com/archives/2006/08/recyclebin_and_free_space.html</link>
<guid>http://www.eygle.com/archives/2006/08/recyclebin_and_free_space.html</guid>
<category>Oracle10g</category>
<pubDate>Tue, 01 Aug 2006 16:40:40 +0800</pubDate>
</item>
<item>
<title>Oracle10gR2 ORA-3136 错误解决</title>
<description><![CDATA[<p>最近一台新上线的Oracle10gR2数据库在警告日志文件中(<em>alert.log</em>)持续出现如下错误:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">Tue Jul 18 23:09:22 2006<br />WARNING: inbound connection timed out (ORA-3136)<br />Tue Jul 18 23:09:23 2006<br />WARNING: inbound connection timed out (ORA-3136)<br />Tue Jul 18 23:09:25 2006<br />WARNING: inbound connection timed out (ORA-3136)<br />Tue Jul 18 23:09:30 2006<br />WARNING: inbound connection timed out (ORA-3136)<br />Tue Jul 18 23:12:15 2006<br />WARNING: inbound connection timed out (ORA-3136)</td>
        </tr>
    </tbody>
</table>
<p>同时在sqlnet.log中记录了如下错误:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>Fatal NI connect error 12170.</p>
            <p>VERSION INFORMATION:<br />TNS for Linux: Version 10.2.0.2.0 - Production<br />Oracle Bequeath NT Protocol Adapter for Linux: Version 10.2.0.2.0 - Production<br />TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.2.0 - Production<br />Time: 19-JUL-2006 11:25:26<br />Tracing not turned on.<br />Tns error struct:<br />ns main err code: 12535<br />TNS-12535: TNS:operation timed out<br />ns secondary err code: 12606<br />nt main err code: 0<br />nt secondary err code: 0<br />nt OS err code: 0<br />Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.123)(PORT=58147))</p>
            </td>
        </tr>
    </tbody>
</table>
<p>这是和网络连接相关的一个错误,Metalink上给出了如下的解决方案:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><strong>1.set INBOUND_CONNECT_TIMEOUT_
<listener name=""></listener>
=0 in listener.ora<br />2. set SQLNET.INBOUND_CONNECT_TIMEOUT = 0 in sqlnet.ora of server.<br />3. stop and start both listener and database.<br />4. Now try to connect to DB and observe the behaviour</strong></p>
</blockquote>
<p>这里重起数据库和Listener我认为是没有必要的,我们reload一下Listner应该就可以了.</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>[oracle@order admin]$ lsnrctl </p>
            <p>LSNRCTL for Linux: Version 10.2.0.2.0 - Production on 19-JUL-2006 15:26:33</p>
            <p>Copyright (c) 1991, 2005, Oracle. All rights reserved.</p>
            <p>Welcome to LSNRCTL, type &quot;help&quot; for information.</p>
            <p>LSNRCTL&gt; reload <br />Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.9.11)(PORT=1521)))<br />The command completed successfully<br />LSNRCTL&gt; services<br />Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.9.11)(PORT=1521)))<br />Services Summary...<br />Service &quot;order&quot; has 2 instance(s).<br />Instance &quot;order&quot;, status UNKNOWN, has 1 handler(s) for this service...<br />Handler(s):<br />&quot;DEDICATED&quot; established:0 refused:0<br />LOCAL SERVER<br />Instance &quot;order&quot;, status READY, has 1 handler(s) for this service...<br />Handler(s):<br />&quot;DEDICATED&quot; established:0 refused:0 state:ready<br />LOCAL SERVER<br />The command completed successfully </p>
            <p>LSNRCTL&gt; show inbound_connect_timeout<br />Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.9.11)(PORT=1521)))<br />LISTENER parameter &quot;inbound_connect_timeout&quot; set to 0<br />The command completed successfully<br />LSNRCTL&gt; exit</p>
            </td>
        </tr>
    </tbody>
</table>
<p>修改之后,观察了一段时间,目前正常.</p>
<p>关于SQLNET.INBOUND_CONNECT_TIMEOUT参数,Oracle建议修改该参数,以避免denial-of-service攻击.</p>
<p>引用一段Oracle文档说明如下:</p>
<div id="a000997more">
<div id="more">
<p><strong>SQLNET.INBOUND_CONNECT_TIMEOUT</strong><br /><em><strong>Purpose<br /></strong></em>Use the SQLNET.INBOUND_CONNECT_TIMEOUT parameter to specify the time, in seconds, for a client to connect with the database server and provide the necessary authentication information.</p>
<p>If the client fails to establish a connection and complete authentication in the time specified, then the database server terminates the connection. In addition, the database server logs the IP address of the client and an ORA-12170: TNS:Connect timeout occurred error message to the sqlnet.log file. The client receives either an ORA-12547: TNS:lost contact or an ORA-12637: Packet receive failed error message.</p>
<p>Without this parameter, a client connection to the database server can stay open indefinitely without authentication. Connections without authentication can introduce possible denial-of-service attacks, whereby malicious clients attempt to flood database servers with connect requests that consume resources.</p>
<p>To protect both the database server and the listener, Oracle Corporation recommends setting this parameter in combination with the INBOUND_CONNECT_TIMEOUT_listener_name parameter in the listener.ora file. When specifying values for these parameters, consider the following recommendations:</p>
<p>Set both parameters to an initial low value. <br />Set the value of the INBOUND_CONNECT_TIMEOUT_listener_name parameter to a lower value than the SQLNET.INBOUND_CONNECT_TIMEOUT parameter. <br />For example, you can set INBOUND_CONNECT_TIMEOUT_listener_name to 2 seconds and INBOUND_CONNECT_TIMEOUT parameter to 3 seconds. If clients are unable to complete connections within the specified time due to system or network delays that are normal for the particular environment, then increment the time as needed.</p>
<p><em>See Also: <br /></em>Oracle9i Net Services Administrator's Guide for information about configuring these parameters </p>
<p><strong><em>Default</em></strong><br />None</p>
<p><strong><em>Example</em></strong><br />SQLNET.INBOUND_CONNECT_TIMEOUT=3</p>
<p>&nbsp;</p>
</div>
</div>
]]></description>
<link>http://www.eygle.com/archives/2006/07/sqlnet_inbound_connect_timeout.html</link>
<guid>http://www.eygle.com/archives/2006/07/sqlnet_inbound_connect_timeout.html</guid>
<category>Oracle10g</category>
<pubDate>Wed, 19 Jul 2006 11:20:57 +0800</pubDate>
</item>
<item>
<title>Oracle10g v$database视图SCN增强</title>
<description><![CDATA[<p>在Oracle10g中,Oracle对v$database视图做出增强,增加了很多字段,其中一个重要字段是:CURRENT_SCN,代表数据库当前的SCN:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; select * from v$version;</p>
            <p>BANNER<br />----------------------------------------------------------------<br />Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod<br />PL/SQL Release 10.2.0.1.0 - Production<br />CORE 10.2.0.1.0 Production<br />TNS for Linux: Version 10.2.0.1.0 - Production<br />NLSRTL Version 10.2.0.1.0 - Production</p>
            <p>SQL&gt; desc <strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">v</strong>$database<br />Name Null? Type<br />----------------------------------------- -------- ----------------------------<br />DBID NUMBER<br />NAME VARCHAR2(9)<br />...................<br />CURRENT_SCN NUMBER<br />FLASHBACK_ON VARCHAR2(18)<br />SUPPLEMENTAL_LOG_DATA_FK VARCHAR2(3)<br />SUPPLEMENTAL_LOG_DATA_ALL VARCHAR2(3)<br />DB_UNIQUE_NAME VARCHAR2(30)<br />STANDBY_BECAME_PRIMARY_SCN NUMBER<br />FS_FAILOVER_STATUS VARCHAR2(21)<br />FS_FAILOVER_CURRENT_TARGET VARCHAR2(30)<br />FS_FAILOVER_THRESHOLD NUMBER<br />FS_FAILOVER_OBSERVER_PRESENT VARCHAR2(7)<br />FS_FAILOVER_OBSERVER_HOST VARCHAR2(512)<br /></p>
            </td>
        </tr>
    </tbody>
</table>
<p>这个字段来自底层基础表x$kccdi ,其中的字段为:DICUR_SCN , DI代表Database Information ,cur_scn 代表 current SCN:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">SQL&gt; desc x$kccdi<br />Name Null? Type<br />----------------------------------------- -------- -----------------<br />ADDR RAW(4)<br />INDX NUMBER<br />...............<br />DIPLID NUMBER<br />DIPLN VARCHAR2(101)<br />DICUR_SCN VARCHAR2(16)<br />DIDBUN VARCHAR2(30)<br />DIFSTS NUMBER<br />DIFOPR NUMBER<br />DIFTHS NUMBER<br />DIFTGT VARCHAR2(30)<br />DIFOBS VARCHAR2(512)</td>
        </tr>
    </tbody>
</table>
<p>这个SCN值和9i中引入的dbms_flashback.get_system_change_number获得的值相同:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; select <br />2 (select dicur_scn from x$kccdi ) a,<br />3 (select dbms_flashback.get_system_change_number a from dual) b<br />4 from dual;</p>
            <p>A B<br />---------------- ------------------<br />8905603606859 8905603606859</p>
            </td>
        </tr>
    </tbody>
</table>
<p><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">v</strong>$database在<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">Oracle10g</strong>中构建的语句如下,引用供参考:</p>
<div id="a000998more">
<div id="more">
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">SELECT di.inst_id, di.didbi, di.didbn,<br />TO_DATE (di.dicts, 'MM/DD/RR HH24:MI:SS', 'NLS_CALENDAR=Gregorian'),<br />TO_NUMBER (di.dirls),<br />TO_DATE (di.dirlc, 'MM/DD/RR HH24:MI:SS', 'NLS_CALENDAR=Gregorian'),<br />TO_NUMBER (di.diprs),<br />TO_DATE (di.diprc, 'MM/DD/RR HH24:MI:SS', 'NLS_CALENDAR=Gregorian'),<br />DECODE (di.dimla, 0, 'NOARCHIVELOG', 1, 'ARCHIVELOG', 'MANUAL'),<br />TO_NUMBER (di.discn), TO_NUMBER (di.difas),<br />DECODE (BITAND (di.diflg, 256),<br />256, 'CREATED',<br />DECODE (BITAND (di.diflg, 1024),<br />1024, 'STANDBY',<br />DECODE (BITAND (di.diflg, 32768),<br />32768, 'CLONE',<br />DECODE (BITAND (di.diflg, 4096),<br />4096, 'BACKUP',<br />'CURRENT'<br />)<br />)<br />)<br />),<br />TO_DATE (di.dicct, 'MM/DD/RR HH24:MI:SS', 'NLS_CALENDAR=Gregorian'),<br />di.dicsq, TO_NUMBER (di.dickp_scn),<br />TO_DATE (di.dickp_tim, 'MM/DD/RR HH24:MI:SS', 'NLS_CALENDAR=Gregorian'),<br />DECODE (BITAND (di.diflg, 4),<br />4, 'REQUIRED',<br />DECODE (di.diirs, 0, 'NOT ALLOWED', 'ALLOWED')<br />),<br />TO_DATE (di.divts, 'MM/DD/RR HH24:MI:SS', 'NLS_CALENDAR=Gregorian'),<br />DECODE (di.didor,<br />0, 'MOUNTED',<br />DECODE (di.didor, 1, 'READ WRITE', 'READ ONLY')<br />),<br />DECODE (BITAND (di.diflg, 65536),<br />65536, 'MAXIMUM PROTECTION',<br />DECODE (BITAND (di.diflg, 128),<br />128, 'MAXIMUM AVAILABILITY',<br />DECODE (BITAND (di.diflg, 134217728),<br />134217728, 'RESYNCHRONIZATION',<br />DECODE (BITAND (di.diflg, 8),<br />8, 'UNPROTECTED',<br />'MAXIMUM PERFORMANCE'<br />)<br />)<br />)<br />),<br />DECODE (di.diprt,<br />1, 'MAXIMUM PROTECTION',<br />2, 'MAXIMUM AVAILABILITY',<br />3, 'RESYNCHRONIZATION',<br />4, 'MAXIMUM PERFORMANCE',<br />5, 'UNPROTECTED',<br />'UNKNOWN'<br />),<br />DECODE (di.dirae,<br />0, 'DISABLED',<br />1, 'SEND',<br />2, 'RECEIVE',<br />3, 'ENABLED',<br />'UNKNOWN'<br />),<br />TO_NUMBER (di.diacid), TO_NUMBER (di.diacid),<br />DECODE (BITAND (di.diflg, 33554432),<br />33554432, 'LOGICAL STANDBY',<br />DECODE (BITAND (di.diflg, 1024),<br />1024, 'PHYSICAL STANDBY',<br />'PRIMARY'<br />)<br />),<br />TO_NUMBER (di.diars),<br />DECODE (BITAND (difl2, 1), 1, 'ENABLED', 'DISABLED'),<br />DECODE (di.disos,<br />0, 'IMPOSSIBLE',<br />1, 'NOT ALLOWED',<br />2, 'SWITCHOVER LATENT',<br />3, 'SWITCHOVER PENDING',<br />4, 'TO PRIMARY',<br />5, 'TO STANDBY',<br />6, 'RECOVERY NEEDED',<br />7, 'SESSIONS ACTIVE',<br />8, 'PREPARING SWITCHOVER',<br />9, 'PREPARING DICTIONARY',<br />10, 'TO LOGICAL STANDBY',<br />'UNKNOWN'<br />),<br />DECODE (di.didgd, 0, 'DISABLED', 'ENABLED'),<br />DECODE (BITAND (di.diflg, 1048576),<br />1048576, 'ALL',<br />DECODE (BITAND (di.diflg, 2097152),<br />2097152, 'STANDBY',<br />'NONE'<br />)<br />),<br />DECODE (BITAND (diflg, 1073741824),<br />1073741824, 'YES',<br />DECODE (BITAND (diflg, 131072 + 262144 + 524288),<br />0, DECODE (BITAND (difl2, 2), 0, 'NO', 'IMPLICIT'),<br />'IMPLICIT'<br />)<br />),<br />DECODE (BITAND (di.diflg, 131072), 131072, 'YES', 'NO'),<br />DECODE (BITAND (di.diflg, 262144), 262144, 'YES', 'NO'),<br />DECODE (BITAND (di.diflg, 268435456), 268435456, 'YES', 'NO'),<br />di.diplid, di.dipln, di2.di2rdi, di2.di2inc, TO_NUMBER (di.dicur_scn),<br />DECODE (BITAND (di2.di2flag, 1),<br />1, 'YES',<br />DECODE (di2.di2rsp_oldest, 0, 'NO', 'RESTORE POINT ONLY')<br />),<br />DECODE (BITAND (diflg, 524288), 524288, 'YES', 'NO'),<br />DECODE (BITAND (difl2, 2), 2, 'YES', 'NO'), di.didbun,<br />TO_NUMBER (di2.di2actiscn),<br />DECODE (di.difsts,<br />0, 'DISABLED',<br />1, 'BYSTANDER',<br />2, 'SYNCHRONIZED',<br />3, 'UNSYNCHRONIZED',<br />4, 'SUSPENDED',<br />5, 'STALLED',<br />6, 'LOADING DICTIONARY',<br />7, 'PRIMARY UNOBSERVED',<br />8, 'REINSTATE REQUIRED',<br />9, 'REINSTATEIN PROGRESS',<br />10, 'REINSTATE FAILED',<br />''<br />),<br />di.diftgt, di.difths,<br />DECODE (di.difopr, 1, 'YES', 2, 'NO', 3, 'UNKNOWN', ''), di.difobs<br />FROM x$kccdi di, x$kccdi2 di2<br /></td>
        </tr>
    </tbody>
</table>
<p>此前获取SCN可以通过如下方法:</p>
<p><a href="http://www.eygle.com/faq/How.To.Get.Current.SCN.of.Database.htm">http://www.eygle.com/faq/How.To.Get.Current.SCN.of.Database.htm</a></p>
<p>&nbsp;</p>
</div>
</div>]]></description>
<link>http://www.eygle.com/archives/2006/07/oracle10g_v_database_scn.html</link>
<guid>http://www.eygle.com/archives/2006/07/oracle10g_v_database_scn.html</guid>
<category>Oracle10g</category>
<pubDate>Wed, 19 Jul 2006 10:34:50 +0800</pubDate>
</item>
<item>
<title>10g New Feature:MAXTRANS参数已经废弃</title>
<description><![CDATA[<p>此前写过两篇文章,介绍ITL竞争的<a href="http://www.eygle.com/archives/2006/06/index_itl_waits.html">模拟</a>,有朋友在留言版上<a href="http://www.eygle.com/gbook/reply.php?gbid=2993">留言</a>无法模拟,经过询问,得知在Oracle10g上无法再现我的试验结果.</p>
<p>首先猜测是Oracle10g的处理方式不同,我决定动手来验证一下,首先在Oracle9i中,创建一个测试表,设置MAXTRANS参数,结果如下:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; connect eygle/eygle<br />Connected.<br />SQL&gt; CREATE TABLE EYGLE_ITL<br />2 (C1 NUMBER,<br />3 C2 VARCHAR2(10)<br />4 )<br />5 INITRANS 1 MAXTRANS 1<br />6 /</p>
            <p>Table created.</p>
            <p>SQL&gt; select table_name,INI_TRANS,MAX_TRANS from user_tables where table_name='EYGLE_ITL';</p>
            <p>TABLE_NAME INI_TRANS MAX_TRANS<br />------------------------------ ---------- ----------<br />EYGLE_ITL 1 1<br /></p>
            </td>
        </tr>
    </tbody>
</table>
<p>而在Oracle<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">10g</strong>中,我们注意到MAXTRANS参数的设置已经无效:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>[oracle@danaly ~]$ sqlplus eygle/eygle</p>
            <p>SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jun 26 11:59:20 2006<br />Copyright (c) 1982, 2005, Oracle. All rights reserved.</p>
            <p><br />Connected to:<br />Oracle Database <strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">10g</strong> Enterprise Edition Release 10.2.0.1.0 - Production<br />With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options</p>
            <p>SQL&gt; CREATE TABLE EYGLE_ITL<br />2 (C1 NUMBER,<br />3 C2 VARCHAR2(10)<br />4 )<br />5 INITRANS 1 MAXTRANS 1<br />6 /</p>
            <p>Table created.</p>
            <p>SQL&gt; select table_name,INI_TRANS,MAX_TRANS from user_tables where table_name='EYGLE_ITL';</p>
            <p>TABLE_NAME INI_TRANS MAX_TRANS<br />------------------------------ ---------- ----------<br />EYGLE_ITL 1 255</p>
            </td>
        </tr>
    </tbody>
</table>
<p>我们注意到，不管如何设置，最终的MAX_TRANS都是255。</p>
<p>查阅Oracle手册得到如下说明：</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>Note:In earlier releases of Oracle Database, the MAXTRANS parameter limited the number of transaction entries that could concurrently use data in a data block. This parameter has been deprecated. </p>
<p>Oracle Database now automatically allows up to 255 concurrent update transactions for any data block, depending on the available space in the block.<br />The database ignores MAXTRANS when specified by users only for <strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">new</strong> objects created when the COMPATIBLE initialization parameter is set to 10.0 or greater. </p>
</blockquote>
<p dir="ltr">也就是说在Oracle<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">10g</strong>中，对于单个数据块，Oracle缺省最大支持255个并发，MAXTRANS参数被废弃。</p>
<p dir="ltr">这就是网友在<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">10g</strong>上无法模拟我的结果的原因。</p>
<div id="a000960more">
<div id="more">
<p>总结一下：当我们想要找到一个答案时，步骤可能很简单，只需要动手，思考。懒惰是要不得的，要知道<a href="http://www.eygle.com/archives/2006/02/the_sun_repays_industriously.html">天道酬勤</a>。</p>
<p>&nbsp;</p>
</div>
</div>]]></description>
<link>http://www.eygle.com/archives/2006/06/maxtrans_is_deprecated.html</link>
<guid>http://www.eygle.com/archives/2006/06/maxtrans_is_deprecated.html</guid>
<category>Oracle10g</category>
<pubDate>Mon, 26 Jun 2006 15:25:52 +0800</pubDate>
</item>
<item>
<title>Dell的2850 + Oracle10gR2 I/O性能测试</title>
<description><![CDATA[<p>前几天帮朋友安装了一套Oracle10gR2的环境，顺便简单测试了一下IO性能。<br />机器是Dell的2850，三块硬盘的Raid5。</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>[oracle@order ~]$ sqlplus eygle/eygle</p>
            <p>SQL*Plus: Release 10.2.0.2.0 - Production on Fri Jun 16 11:29:49 2006<br />Copyright (c) 1982, 2005, Oracle. All Rights Reserved.</p>
            <p>Connected to:<br />Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production<br />With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options</p>
            </td>
        </tr>
    </tbody>
</table>
<p>SGA设置如下:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; show sga</p>
            <p>Total System Global Area 2483027968 bytes<br />Fixed Size 1262344 bytes<br />Variable Size 536874232 bytes<br />Database Buffers 1929379840 bytes<br />Redo Buffers 15511552 bytes</p>
            </td>
        </tr>
    </tbody>
</table>
<p>插入数据测试性能: </p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; create table t as select * from dba_objects where 1=0;</p>
            <p>Table created.</p>
            <p>SQL&gt; begin<br />2 for <strong style="COLOR: black; BACKGROUND-COLOR: #ff66ff">i</strong> in 1 .. 10000 loop<br />3 insert into t select * from dba_objects where rownum &lt;1001;<br />4 commit;<br />5 end loop<br />6 ;<br />7 end;<br />8 /</p>
            <p>PL/SQL procedure successfully completed.</p>
            </td>
        </tr>
    </tbody>
</table>
<p>通过iostat观察IO性能，以下简要的几个采样显示：<br />在iowait达到25.24%时，系统的IO写入能力可以达到18M左右。<br />在iowait达到28.23%时，系统的IO写入能力可以达到48M左右。</p>
<p>而CPU的idle值都在60%以上，说明CPU仍然有相当空闲，IO仍然是主要瓶颈。<br />但是这个IO性能也已经不错了，SCSI的硬盘，能够满足一般业务的需求了。</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>[oracle@xcstat ~]$ iostat -k 5|grep -v &quot;0.00 0.00 0.00&quot;<br />Linux 2.6.9-34.ELsmp (xcstat.xcsky.cn) 06/16/2006</p>
            <p>avg-cpu: %user %nice %sys %iowait %idle<br />4.70 0.00 2.40 25.24 67.67</p>
            <p>Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn<br />sda 1164.47 7.98 18447.11 40 92420<br />sda5 4613.37 7.98 18445.51 40 92412<br />sda7 0.40 0.00 1.60 0 8</p>
            <p>avg-cpu: %user %nice %sys %iowait %idle<br />4.75 0.00 3.60 28.23 63.41</p>
            <p>Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn<br />sda 670.94 0.00 48109.82 0 240068<br />sda5 12026.85 0.00 48107.41 0 240056<br />sda7 0.60 0.00 2.40 0 12</p>
            </td>
        </tr>
    </tbody>
</table>
综合总体数据：<br />平均IO写入速度为:19183.18945 kB_wrtn/s<br />最大IO写入速度为:48107.41 kB_wrtn/s<br />最小IO写入速度为:978 kB_wrtn/s
<div id="a000946more">
<div id="more">
<p>简单的测试，记录些简单的数据供参考。</p>
<p>&nbsp;</p>
</div>
</div>]]></description>
<link>http://www.eygle.com/archives/2006/06/dell2850_oracle10g_iospeed.html</link>
<guid>http://www.eygle.com/archives/2006/06/dell2850_oracle10g_iospeed.html</guid>
<category>Oracle10g</category>
<pubDate>Tue, 20 Jun 2006 11:44:03 +0800</pubDate>
</item>
<item>
<title>Oracle10g新特性-SYSAUX表空间</title>
<description><![CDATA[<font size="2">SYSAUX表空间在Oracle Database 10g中引入,作为SYSTEM表空间的辅助表空间.<br /><br />以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.<br />通过分离这些组件和功能，SYSTEM表空间的负荷得以减轻.反复创建一些相关对象及组件引起SYSTEM表空间的碎片问题得以避免。<br /><br />如果SYSAUX表空间不可用,数据库核心功能将保持有效;使用SYSAUX表空间的特点将会失败或功能受限.</font>
<p align="left"><font face="verdana, arial, helvetica" size="2">我们看一下数据库创建脚本：</font></p>
<p align="left"><font face="verdana, arial, helvetica" size="2"><br /></font></p>
<table cellspacing="0" cellpadding="0" bgcolor="#999999">
    <tbody>
        <tr>
            <td class="style22" valign="top" width="735">
            <p>CREATE DATABASE &quot;eygle&quot;<br />MAXINSTANCES 8<br />MAXLOGHISTORY 1<br />MAXLOGFILES 16<br />MAXLOGMEMBERS 3<br />MAXDATAFILES 100<br />DATAFILE '/opt/oracle/oradata/eygle/system01.dbf' <br />SIZE 300M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED<br />EXTENT MANAGEMENT LOCAL<br />SYSAUX DATAFILE '/opt/oracle/oradata/eygle/sysaux01.dbf' <br />SIZE 120M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED--<strong>SYSAUX表空间的创建</strong><br />DEFAULT TEMPORARY TABLESPACE TEMP <br />TEMPFILE '/opt/oracle/oradata/eygle/temp01.dbf' SIZE 20M REUSE <br />AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED<br />UNDO TABLESPACE &quot;UNDOTBS1&quot; DATAFILE '/opt/oracle/oradata/eygle/undotbs01.dbf' <br />SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED<br />CHARACTER SET ZHS16GBK<br />NATIONAL CHARACTER SET AL16UTF16<br />LOGFILE GROUP 1 ('/opt/oracle/oradata/eygle/redo01.log') SIZE 10240K,<br />GROUP 2 ('/opt/oracle/oradata/eygle/redo02.log') SIZE 10240K,<br />GROUP 3 ('/opt/oracle/oradata/eygle/redo03.log') SIZE 10240K<br />USER SYS IDENTIFIED BY &quot;&amp;&amp;sysPassword&quot; USER SYSTEM IDENTIFIED BY &quot;&amp;&amp;systemPassword&quot;;</p>
            <p><font face="verdana, arial, helvetica" size="2"></font></p>
            </td>
        </tr>
    </tbody>
</table>
<p><font face="verdana, arial, helvetica" size="2">以下是使用SYSAUX表空间的数据库组件:<br /></font></p>
<table cellspacing="0" cellpadding="0" bgcolor="#999999">
    <tbody>
        <tr>
            <td class="style23" valign="top" width="568">
            <p>&nbsp;</p>
            <blockquote>
            <p>&nbsp;</p>
            <pre>使用SYSAUX表空间的组件				以前版本所在表空间
            Analytical Workspace Object Table	           SYSTEM
            Enterprise Manager Repository	               OEM_REPOSITORY
            LogMiner			                           SYSTEM
            Logical Standby		               	       SYSTEM
            OLAP API History Tables		               CWMLITE
            Oracle Data Mining		                   ODM
            Oracle Spatial		                       SYSTEM
            Oracle Streams		               	       SYSTEM
            Oracle Text			                       DRSYS
            Oracle Ultra Search		                   DRSYS
            Oracle interMedia ORDPLUGINS Components      SYSTEM
            Oracle interMedia ORDSYS Components          SYSTEM
            Oracle interMedia SI_INFORMTN_SCHEMA Components	SYSTEM
            Server Manageability Components	           New in Oracle Database 10g
            Statspack Repository		                   User-defined
            Unified Job Scheduler		                   New in Oracle Database 10g
            Workspace Manager	                           SYSTEM
            </pre>
            <p>&nbsp;</p>
            <p><font face="verdana, arial, helvetica" size="2"><br /></font></p>
            </blockquote></td>
        </tr>
    </tbody>
</table>
<p><font face="verdana, arial, helvetica" size="2">新增的V$SYSAUX_OCCUPANTS视图可以用来查看这些信息</font></p>
<table cellspacing="0" cellpadding="0" bgcolor="#999999">
    <tbody>
        <tr>
            <td class="style23" valign="top" width="568">
            <p>&nbsp;</p>
            <blockquote>
            <p>&nbsp;</p>
            <pre>SQL&gt; select OCCUPANT_NAME,OCCUPANT_DESC,SCHEMA_NAME
            2  from V$SYSAUX_OCCUPANTS;
            OCCUPANT_NAME OCCUPANT_DESC                                                    SCHEMA_NAME
            ------------- ---------------------------------------------------------------- ------------------
            LOGMNR        LogMiner                                                         SYSTEM
            LOGSTDBY      Logical Standby                                                  SYSTEM
            STREAMS       Oracle Streams                                                   SYS
            AO            Analytical Workspace Object Table                                SYS
            XSOQHIST      OLAP API History Tables                                          SYS
            SM/AWR        Server Manageability - Automatic Workload Repository             SYS
            SM/ADVISOR    Server Manageability - Advisor Framework                         SYS
            SM/OPTSTAT    Server Manageability - Optimizer Statistics History              SYS
            SM/OTHER      Server Manageability - Other Components                          SYS
            STATSPACK     Statspack Repository                                             PERFSTAT
            ODM           Oracle Data Mining                                               DMSYS
            OCCUPANT_NAME OCCUPANT_DESC                                                    SCHEMA_NAME
            ------------- ---------------------------------------------------------------- ------------------
            SDO           Oracle Spatial                                                   MDSYS
            WM            Workspace Manager                                                WMSYS
            ORDIM         Oracle interMedia ORDSYS Components                              ORDSYS
            ORDIM/PLUGINS Oracle interMedia ORDPLUGINS Components                          ORDPLUGINS
            ORDIM/SQLMM   Oracle interMedia SI_INFORMTN_SCHEMA Components                  SI_INFORMTN_SCHEMA
            EM            Enterprise Manager Repository                                    SYSMAN
            TEXT          Oracle Text                                                      CTXSYS
            ULTRASEARCH   Oracle Ultra Search                                              WKSYS
            JOB_SCHEDULER Unified Job Scheduler                                            SYS
            20 rows selected.
            </pre>
            <p>&nbsp;</p>
            <p><font face="verdana, arial, helvetica" size="2"><br /></font></p>
            </blockquote></td>
        </tr>
    </tbody>
</table>
<p class="style23"><font face="verdana, arial, helvetica" size="2">SYAAUX表空间具有如下限制:<br /><br /></font></p>
<table cellspacing="0" cellpadding="0" bgcolor="#999999">
    <tbody>
        <tr>
            <td class="style22" valign="top" width="568">
            <p>&nbsp;</p>
            <blockquote>
            <p class="style26">1. 不能删除<br />SQL&gt; drop tablespace SYSAUX including contents and datafiles;<br />drop tablespace SYSAUX including contents and datafiles<br />*<br />ERROR at line 1:<br />ORA-13501: Cannot drop SYSAUX tablespace<br /></p>
            <p>&nbsp;</p>
            <p>2. 不能重命名<br />SQL&gt; alter tablespace SYSAUX rename to OPT_TBS;<br />alter tablespace SYSAUX rename to OPT_TBS<br />*<br />ERROR at line 1:<br />ORA-13502: Cannot rename SYSAUX tablespace<br /></p>
            <p>&nbsp;</p>
            <p>3. 不能置为read only<br />SQL&gt; alter tablesapce SYSAUX read only; <br />alter tablesapce SYSAUX read only<br />*<br />ERROR at line 1:<br />ORA-00940: invalid ALTER command</p>
            <p>&nbsp;</p>
            </blockquote>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p><font face="verdana, arial, helvetica" size="2">如果希望转移这些系统对象的表空间，可以使用相应得系统包实现:<br /></font></p>
<table cellspacing="0" cellpadding="0" bgcolor="#999999">
    <tbody>
        <tr>
            <td class="style22" valign="top" width="702"><blockquote>
            <p>&nbsp;</p>
            <pre>SQL&gt; set linesize 120
            SQL&gt; col schema_name for a18
            SQL&gt; col occupant_name for a13
            SQL&gt; col move_procedure for a32
            SQL&gt; SELECT    occupant_name, schema_name, move_procedure,space_usage_kbytes
            2  FROM      v$sysaux_occupants
            3  ORDER BY  1
            4  /
            OCCUPANT_NAME SCHEMA_NAME        MOVE_PROCEDURE                   SPACE_USAGE_KBYTES
            ------------- ------------------ -------------------------------- ------------------
            AO            SYS                DBMS_AW.MOVE_AWMETA                             768
            EM            SYSMAN             emd_maintenance.move_em_tblspc                    0
            JOB_SCHEDULER SYS                                                                256
            LOGMNR        SYSTEM             SYS.DBMS_LOGMNR_D.SET_TABLESPACE               7488------------注意这里
            LOGSTDBY      SYSTEM             SYS.DBMS_LOGSTDBY.SET_TABLESPACE                  0
            ODM           DMSYS              MOVE_ODM                                          0
            ORDIM         ORDSYS                                                               0
            ORDIM/PLUGINS ORDPLUGINS                                                           0
            ORDIM/SQLMM   SI_INFORMTN_SCHEMA                                                   0
            SDO           MDSYS              MDSYS.MOVE_SDO                                    0
            SM/ADVISOR    SYS                                                               5760
            OCCUPANT_NAME SCHEMA_NAME        MOVE_PROCEDURE                   SPACE_USAGE_KBYTES
            ------------- ------------------ -------------------------------- ------------------
            SM/AWR        SYS                                                              62848
            SM/OPTSTAT    SYS                                                               9344
            SM/OTHER      SYS                                                               2816
            STATSPACK     PERFSTAT                                                             0
            STREAMS       SYS                                                                192
            TEXT          CTXSYS             DRI_MOVE_CTXSYS                                   0
            ULTRASEARCH   WKSYS              MOVE_WK                                           0
            WM            WMSYS              DBMS_WM.move_proc                              6656
            XSOQHIST      SYS                DBMS_XSOQ.OlapiMoveProc                         768
            20 rows selected.
            SQL&gt; exec SYS.DBMS_LOGMNR_D.SET_TABLESPACE('USERS');
            PL/SQL procedure successfully completed.
            SQL&gt; set linesize 120
            SQL&gt; col schema_name for a18
            SQL&gt; col occupant_name for a13
            SQL&gt; col move_procedure for a32
            SQL&gt; SELECT    occupant_name, schema_name, move_procedure,space_usage_kbytes
            2  FROM      v$sysaux_occupants
            3  ORDER BY  1
            4  /
            OCCUPANT_NAME SCHEMA_NAME        MOVE_PROCEDURE                   SPACE_USAGE_KBYTES
            ------------- ------------------ -------------------------------- ------------------
            AO            SYS                DBMS_AW.MOVE_AWMETA                             768
            EM            SYSMAN             emd_maintenance.move_em_tblspc                    0
            JOB_SCHEDULER SYS                                                                256
            LOGMNR        SYSTEM             SYS.DBMS_LOGMNR_D.SET_TABLESPACE                  0------------注意这里
            LOGSTDBY      SYSTEM             SYS.DBMS_LOGSTDBY.SET_TABLESPACE                  0
            ODM           DMSYS              MOVE_ODM                                          0
            ORDIM         ORDSYS                                                               0
            ORDIM/PLUGINS ORDPLUGINS                                                           0
            ORDIM/SQLMM   SI_INFORMTN_SCHEMA                                                   0
            SDO           MDSYS              MDSYS.MOVE_SDO                                    0
            SM/ADVISOR    SYS                                                               5760
            OCCUPANT_NAME SCHEMA_NAME        MOVE_PROCEDURE                   SPACE_USAGE_KBYTES
            ------------- ------------------ -------------------------------- ------------------
            SM/AWR        SYS                                                              62848
            SM/OPTSTAT    SYS                                                               9344
            SM/OTHER      SYS                                                               2816
            STATSPACK     PERFSTAT                                                             0
            STREAMS       SYS                                                                192
            TEXT          CTXSYS             DRI_MOVE_CTXSYS                                   0
            ULTRASEARCH   WKSYS              MOVE_WK                                           0
            WM            WMSYS              DBMS_WM.move_proc                              6656
            XSOQHIST      SYS                DBMS_XSOQ.OlapiMoveProc                         768
            20 rows selected.</pre>
            </blockquote>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p class="style23"><font face="verdana, arial, helvetica" size="2">复位:<br /><br /><br /></font></p>
<table cellspacing="0" cellpadding="0" bgcolor="#999999">
    <tbody>
        <tr>
            <td class="style23" valign="top" width="699"><blockquote>
            <p>&nbsp;</p>
            <pre>SQL&gt; exec SYS.DBMS_LOGMNR_D.SET_TABLESPACE('SYSAUX');
            PL/SQL procedure successfully completed.
            SQL&gt; set linesize 120
            SQL&gt; col schema_name for a18
            SQL&gt; col occupant_name for a13
            SQL&gt; col move_procedure for a32
            SQL&gt; SELECT    occupant_name, schema_name, move_procedure,space_usage_kbytes
            2  FROM      v$sysaux_occupants
            3  ORDER BY  1
            4  /
            OCCUPANT_NAME SCHEMA_NAME        MOVE_PROCEDURE                   SPACE_USAGE_KBYTES
            ------------- ------------------ -------------------------------- ------------------
            AO            SYS                DBMS_AW.MOVE_AWMETA                             768
            EM            SYSMAN             emd_maintenance.move_em_tblspc                    0
            JOB_SCHEDULER SYS                                                                256
            LOGMNR        SYSTEM             SYS.DBMS_LOGMNR_D.SET_TABLESPACE               7488
            LOGSTDBY      SYSTEM             SYS.DBMS_LOGSTDBY.SET_TABLESPACE                  0
            ODM           DMSYS              MOVE_ODM                                          0
            ORDIM         ORDSYS                                                               0
            ORDIM/PLUGINS ORDPLUGINS                                                           0
            ORDIM/SQLMM   SI_INFORMTN_SCHEMA                                                   0
            SDO           MDSYS              MDSYS.MOVE_SDO                                    0
            SM/ADVISOR    SYS                                                               5760
            OCCUPANT_NAME SCHEMA_NAME        MOVE_PROCEDURE                   SPACE_USAGE_KBYTES
            ------------- ------------------ -------------------------------- ------------------
            SM/AWR        SYS                                                              62848
            SM/OPTSTAT    SYS                                                               9344
            SM/OTHER      SYS                                                               2816
            STATSPACK     PERFSTAT                                                             0
            STREAMS       SYS                                                                192
            TEXT          CTXSYS             DRI_MOVE_CTXSYS                                   0
            ULTRASEARCH   WKSYS              MOVE_WK                                           0
            WM            WMSYS              DBMS_WM.move_proc                              6656
            XSOQHIST      SYS                DBMS_XSOQ.OlapiMoveProc                         768
            20 rows selected.
            </pre>
            <p><font face="verdana, arial, helvetica" size="2"><br /></font></p>
            </blockquote>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p><font face="verdana, arial, helvetica" size="2">结论:<br /><br />这是一个管理及规划上的改进,进一步独立SYSTEM表空间,保证其存储及性能.<br /><br />我们在做数据库规划时大可借鉴Oracle这个改进,分离重要数据及次要数据，分离稳定结构及频繁变化结构，尽量减少对重要数据及结构的影响。</font></p>
<p>&nbsp;</p>]]></description>
<link>http://www.eygle.com/archives/2006/05/oracle10g_sysaux_tablespace.html</link>
<guid>http://www.eygle.com/archives/2006/05/oracle10g_sysaux_tablespace.html</guid>
<category>Oracle10g</category>
<pubDate>Tue, 16 May 2006 09:23:02 +0800</pubDate>
</item>
<item>
<title>Oracle10gR2自动检查点调整的新特性</title>
<description><![CDATA[<p>从Oracle10gR2开始，数据库可以实现自动调整的检查点.</p>
<p>使用自动调整的检查点，Oracle数据库可以利用系统的低I/O负载时段写出内存中的脏数据，从而提高数据库的效率。</p>
<p>因此，即使数据库管理员设置了不合理的检查点相关参数,Oracle仍然能够通过自动调整将数据库的Crash Recovery时间控制在合理的范围之内。</p>
<p>当FAST_START_MTTR_TARGET参数未设置时，自动检查点调整生效。<br />通常，如果我们必须严格控制实例或节点恢复时间，那么我们可以设置FAST_START_MTTR_TARGET为期望时间值；如果恢复时间不需要严格控制，那么我们可以不设置FAST_START_MTTR_TARGET参数，从而启用Oracle10g的自动检查点调整特性。</p>
<p>当取消FAST_START_MTTR_TARGET参数设置之后：</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; show parameter fast_start_mttr</p>
            <p>NAME&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; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br />------------------------------------ ----------- ------------------------fast_start_mttr_target&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 0</p>
            </td>
        </tr>
    </tbody>
</table>
<p>在启动数据库的时候，我们可以从alert文件中看到如下信息：</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">Wed Jan 11 16:28:12 <strong style="COLOR: black; BACKGROUND-COLOR: #ff66ff">2006</strong><br />MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set</td>
        </tr>
    </tbody>
</table>
<p>检查v$instance_recovery视图，我们可以发现Oracle10g中的改变：</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>SQL&gt; select RECOVERY_ESTIMATED_IOS REIOS,TARGET_MTTR TMTTR,<br />&nbsp; 2&nbsp; ESTIMATED_MTTR EMTTR,WRITES_MTTR WMTTR,WRITES_OTHER_SETTINGS WOSET,<br />&nbsp; 3&nbsp; CKPT_BLOCK_WRITES CKPTBW,WRITES_AUTOTUNE WAUTO,WRITES_FULL_THREAD_CKPT WFTCKPT<br />&nbsp; 4&nbsp; from v$instance_recovery;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; REIOS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TMTTR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EMTTR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WMTTR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WOSET&nbsp;&nbsp;&nbsp;&nbsp; CKPTBW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WAUTO&nbsp;&nbsp;&nbsp; WFTCKPT<br />---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------<br />&nbsp;&nbsp;&nbsp;&nbsp; 49407&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 68&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 3649819&nbsp;&nbsp;&nbsp; 3506125&nbsp;&nbsp;&nbsp; 3130700</p>
            </td>
        </tr>
    </tbody>
</table>
<p>在以上视图中，WRITES_AUTOTUNE字段值就是指由于自动调整检查点执行的写出次数，<br />而CKPT_BLOCK_WRITES指的则是由于检查点写出的Block的数量。</p>
<p>&nbsp;</p>]]></description>
<link>http://www.eygle.com/archives/2006/04/oracle10gr2_auto_tune_checkpint.html</link>
<guid>http://www.eygle.com/archives/2006/04/oracle10gr2_auto_tune_checkpint.html</guid>
<category>Oracle10g</category>
<pubDate>Fri, 28 Apr 2006 10:16:51 +0800</pubDate>
</item>
<item>
<title>Oracle9i到10g,空闲等待事件的变化</title>
<description><![CDATA[<p>从Statspack的创建脚本中,我们可以看到从Oracle9i到Oracle10g,空闲等待事件的改变.</p>
<p>空闲等待事件在Statspack中,记录在系统表STATS$IDLE_EVENT中.检查其创建脚本我们可以找到这些变化.这个脚本位于$ORACLE_HOME/rdbms/admin/spctab.sql </p>
<p>在Oracle9iR2中,空闲等待有:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>/* ------------------------------------------------------------------------- */</p>
            <p>create table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STATS$IDLE_EVENT<br />(event&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar2(64)&nbsp;&nbsp;&nbsp;&nbsp; not null<br />,constraint STATS$IDLE_EVENT_PK primary key (event)<br />&nbsp;using index tablespace &amp;&amp;tablespace_name<br />&nbsp;&nbsp; storage (initial 100k next 100k pctincrease 0)<br />) tablespace &amp;&amp;tablespace_name<br />&nbsp; storage (initial 100k next 100k pctincrease 0) pctfree 5 pctused 40;</p>
            <p>insert into STATS$IDLE_EVENT (event) values ('smon timer');<br />insert into STATS$IDLE_EVENT (event) values ('pmon timer');<br />insert into STATS$IDLE_EVENT (event) values ('rdbms ipc message');<br />insert into STATS$IDLE_EVENT (event) values ('Null event');<br />insert into STATS$IDLE_EVENT (event) values ('parallel query dequeue');<br />insert into STATS$IDLE_EVENT (event) values ('pipe get');<br />insert into STATS$IDLE_EVENT (event) values ('client message');<br />insert into STATS$IDLE_EVENT (event) values ('SQL*Net message to client');<br />insert into STATS$IDLE_EVENT (event) values ('SQL*Net message from client');<br />insert into STATS$IDLE_EVENT (event) values ('SQL*Net more data from client');<br />insert into STATS$IDLE_EVENT (event) values ('dispatcher timer');<br />insert into STATS$IDLE_EVENT (event) values ('virtual circuit status');<br />insert into STATS$IDLE_EVENT (event) values ('lock manager wait for remote message');<br />insert into STATS$IDLE_EVENT (event) values ('PX Idle Wait');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deq: Execution Msg');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deq: Table Q Normal');<br />insert into STATS$IDLE_EVENT (event) values ('wakeup time manager');<br />insert into STATS$IDLE_EVENT (event) values ('slave wait');<br />insert into STATS$IDLE_EVENT (event) values ('i/o slave wait');<br />insert into STATS$IDLE_EVENT (event) values ('jobq slave wait');<br />insert into STATS$IDLE_EVENT (event) values ('null event');<br />insert into STATS$IDLE_EVENT (event) values ('gcs remote message');<br />insert into STATS$IDLE_EVENT (event) values ('gcs for action');<br />insert into STATS$IDLE_EVENT (event) values ('ges remote message');<br />insert into STATS$IDLE_EVENT (event) values ('queue messages');<br />commit;</p>
            <p>create public synonym&nbsp; STATS$IDLE_EVENT&nbsp;&nbsp; for STATS$IDLE_EVENT;</p>
            <p>/* ------------------------------------------------------------------------- */</p>
            </td>
        </tr>
    </tbody>
</table>
<p>在Oracle10gR2中,这个数字大大增加:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <p>/* ------------------------------------------------------------------------- */</p>
            <p>create table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STATS$IDLE_EVENT<br />(event&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar2(64)&nbsp;&nbsp;&nbsp;&nbsp; not null<br />,constraint STATS$IDLE_EVENT_PK primary key (event)<br />&nbsp;using index tablespace &amp;&amp;tablespace_name<br />&nbsp;&nbsp; storage (initial 100k next 100k pctincrease 0)<br />) tablespace &amp;&amp;tablespace_name<br />&nbsp; storage (initial 100k next 100k pctincrease 0) pctfree 5 pctused 40;</p>
            <p>insert into STATS$IDLE_EVENT (event) values ('smon timer');<br />insert into STATS$IDLE_EVENT (event) values ('pmon timer');<br />insert into STATS$IDLE_EVENT (event) values ('rdbms ipc message');<br />insert into STATS$IDLE_EVENT (event) values ('Null event');<br />insert into STATS$IDLE_EVENT (event) values ('parallel query dequeue');<br />insert into STATS$IDLE_EVENT (event) values ('pipe get');<br />insert into STATS$IDLE_EVENT (event) values ('client message');<br />insert into STATS$IDLE_EVENT (event) values ('SQL*Net message to client');<br />insert into STATS$IDLE_EVENT (event) values ('SQL*Net message from client');<br />insert into STATS$IDLE_EVENT (event) values ('SQL*Net more data from client');<br />insert into STATS$IDLE_EVENT (event) values ('dispatcher timer');<br />insert into STATS$IDLE_EVENT (event) values ('virtual circuit status');<br />insert into STATS$IDLE_EVENT (event) values ('lock manager wait for remote message');<br />insert into STATS$IDLE_EVENT (event) values ('PX Idle Wait');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deq: Execution Msg');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deq: Table Q Normal');<br />insert into STATS$IDLE_EVENT (event) values ('wakeup time manager');<br />insert into STATS$IDLE_EVENT (event) values ('slave wait');<br />insert into STATS$IDLE_EVENT (event) values ('i/o slave wait');<br />insert into STATS$IDLE_EVENT (event) values ('jobq slave wait');<br />insert into STATS$IDLE_EVENT (event) values ('null event');<br />insert into STATS$IDLE_EVENT (event) values ('gcs remote message');<br />insert into STATS$IDLE_EVENT (event) values ('gcs for action');<br />insert into STATS$IDLE_EVENT (event) values ('ges remote message');<br />insert into STATS$IDLE_EVENT (event) values ('queue messages');<br />insert into STATS$IDLE_EVENT (event) values ('wait for unread message on broadcast channel');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deq Credit: send blkd');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deq: Execute Reply');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deq: Signal ACK');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deque wait');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deq Credit: need buffer');<br />insert into STATS$IDLE_EVENT (event) values ('STREAMS apply coord waiting for slave message'); <br />insert into STATS$IDLE_EVENT (event) values ('STREAMS apply slave waiting for coord message'); <br />insert into STATS$IDLE_EVENT (event) values ('Queue Monitor Wait'); <br />insert into STATS$IDLE_EVENT (event) values ('Queue Monitor Slave Wait'); <br />insert into STATS$IDLE_EVENT (event) values ('wakeup event for builder'); <br />insert into STATS$IDLE_EVENT (event) values ('wakeup event for preparer'); <br />insert into STATS$IDLE_EVENT (event) values ('wakeup event for reader'); <br />insert into STATS$IDLE_EVENT (event) values ('wait for activate message'); <br />insert into STATS$IDLE_EVENT (event) values ('PX Deq: Par Recov Execute');<br />insert into STATS$IDLE_EVENT (event) values ('PX Deq: Table Q Sample');<br />insert into STATS$IDLE_EVENT (event) values ('STREAMS apply slave idle wait');<br />insert into STATS$IDLE_EVENT (event) values ('STREAMS capture process filter callback wait for ruleset');<br />insert into STATS$IDLE_EVENT (event) values ('STREAMS fetch slave waiting for txns');<br />insert into STATS$IDLE_EVENT (event) values ('STREAMS waiting for subscribers to catch up');<br />insert into STATS$IDLE_EVENT (event) values ('Queue Monitor Shutdown Wait');<br />insert into STATS$IDLE_EVENT (event) values ('AQ Proxy Cleanup Wait');<br />insert into STATS$IDLE_EVENT (event) values ('knlqdeq');<br />insert into STATS$IDLE_EVENT (event) values ('class slave wait');<br />insert into STATS$IDLE_EVENT (event) values ('master wait');<br />insert into STATS$IDLE_EVENT (event) values ('DIAG idle wait');<br />insert into STATS$IDLE_EVENT (event) values ('ASM background timer');<br />insert into STATS$IDLE_EVENT (event) values ('KSV master wait');<br />insert into STATS$IDLE_EVENT (event) values ('EMON idle wait');<br />insert into STATS$IDLE_EVENT (event) values ('Streams AQ: RAC qmn coordinator idle wait');<br />insert into STATS$IDLE_EVENT (event) values ('Streams AQ: qmn coordinator idle wait');<br />insert into STATS$IDLE_EVENT (event) values ('Streams AQ: qmn slave idle wait');<br />insert into STATS$IDLE_EVENT (event) values ('Streams AQ: waiting for time management or cleanup tasks');<br />insert into STATS$IDLE_EVENT (event) values ('Streams AQ: waiting for messages in the queue');<br />insert into STATS$IDLE_EVENT (event) values ('Streams fetch slave: waiting for txns');<br />insert into STATS$IDLE_EVENT (event) values ('Streams AQ: deallocate messages from Streams Pool');<br />insert into STATS$IDLE_EVENT (event) values ('Streams AQ: delete acknowledged messages');<br />insert into STATS$IDLE_EVENT (event) values ('LNS ASYNC archive log');<br />insert into STATS$IDLE_EVENT (event) values ('LNS ASYNC dest activation');<br />insert into STATS$IDLE_EVENT (event) values ('LNS ASYNC end of log');<br />insert into STATS$IDLE_EVENT (event) values ('LogMiner: client waiting for transaction');<br />insert into STATS$IDLE_EVENT (event) values ('LogMiner: slave waiting for activate message');<br />insert into STATS$IDLE_EVENT (event) values ('LogMiner: wakeup event for builder');<br />insert into STATS$IDLE_EVENT (event) values ('LogMiner: wakeup event for preparer');<br />insert into STATS$IDLE_EVENT (event) values ('LogMiner: wakeup event for reader');</p>
            <p>commit;</p>
            <p>create public synonym&nbsp; STATS$IDLE_EVENT&nbsp;&nbsp; for STATS$IDLE_EVENT;</p>
            <p>/* ------------------------------------------------------------------------- */</p>
            </td>
        </tr>
    </tbody>
</table>
<p>如果你注意到的话,很多等待事件在9i中属于空闲等待,但是未被列入,有的是为了向后兼容,有的则是因为Bug.</p>
<p>列在此次,供参考备忘.</p>
<p>&nbsp;</p>]]></description>
<link>http://www.eygle.com/archives/2006/04/oracle9i_10g_idle_wait.html</link>
<guid>http://www.eygle.com/archives/2006/04/oracle9i_10g_idle_wait.html</guid>
<category>Oracle10g</category>
<pubDate>Sat, 15 Apr 2006 17:00:20 +0800</pubDate>
</item>
<item>
<title>Oracle10g与各版本的连通性</title>
<description><![CDATA[<p>昨天有朋友问到Oracle10g和Oracle8i的连通性问题,一时记不清楚,同事作了一些测试.得到的结论是:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>Oracle8.1.5可以连接Oracle10g<br />Oracle8.1.7也可以连接Oracle10g<br />Oracle10gR2可以连接Oracle8.1.7,但是不能连接Oracle8.1.5<br />Oracle10g和Oracle9i各版本可以互连.</p>
</blockquote>
<p dir="ltr">简要记录于此:</p>
<br />1.Oracle8.1.5连接Oracle10gR1<br />
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>oracle:/oracle/oracle8/network/admin&gt;sqlplus /nolog
            SQL*Plus: Release 8.1.5.0.0 - Production on Wed Apr 5 17:21:30 2006
            (c) Copyright 1999 oracle Corporation.  All rights reserved.
            SQL&gt; conn mlqin/*****@mmsdb
            Connected.
            SQL&gt; select * from v$version
            2  /
            BANNER
            ----------------------------------------------------------------
            oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bi
            PL/SQL Release 10.1.0.3.0 - Production
            CORE    10.1.0.3.0      Production
            TNS for Solaris: Version 10.1.0.3.0 - Production
            NLSRTL Version 10.1.0.3.0 - Production
            SQL&gt; exit
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />2.Oracle8.1.7连接Oracle10gR2<br />
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>$ sqlplus /nolog
            SQL*Plus: Release 8.1.7.0.0 - Production on Wed Apr 5 16:58:05 2006
            (c) Copyright 2000 oracle Corporation.  All rights reserved.
            SQL&gt; conn mlqin/*****@hsstat
            Connected.
            SQL&gt; select * from v$version;
            BANNER
            ----------------------------------------------------------------
            oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
            PL/SQL Release 10.2.0.1.0 - Production
            CORE    10.2.0.1.0      Production
            TNS for Solaris: Version 10.2.0.1.0 - Production
            NLSRTL Version 10.2.0.1.0 - Production
            SQL&gt; exit
            Disconnected from oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
            With the Partitioning, OLAP and Data Mining options</pre>
            </td>
        </tr>
    </tbody>
</table>
<br />3.Oracle10gR2连接Oracle8.1.7.4<br />
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>$ sqlplus /nolog
            SQL*Plus: Release 10.2.0.1.0 - Production on Wed Apr 5 17:19:01 2006
            Copyright (c) 1982, 2005, oracle.  All rights reserved.
            SQL&gt; conn mlqin/*****@test8
            Connected.
            SQL&gt; select * from v$version;
            BANNER
            ----------------------------------------------------------------
            Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
            PL/SQL Release 8.1.7.4.0 - Production
            CORE    8.1.7.0.0       Production
            TNS for Solaris: Version 8.1.7.4.0 - Production
            NLSRTL Version 3.4.1.0.0 - Production
            SQL&gt; </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />4.Oracle10gR2不能连接Oracle8.1.5<br />
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>$ sqlplus /nolog
            SQL*Plus: Release 10.2.0.1.0 - Production on Wed Apr 5 17:09:38 2006
            Copyright (c) 1982, 2005, oracle.  All rights reserved.
            SQL&gt; conn mlqin/****@199
            ERROR:
            ORA-03134: Connections to this server version are no longer supported.
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />]]></description>
<link>http://www.eygle.com/archives/2006/04/oracle10g_to_oracle8i.html</link>
<guid>http://www.eygle.com/archives/2006/04/oracle10g_to_oracle8i.html</guid>
<category>Oracle10g</category>
<pubDate>Thu, 06 Apr 2006 16:35:26 +0800</pubDate>
</item>
<item>
<title>Oracle10g:v$session_wait_history视图</title>
<description><![CDATA[为了更有效的保留Session信息，Oracle10g新增加了一个v$session_wait_history视图<br />该视图用以记录活动Session的最近10次等待事件。<br /><br />
<blockquote><P>SQL&gt; select event,p1text,p1,p2text,p2,p3text,p3,wait_time<BR>&nbsp; 2&nbsp; from v$session_wait_history where sid=120;</P>
<P>EVENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; P1TEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; P1 P2TEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; P2 P3TEXT&nbsp;&nbsp; P3&nbsp; WAIT_TIME<BR>---------------------------- -------- -------- --------------- ---------- -------- -- ----------<BR>db file sequential read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14 block#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 97456 blocks&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<BR>row cache lock&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cache id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11 mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 request&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 49<BR>row cache lock&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cache id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11 mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 request&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<BR>db file sequential read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10 block#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 260171 blocks&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<BR>db file sequential read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14 block#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 570536 blocks&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<BR>db file sequential read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14 block#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6363 blocks&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12<BR>db file sequential read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14 block#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 35285 blocks&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9<BR>db file sequential read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14 block#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40674 blocks&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9<BR>db file sequential read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14 block#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 69631 blocks&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<BR>db file sequential read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14 block#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 82498 blocks&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3</P>
<P>10 rows selected</P></blockquote>
<p><br />通过这个视图，Oracle将V$SESSION_WAIT延伸，从而可以获取更多的相关信息辅助数据库问题诊断。<br />这是Oracle10g中在<a href="http://www.eygle.com/archives/2005/03/oracle10gaeasha.html">ASH</a>之外对于等待事件诊断的一个有益小改进。<br /></p>
<p>&nbsp;</p>]]></description>
<link>http://www.eygle.com/archives/2006/04/10g_session_wait_history.html</link>
<guid>http://www.eygle.com/archives/2006/04/10g_session_wait_history.html</guid>
<category>Oracle10g</category>
<pubDate>Wed, 05 Apr 2006 16:33:44 +0800</pubDate>
</item>
<item>
<title>Oracle10g EM乱码之快速解决</title>
<description><![CDATA[<p>一直没怎么用10g的EM工具,今天打开来看看,发现也有相传已久的<a href="http://www.google.com/search?sourceid=navclient&amp;hl=zh-CN&amp;ie=UTF-8&amp;rls=GGLD,GGLD:2005-22,GGLD:zh-CN&amp;q=10g+em+%E4%B9%B1%E7%A0%81+%E8%A7%A3%E5%86%B3">乱码</a>问题.网上也流传着N种解决方案,仔细看一下,其实这个问题很好解决.</p>
<p>如果安装时,我们系统环境变量设置的是中文环境,那么就不会有这个问题.这个问题根本原因在于安装时,JDK/JRE字符集的自动选择.</p>
<p>在 <strong>$ORACLE_HOME/jdk/jre/lib</strong> 和 <strong>$ORACLE_HOME/jre/<em>1.4.2</em>/lib/</strong> 目录下都有多种字符集字体配置文件:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>[oracle@danaly ~]$ cd $ORACLE_HOME/jdk/jre/lib<br />[oracle@danaly lib]$ ls font*zh_CN*<br />font.properties.zh_CN.Redhat&nbsp; font.properties.zh_CN.Redhat2.1&nbsp; <br />font.properties.zh_CN.Sun&nbsp; font.properties.zh_CN_UTF8.Sun</pre>
            <pre>[oracle@danaly lib]$ cd $ORACLE_HOME/jre/1.4.2/lib/<br />[oracle@danaly lib]$ ls font*zh_CN*<br />font.properties.zh_CN.Redhat&nbsp; font.properties.zh_CN.Redhat2.1&nbsp; <br />font.properties.zh_CN.Sun&nbsp; font.properties.zh_CN_UTF8.Sun&nbsp;</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>我们只要用合适的中文字符集文件替换缺省文件即可,我选择使用font.properties.zh_CN.Redhat来替换缺省字体定义文件:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>[oracle@danaly lib]$ cp font.properties.zh_CN.Redhat font.properties&nbsp;</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>替换之后需要清理一下Cache,重启EM即可.</p>
<p>Cache路径通常位于:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs&nbsp;</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>清除所有gif文件即可.然后重新启动EM:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>[oracle@danaly zhs]$ emctl stop dbconsole<br />TZ set to PRC<br />oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0&nbsp; <br />Copyright (c) 1996, 2005 oracle Corporation.&nbsp; All rights reserved.<br />http://danaly.hurrray.com.cn:1158/em/console/aboutApplication<br />Stopping oracle Enterprise Manager 10g Database Control ... <br />&nbsp;...&nbsp; Stopped. <br />[oracle@danaly zhs]$ emctl start dbconsole<br />TZ set to PRC<br />oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0&nbsp; <br />Copyright (c) 1996, 2005 oracle Corporation.&nbsp; All rights reserved.<br />http://danaly.hurrray.com.cn:1158/em/console/aboutApplication<br />Starting oracle Enterprise Manager 10g Database Control .............. started. <br />------------------------------------------------------------------<br />Logs are generated in directory <br />/opt/oracle/product/10.2.0/danaly.hurrray.com.cn_danaly/sysman/log &nbsp;</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>现在登陆Web页面,EM显示就可以正常显示中文了.</p>
<p>&nbsp;</p>
]]></description>
<link>http://www.eygle.com/archives/2006/03/oracle10g_em_font_change.html</link>
<guid>http://www.eygle.com/archives/2006/03/oracle10g_em_font_change.html</guid>
<category>Oracle10g</category>
<pubDate>Thu, 23 Mar 2006 15:19:09 +0800</pubDate>
</item>
<item>
<title>Oracle10g ASM Auto IO Rebalance新特性</title>
<description><![CDATA[<p>ASM ( Automatic Storage Management ) 的一个重要特性是可以进行在线磁盘重配置及动态均衡。</p>
<p>当我们向已有磁盘组中增加磁盘后，Oracle会自动进行IO均衡,为了完成这个任务，Oracle引入了一个新的后台进程：<br /></p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>[oracle@danaly ~]$ ps -ef|grep ora_rbal*<br />oracle&nbsp;&nbsp;&nbsp; 3815&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 0 Jan23 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:01 <strong>ora_rbal_danaly</strong><br />oracle&nbsp;&nbsp; 31601 23407&nbsp; 0 14:33 pts/2&nbsp;&nbsp;&nbsp; 00:00:00 grep ora_rbal*&nbsp;</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>这个进程用来进行IO均衡。</p>
<p>IO调整是自动进行的，并且这个平衡速度是可以控制的。</p>
<p>Oracle通过一个新增的参数:asm_power_limit 来控制速度。<br />该参数取值范围为1~11,参数值越大平衡速度越快。</p>
<p>Oracle文档对该参数解释为:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>ASM_POWER_LIMIT specifies the maximum power on an Automatic Storage Management instance for disk rebalancing. The higher the limit, the faster rebalancing will complete. Lower values will take longer, but consume fewer processing and I/O resources.</p>
<p>If the POWER clause of a rebalance operation is not specified, then the default power will be the value of ASM_POWER_LIMIT.<br /></p>
</blockquote>
<p>&nbsp;该参数缺省值为1:</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>SQL&gt; show parameter power</pre>
            <pre>NAME&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; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br />------------------------------------ ---------------------- ----------------<br />asm_power_limit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />&nbsp;</pre>
            </td>
        </tr>
    </tbody>
</table>]]></description>
<link>http://www.eygle.com/archives/2006/02/oracle10g_asm_autoio_rebalance.html</link>
<guid>http://www.eygle.com/archives/2006/02/oracle10g_asm_autoio_rebalance.html</guid>
<category>Oracle10g</category>
<pubDate>Fri, 17 Feb 2006 14:04:16 +0800</pubDate>
</item>
<item>
<title>扩展Oracle10gR2 ASM磁盘空间</title>
<description><![CDATA[<p>一个Linux AD4上的Oracle10gR2数据库,由于空间不足,扩展了一下硬盘,增加100G做为数据库存储.</p>
<p>在ASM中,可以使用如下类似步骤将存储加入到ASM磁盘组中.</p>
<p>1.确认候选磁盘</p>
<p>此处为/dev/cciss/c0d2p2</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>[root@danaly /]# fdisk /dev/cciss/c0d2</pre>
            <pre>The number of cylinders for this disk is set to 52299.<br />There is nothing wrong with that, but this is larger than 1024,<br />and could in certain setups cause problems with:<br />1) software that runs at boot time (e.g., old versions of LILO)<br />2) booting and partitioning software from other OSs<br />&nbsp;&nbsp; (e.g., DOS FDISK, OS/2 FDISK)</pre>
            <pre>Command (m for help): p</pre>
            <pre>Disk /dev/cciss/c0d2: 218.5 GB, 218501038080 bytes<br />255 heads, 32 sectors/track, 52299 cylinders<br />Units = cylinders of 8160 * 512 = 4177920 bytes</pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Device Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks&nbsp;&nbsp; Id&nbsp; System<br />/dev/cciss/c0d2p1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26150&nbsp;&nbsp; 106691984&nbsp;&nbsp; 83&nbsp; Linux<br />/dev/cciss/c0d2p2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26151&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 52299&nbsp;&nbsp; 106687920&nbsp;&nbsp; 83&nbsp; Linux</pre>
            <pre>Command (m for help): q&nbsp;</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>2.使用ASM创建磁盘卷</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>[root@danaly /]# /etc/init.d/oracleasm createdisk VOL6 /dev/cciss/c0d2p2<br />Marking disk &quot;/dev/cciss/c0d2p2&quot; as an ASM disk: [&nbsp; OK&nbsp; ]<br />[root@danaly /]# /etc/init.d/oracleasm listdisks<br />VOL1<br />VOL2<br />VOL3<br />VOL4<br />VOL5<br />VOL6&nbsp;</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>3.在ASM实例中加入磁盘</p>
<table>
    <tbody>
        <tr>
            <td width="500" bgcolor="#999999">
            <pre>SQL&gt; select name,TOTAL_MB,FREE_MB from v$asm_diskgroup;</pre>
            <pre>NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TOTAL_MB&nbsp;&nbsp;&nbsp; FREE_MB<br />---------- ---------- ----------<br />ORADG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 69459&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17384</pre>
            <pre>SQL&gt; alter diskgroup ORADG add disk 'ORCL:VOL6' rebalance power 11;</pre>
            <pre>Diskgroup altered.</pre>
            <pre>SQL&gt; select group_number,disk_number,mode_status,name from v$asm_disk;</pre>
            <pre>GROUP_NUMBER DISK_NUMBER MODE_STATUS&nbsp;&nbsp;&nbsp; NAME<br />------------ ----------- -------------- ----------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 ONLINE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 ONLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VOL1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 ONLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VOL2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 ONLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VOL3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 ONLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VOL4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 ONLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VOL6</pre>
            <pre>6 rows selected.</pre>
            <pre>SQL&gt; select name,TOTAL_MB,FREE_MB from v$asm_diskgroup;</pre>
            <pre>NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TOTAL_MB&nbsp;&nbsp;&nbsp; FREE_MB<br />---------- ---------- ----------<br />ORADG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 173646&nbsp;&nbsp;&nbsp;&nbsp; 121569&nbsp;</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>至此扩展完毕.</p>]]></description>
<link>http://www.eygle.com/archives/2006/02/oracle10gr2_asm_extend.html</link>
<guid>http://www.eygle.com/archives/2006/02/oracle10gr2_asm_extend.html</guid>
<category>Oracle10g</category>
<pubDate>Fri, 17 Feb 2006 10:39:07 +0800</pubDate>
</item>


</channel>
</rss>