﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-路人乙-文章分类-oracle</title><link>http://www.blogjava.net/yemen/category/37852.html</link><description>心有多大，舞台就有多大。</description><language>zh-cn</language><lastBuildDate>Sun, 15 Mar 2009 01:03:01 GMT</lastBuildDate><pubDate>Sun, 15 Mar 2009 01:03:01 GMT</pubDate><ttl>60</ttl><item><title>oracle 表空间[转]</title><link>http://www.blogjava.net/yemen/articles/259712.html</link><dc:creator>上帝也犯困</dc:creator><author>上帝也犯困</author><pubDate>Sat, 14 Mar 2009 05:43:00 GMT</pubDate><guid>http://www.blogjava.net/yemen/articles/259712.html</guid><wfw:comment>http://www.blogjava.net/yemen/comments/259712.html</wfw:comment><comments>http://www.blogjava.net/yemen/articles/259712.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yemen/comments/commentRss/259712.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yemen/services/trackbacks/259712.html</trackback:ping><description><![CDATA[<table style="border-collapse: collapse; word-wrap: break-word" cellspacing="0" cellpadding="0" width="760" align="center" bgcolor="#ffffff" border="0">
    <tbody>
        <tr>
            <td align="center" height="30"><font style="font-size: 14pt" color="#02368d"><strong>oracle 表空间</strong></font><br />
            </td>
        </tr>
        <tr>
            <td align="center" height="9"><img height="9" alt="" src="http://blog.chinaunix.net/templates/default/images/right_line.gif" width="502" border="0" /></td>
        </tr>
        <tr>
            <td align="center">
            <table style="border-collapse: collapse; word-wrap: break-word" cellspacing="0" cellpadding="0" width="740" border="0">
                <tbody>
                    <tr>
                        <td width="740">
                        <div id="art" style="margin: 15px" width="560">
                        <p><strong>（一）查看表空间的信息</strong></p>
                        <pre>1）从控制文件中得到的所有表空间的名称</pre>
                        <pre>SQL&gt; select * from V$tablespace;</pre>
                        <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TS# 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; INC BIG FLA ENC<br />
                        ---------- ------------------------------ --- --- --- ---<br />
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 SYSTEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; YES NO&nbsp; YES<br />
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 UNDOTBS1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; YES NO&nbsp; YES<br />
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 SYSAUX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; YES NO&nbsp; YES<br />
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 USERS&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; YES NO&nbsp; YES<br />
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 TEMP&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; NO&nbsp; NO&nbsp; YES<br />
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6 EXAMPLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; YES NO&nbsp; YES</pre>
                        <pre>已选择6行。</pre>
                        <pre>&nbsp;</pre>
                        <pre>2）查看所有的（或者用户可以访问的）表空间</pre>
                        <pre>SQL&gt; select * from dba_tablespaces;</pre>
                        <pre>SQL&gt; select * from user_tablespaces;</pre>
                        <pre>&nbsp;</pre>
                        <pre>&nbsp;</pre>
                        <pre>3）查看所有的（或者用户可以访问的）表空间内的空闲区间的信息</pre>
                        <pre>SQL&gt; select * from dba_free_space; </pre>
                        <pre>SQL&gt; select * from user_free_space;</pre>
                        <pre>SQL&gt; desc dba_free_space;<br />
                        &nbsp;名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是否为空? 类型<br />
                        &nbsp;----------------------------------------- -------- -----------------<br />
                        &nbsp;TABLESPACE_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;&nbsp;&nbsp;&nbsp; VARCHAR2(30)<br />
                        &nbsp;FILE_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER<br />
                        &nbsp;BLOCK_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER<br />
                        &nbsp;BYTES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER<br />
                        &nbsp;BLOCKS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER<br />
                        &nbsp;RELATIVE_FNO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER</pre>
                        <pre>&nbsp;</pre>
                        <pre>dba_free_space 各字段的定义如下：（以下是oracle官方网的定义）</pre>
                        <pre><a id="REFRN23076" name="REFRN23076"></a>DBA_FREE_SPACE<a id="sthref1751" name="sthref1751"></a></pre>
                        <pre>DBA_FREE_SPACE describes the free extents in all tablespaces in the database.</pre>
                        <pre><br />
                        Related View<br />
                        </pre>
                        <pre>USER_FREE_SPACE describes the free extents in the tablespaces accessible to the current user.</pre>
                        <div class="inftblInformalWideMax">
                        <table class="InformalWideMax" dir="ltr" cellspacing="0" cellpadding="3" rules="groups" width="100%" summary="This table is described in the preceding text" border="1" frame="hsides">
                            <thead>
                                <tr valign="top" align="left">
                                    <th id="r1c1-t124" valign="bottom" align="left">
                                    <pre>Column</pre>
                                    </th>
                                    <th id="r1c2-t124" valign="bottom" align="left">
                                    <pre>Datatype</pre>
                                    </th>
                                    <th id="r1c3-t124" valign="bottom" align="left">
                                    <pre>NULL</pre>
                                    </th>
                                    <th id="r1c4-t124" valign="bottom" align="left">
                                    <pre>Description</pre>
                                    </th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr valign="top" align="left">
                                    <td id="r2c1-t124" align="left" headers="r1c1-t124">
                                    <pre>TABLESPACE_NAME</pre>
                                    </td>
                                    <td align="left" headers="r2c1-t124 r1c2-t124">
                                    <pre>VARCHAR2(30)</pre>
                                    </td>
                                    <td align="left" headers="r2c1-t124 r1c3-t124">
                                    <pre>&nbsp;</pre>
                                    </td>
                                    <td align="left" headers="r2c1-t124 r1c4-t124">
                                    <pre>Name of the tablespace containing the extent</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r3c1-t124" align="left" headers="r1c1-t124">
                                    <pre>FILE_ID</pre>
                                    </td>
                                    <td align="left" headers="r3c1-t124 r1c2-t124">
                                    <pre>NUMBER</pre>
                                    </td>
                                    <td align="left" headers="r3c1-t124 r1c3-t124">
                                    <pre>&nbsp;</pre>
                                    </td>
                                    <td align="left" headers="r3c1-t124 r1c4-t124">
                                    <pre>File identifier number of the file containing the extent</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r4c1-t124" align="left" headers="r1c1-t124">
                                    <pre>BLOCK_ID</pre>
                                    </td>
                                    <td align="left" headers="r4c1-t124 r1c2-t124">
                                    <pre>NUMBER</pre>
                                    </td>
                                    <td align="left" headers="r4c1-t124 r1c3-t124">
                                    <pre>&nbsp;</pre>
                                    </td>
                                    <td align="left" headers="r4c1-t124 r1c4-t124">
                                    <pre>Starting block number of the extent</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r5c1-t124" align="left" headers="r1c1-t124">
                                    <pre>BYTES</pre>
                                    </td>
                                    <td align="left" headers="r5c1-t124 r1c2-t124">
                                    <pre>NUMBER</pre>
                                    </td>
                                    <td align="left" headers="r5c1-t124 r1c3-t124">
                                    <pre>&nbsp;</pre>
                                    </td>
                                    <td align="left" headers="r5c1-t124 r1c4-t124">
                                    <pre>Size of the extent (in bytes)</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r6c1-t124" align="left" headers="r1c1-t124">
                                    <pre>BLOCKS</pre>
                                    </td>
                                    <td align="left" headers="r6c1-t124 r1c2-t124">
                                    <pre>NUMBER</pre>
                                    </td>
                                    <td align="left" headers="r6c1-t124 r1c3-t124">
                                    <pre>&nbsp;</pre>
                                    </td>
                                    <td align="left" headers="r6c1-t124 r1c4-t124">
                                    <pre>Size of the extent (in Oracle blocks)</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r7c1-t124" align="left" headers="r1c1-t124">
                                    <pre>RELATIVE_FNO</pre>
                                    </td>
                                    <td align="left" headers="r7c1-t124 r1c2-t124">
                                    <pre>NUMBER</pre>
                                    </td>
                                    <td align="left" headers="r7c1-t124 r1c3-t124">
                                    <pre>&nbsp;</pre>
                                    </td>
                                    <td align="left" headers="r7c1-t124 r1c4-t124">
                                    <pre>Relative file number of the file containing the extent</pre>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        </div>
                        <pre>4）查看所有数据文件（临时文件）的信息</pre>
                        <pre>SQL&gt; select * from V$datafile;</pre>
                        <pre>SQL&gt; select * from V$tempfile;</pre>
                        <pre>&nbsp;</pre>
                        <pre>5)查看所有属于表空间的数据（或临时）文件</pre>
                        <pre>SQL&gt; select * from dba_data_files;</pre>
                        <pre>SQL&gt; select * from dba_temp_files;</pre>
                        <pre>&nbsp;</pre>
                        <pre>6)查看临时文件的使用/剩余空间</pre>
                        <pre>SQL&gt; select * from V$temp_space_header;</pre>
                        <pre>TABLESPACE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FILE_ID BYTES_USED BLOCKS_USED BYTES_FREE<br />
                        ------------------------------ ---------- ---------- ----------- ----------<br />
                        BLOCKS_FREE RELATIVE_FNO<br />
                        ----------- ------------<br />
                        TEMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; 19922944&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2432&nbsp;&nbsp;&nbsp; 1048576<br />
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 128&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1</pre>
                        <pre>&nbsp;</pre>
                        <pre>7）查看用户的默认和临时表空间</pre>
                        <pre>SQL&gt; select * from dba_users;</pre>
                        <pre>&nbsp;</pre>
                        <pre>8）查看所有用户的表空间配额</pre>
                        <pre>SQL&gt; select * from dba_ts_quotas;</pre>
                        <pre>TABLESPACE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; USERNAME&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; BYTES&nbsp; MAX_BYTES&nbsp;&nbsp;&nbsp;&nbsp; BLOCKS MAX_BLOCKS DRO<br />
                        ------------------------------ ------------------------------ ---------- ---------- ---------- ---------- ---<br />
                        SYSAUX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DMSYS&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; 262144&nbsp; 209715200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25600 NO<br />
                        SYSAUX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SYSMAN&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; 52101120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6360&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1 NO<br />
                        SYSAUX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OLAPSYS&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; 16318464&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1992&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1 NO<br />
                        </pre>
                        <pre>dba_ts_quotas 各个字段的解释如下：</pre>
                        <pre>DBA_TS_QUOTAS<a id="sthref2301" name="sthref2301"></a></pre>
                        <pre>DBA_TS_QUOTAS describes tablespace quotas for all users.</pre>
                        <pre><br />
                        Related View<br />
                        </pre>
                        <pre>USER_TS_QUOTAS describes tablespace quotas for the current user. This view does not display the USERNAME column.</pre>
                        <address class="inftblInformalWideMax">
                        <table class="InformalWideMax" dir="ltr" cellspacing="0" cellpadding="3" rules="groups" width="100%" summary="This table is described in the preceding text" border="1" frame="hsides">
                            <thead>
                                <tr valign="top" align="left">
                                    <th id="r1c1-t378" valign="bottom" align="left">
                                    <pre>Column</pre>
                                    </th>
                                    <th id="r1c2-t378" valign="bottom" align="left">
                                    <pre>Datatype</pre>
                                    </th>
                                    <th id="r1c3-t378" valign="bottom" align="left">
                                    <pre>NULL</pre>
                                    </th>
                                    <th id="r1c4-t378" valign="bottom" align="left">
                                    <pre>Description</pre>
                                    </th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr valign="top" align="left">
                                    <td id="r2c1-t378" align="left" headers="r1c1-t378">
                                    <pre>TABLESPACE_NAME</pre>
                                    </td>
                                    <td align="left" headers="r2c1-t378 r1c2-t378">
                                    <pre>VARCHAR2(30)</pre>
                                    </td>
                                    <td align="left" headers="r2c1-t378 r1c3-t378">
                                    <pre>NOT NULL</pre>
                                    </td>
                                    <td align="left" headers="r2c1-t378 r1c4-t378">
                                    <pre>Tablespace name</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r3c1-t378" align="left" headers="r1c1-t378">
                                    <pre>USERNAME</pre>
                                    </td>
                                    <td align="left" headers="r3c1-t378 r1c2-t378">
                                    <pre>VARCHAR2(30)</pre>
                                    </td>
                                    <td align="left" headers="r3c1-t378 r1c3-t378">
                                    <pre>NOT NULL</pre>
                                    </td>
                                    <td align="left" headers="r3c1-t378 r1c4-t378">
                                    <pre>User with resource rights on the tablespace</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r4c1-t378" align="left" headers="r1c1-t378">
                                    <pre>BYTES</pre>
                                    </td>
                                    <td align="left" headers="r4c1-t378 r1c2-t378">
                                    <pre>NUMBER</pre>
                                    </td>
                                    <td align="left" headers="r4c1-t378 r1c3-t378">
                                    <pre><br />
                                    &nbsp;</pre>
                                    </td>
                                    <td align="left" headers="r4c1-t378 r1c4-t378">
                                    <pre>Number of bytes charged to the user</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r5c1-t378" align="left" headers="r1c1-t378">
                                    <pre>MAX_BYTES</pre>
                                    </td>
                                    <td align="left" headers="r5c1-t378 r1c2-t378">
                                    <pre>NUMBER</pre>
                                    </td>
                                    <td align="left" headers="r5c1-t378 r1c3-t378">
                                    <pre><br />
                                    &nbsp;</pre>
                                    </td>
                                    <td align="left" headers="r5c1-t378 r1c4-t378">
                                    <pre>User's quota in bytes, or -1 if no limit</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r6c1-t378" align="left" headers="r1c1-t378">
                                    <pre>BLOCKS</pre>
                                    </td>
                                    <td align="left" headers="r6c1-t378 r1c2-t378">
                                    <pre>NUMBER</pre>
                                    </td>
                                    <td align="left" headers="r6c1-t378 r1c3-t378">
                                    <pre>NOT NULL</pre>
                                    </td>
                                    <td align="left" headers="r6c1-t378 r1c4-t378">
                                    <pre>Number of Oracle blocks charged to the user</pre>
                                    </td>
                                </tr>
                                <tr valign="top" align="left">
                                    <td id="r7c1-t378" align="left" headers="r1c1-t378">
                                    <pre>MAX_BLOCKS</pre>
                                    </td>
                                    <td align="left" headers="r7c1-t378 r1c2-t378">
                                    <pre>NUMBER</pre>
                                    </td>
                                    <td align="left" headers="r7c1-t378 r1c3-t378">
                                    <pre><br />
                                    &nbsp;</pre>
                                    </td>
                                    <td align="left" headers="r7c1-t378 r1c4-t378">
                                    <pre>User's quota in Oracle blocks, or -1 if no limit</pre>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        </address>
                        <pre><strong>（二）创建表空间</strong></pre>
                        <pre>SQL&gt; create tablespace test datafile 'C:\oradata\testdb\test1.dat'&nbsp; size 1M;</pre>
                        <pre>表空间已创建。（permernant tablespace)</pre>
                        <pre>SQL&gt; create temporary tablespace test_temp tempfile 'C:\oradata\testdb\testtemp.dat' size&nbsp; 2M;</pre>
                        <pre>表空间已创建。(temporary tablespace)</pre>
                        <pre><br />
                        SQL&gt; create undo tablespace testundo datafile 'C:\oradata\testdb\testundo.dat' size 2M;</pre>
                        <pre>表空间已创建。(undo tablespace)</pre>
                        <pre>详细的语法表参照官网的讲解：<a href="http://download.oracle.com/docs/cd/B14117_01/server.101/b10759/statements_7003.htm#SQLRF01403">http://download.oracle.com/docs/cd/B14117_01/server.101/b10759/statements_7003.htm#SQLRF01403</a></pre>
                        <pre>&nbsp;（三）修改表空间：</pre>
                        <pre>修改表空间的语法如下：</pre>
                        <pre>alter tablespace 表空间名字 </pre>
                        <pre>{ [coalesce]</pre>
                        <pre>[temporary|permanent]</pre>
                        <pre>[read only|read write]</pre>
                        <pre>[online]</pre>
                        <pre>[offline [normal|temporary|immediate|for recover]]</pre>
                        <pre>[minimum extent 数目[k|M]]</pre>
                        <pre>[default 存储参数语句]</pre>
                        <pre>[datafile 路径]</pre>
                        <pre>}</pre>
                        <pre>&nbsp;例子：</pre>
                        <pre>SQL&gt; alter tablespace test read write;</pre>
                        <pre>SQL&gt; alter tablespace test online;</pre>
                        <pre><strong>(四)删除表空间</strong></pre>
                        <pre>SQL&gt; drop tablespace TEST_TEMP;</pre>
                        <pre>表空间已删除。</pre>
                        <div></div>
                        </div>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/yemen/aggbug/259712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yemen/" target="_blank">上帝也犯困</a> 2009-03-14 13:43 <a href="http://www.blogjava.net/yemen/articles/259712.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]oracle表空间及维护</title><link>http://www.blogjava.net/yemen/articles/259684.html</link><dc:creator>上帝也犯困</dc:creator><author>上帝也犯困</author><pubDate>Sat, 14 Mar 2009 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/yemen/articles/259684.html</guid><wfw:comment>http://www.blogjava.net/yemen/comments/259684.html</wfw:comment><comments>http://www.blogjava.net/yemen/articles/259684.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yemen/comments/commentRss/259684.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yemen/services/trackbacks/259684.html</trackback:ping><description><![CDATA[<p class="g_p_center g_t_wrap g_t_left g_t_20 g_c_pdin c07 brd01" id="blogtitle_fks_085066081087089064080085084095080081087074086084087064" style="margin: 15px auto; width: 760px; border-bottom: 1px dotted"><span style="font-family: '微软雅黑','黑体',Arial,Helvetica,Sans-Serif">ORACLE表空间及其维护</span><span class="g_t_10 c08">　2008-09-06 20:38</span></p>
<div class="g_p_center g_t_right g_c_pdin g_h_20 c08" style="margin-bottom: 20px; width: 760px">
<div class="g_p_left">分类：<a class="g_c_ul c05" id="aBelongClsfks_085066081087089064080085084095080081087074086084087064" style="font-size: 12px" onclick="NEBlog.gPermaLinkPage.updownMenu.openSameClass('fks_087066083080089067081086094095080081087074086084087064', 'Oracle');" href="http://blog.163.com/fan_yishan/blog/static/4769221320088683826553/#">Oracle</a> </div>
<div>字号： <a class="g_c_ul c05" id="bigfont" style="font-size: 12px" onclick="NEBlog.gPermaLinkPage.updownMenu.changeFont('blogtext_fks_085066081087089064080085084095080081087074086084087064', 1);return false;" href="http://blog.163.com/fan_yishan/blog/static/4769221320088683826553/#">大</a><span class="g_t_bold c07" id="bigfont_off" style="display: none">大</span>&nbsp; <a class="g_c_ul c05" id="middlefont" style="font-size: 12px" onclick="NEBlog.gPermaLinkPage.updownMenu.changeFont('blogtext_fks_085066081087089064080085084095080081087074086084087064', 2);return false;" href="http://blog.163.com/fan_yishan/blog/static/4769221320088683826553/#">中</a><span class="g_t_bold c07" id="middlefont_off" style="display: none">中</span>&nbsp; <a class="g_c_ul c05" id="smallfont" style="display: none; font-size: 12px" onclick="NEBlog.gPermaLinkPage.updownMenu.changeFont('blogtext_fks_085066081087089064080085084095080081087074086084087064', 3);return false;" href="http://blog.163.com/fan_yishan/blog/static/4769221320088683826553/#">小</a><span class="g_t_bold c07" id="smallfont_off" style="display: inline">小</span> </div>
</div>
<div class="g_blog_list">
<div class="g_t_center g_c_pdin g_p_center c07 content" id="blogtext_fks_085066081087089064080085084095080081087074086084087064" style="width: 760px">
<p><font size="4">基本概念<br />
ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。<br />
每个ORACLE数据库均有SYSTEM表空间,这是数据库创建时自动创建的。SYSTEM表空间必须总要保持联机,因为其包含着数据库运行所要求的基本信息(关于整个数据库的数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表)。<br />
一个小型应用的ORACLE数据库通常仅包括SYSTEM表空间,然而一个稍大型应用的ORACLE数据库采用多个表空间会对数据库的使用带来更大的方便。<br />
作用<br />
表空间的作用能帮助DBA用户完成以下工作:<br />
1.决定数据库实体的空间分配;<br />
2.设置数据库用户的空间份额;<br />
3.控制数据库部分数据的可用性;<br />
4.分布数据于不同的设备之间以改善性能;<br />
5.备份和恢复数据。<br />
用户创建其数据库实体时其必须于给定的表空间中具有相应的权力,所以对一个用户来<br />
说,其要操纵一个ORACLE数据库中的数据,应该:<br />
1.被授予关于一个或多个表空间中的RESOURCE特权;<br />
2.被指定缺省表空间;<br />
3.被分配指定表空间的存储空间使用份额;<br />
4.被指定缺省临时段表空间。<br />
维护<br />
表空间的维护是由ORACLE数据库系统管理员DBA通过SQL*PLUS语句实现的,其中表空间<br />
创建与修改中的文件名是不能带路径的,因此DBA必须在ORACLE/DBS目录中操作。<br />
1.新表空间的创建<br />
语法格式:CREATE TABLESPACE 表空间名<br />
DATAFILE 文件标识符[,文件标识符]...<br />
[DEFAULT STORAGE(存储配置参数)]<br />
[ONLINE\OFFLINE];<br />
其中:文件标识符=&#8217;文件名&#8217;[SIZE整数[K\M][REUSE]<br />
2.修改表空间配置<br />
语法格式:ALTER TABLESPCE 表空间名<br />
(ADD DATAFILE 文件标识符[,文件标识符]...<br />
\RENAME DATAFILE &#8217;文件名&#8217;[,&#8217;文件名&#8217;]...<br />
TO &#8217;文件名&#8217;[,&#8217;文件名&#8217;]...<br />
\DEFAULT STORAGE(存储配置参数)<br />
\ONLINE\OFFLINE[NORMAL\IMMEDIATE]<br />
\(BEGIN\END)BACKUP);<br />
3.取消表空间<br />
语法格式:DROP TABLESPACE表空间名[INCLUDING CONTENTS];<br />
4.检查表空间使用情况<br />
(1)检查当前用户空间分配情况<br />
SELECT tablespace_name,SUM(extents),SUM(blocks),SUM(bytes)<br />
FROM user_segments<br />
GROUP BY tablespace_name<br />
(2)a.检查各用户空间分配情况<br />
SELECT owner,tablespace_;<br />
(2)b.检查各用户空间分配情况<br />
SELECT owner,tablespace_name,SUM(extents),SUM(blocks),SUM(bytes)<br />
FROM dba_segments<br />
GROUP BY owner,tablespace_name;<br />
(3) 检查当前用户数据库实体空间使用情况<br />
SELECT tablespace_name,segment_name,segment_type,<br />
COUNT(extent_id),SUM(blocks),SUM(bytes)<br />
FROM user_extents<br />
GROUP BY tablespace_name,segment_name,segment_type;<br />
(4)检查各用户空间使用情况<br />
SELECT owner,tablespace_name,COUNT(extent_id),SUM(blocks),<br />
SUM(bytes) FROM user_extents<br />
GROUP BY owner,tablespace_name;<br />
(5)检查数据库空间使用情况<br />
SELECT tablespace_name,COUNT(extent_id),SUM(blocks),SUM(bytes)<br />
FROM user_extents<br />
GROUP BY tablespace_name;<br />
(6)检查当前用户自由空间情况<br />
SELECT tablespace_name,COUNT(block_id),SUM(blocks),SUM(bytes)<br />
FROM user_free_space<br />
GROUP BY tablespace_name;<br />
(7)检查数据库自由空间情况<br />
SELECT tablespace_name,COUNT(block_id),SUM(blocks),SUM(bytes)<br />
FROM dba_free_space<br />
GROUP BY tablespace_name;<br />
四、结论<br />
表空间是ORACLE数据库系统维护的主要对象,通过本文能详细了解它的基本概念与作用<br />
,并掌握其日常维护知识,从而保证ORACLE数据库系统的正常运行。<br />
</font></p>
</div>
</div>
<img src ="http://www.blogjava.net/yemen/aggbug/259684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yemen/" target="_blank">上帝也犯困</a> 2009-03-14 10:34 <a href="http://www.blogjava.net/yemen/articles/259684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle数据导入导出imp/exp[转]</title><link>http://www.blogjava.net/yemen/articles/258934.html</link><dc:creator>上帝也犯困</dc:creator><author>上帝也犯困</author><pubDate>Tue, 10 Mar 2009 14:58:00 GMT</pubDate><guid>http://www.blogjava.net/yemen/articles/258934.html</guid><wfw:comment>http://www.blogjava.net/yemen/comments/258934.html</wfw:comment><comments>http://www.blogjava.net/yemen/articles/258934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yemen/comments/commentRss/258934.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yemen/services/trackbacks/258934.html</trackback:ping><description><![CDATA[<div class="tit">Oracle数据导入导出imp/exp</div>
<div class="date">2009-02-24 20:40</div>
<table style="table-layout: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt" id="blog_text">
            <div class="postbody">Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件，imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库，一个用来测试，一个用来正式使用。<br />
            <br />
            执行环境：可以在SQLPLUS.EXE或者DOS（命令行）中执行，<br />
            DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径，<br />
            该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。<br />
            oracle用java编写，SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。<br />
            SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类，完成导入导出功能。<br />
            <br />
            下面介绍的是导入导出的实例。<br />
            数据导出：<br />
            1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中<br />
            &nbsp;&nbsp; <strong>exp system/manager@TEST file=d:daochu.dmp full=y</strong><br />
            2 将数据库中system用户与sys用户的表导出<br />
            &nbsp;&nbsp; exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)<br />
            3 将数据库中的表inner_notify、notify_staff_relat导出<br />
            &nbsp;&nbsp;&nbsp; exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat) <br />
            <br />
            4 将数据库中的表table1中的字段filed1以"00"打头的数据导出<br />
            &nbsp;&nbsp; exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"<br />
            <br />
            上面是常用的导出，对于压缩，既用winzip把dmp文件可以很好的压缩。<br />
            也可以在上面命令后面 加上 compress=y 来实现。<br />
            <br />
            数据的导入<br />
            1 将D:daochu.dmp 中的数据导入 TEST数据库中。<br />
            &nbsp;&nbsp; imp system/manager@TEST file=d:daochu.dmp<br />
            &nbsp;&nbsp; <strong>imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y<br />
            </strong>&nbsp;&nbsp; 上面可能有点问题，因为有的表已经存在，然后它就报错，对该表就不进行导入。<br />
            &nbsp;&nbsp; 在后面加上 ignore=y 就可以了。<br />
            2 将d:daochu.dmp中的表table1 导入<br />
            imp system/manager@TEST file=d:daochu.dmp tables=(table1)<br />
            <br />
            基本上上面的导入导出够用了。不少情况要先是将表彻底删除，然后导入。<br />
            <br />
            注意：<br />
            操作者要有足够的权限，权限不够它会提示。<br />
            数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。<br />
            <br />
            附录一：<br />
            给用户增加导入数据权限的操作<br />
            第一,启动sql*puls<br />
            第二，以system/manager登陆<br />
            第三，create user 用户名 IDENTIFIED BY 密码 （如果已经创建过用户，这步可以省略）<br />
            第四，GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,<br />
            &nbsp;&nbsp; DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字<br />
            第五, 运行-cmd-进入dmp文件所在的目录,<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imp userid=system/manager full=y file=*.dmp<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 或者 imp userid=system/manager full=y file=filename.dmp<br />
            <br />
            执行示例:<br />
            F:WorkOracle_Databackup&gt;imp userid=test/test full=y file=inner_notify.dmp<br />
            <br />
            屏幕显示<br />
            Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006<br />
            (c) Copyright 2000 Oracle Corporation. All rights reserved.<br />
            <br />
            连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production<br />
            With the Partitioning option<br />
            JServer Release 8.1.7.0.0 - Production<br />
            <br />
            经由常规路径导出由EXPORT:V08.01.07创建的文件<br />
            已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入<br />
            导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)<br />
            . 正在将AICHANNEL的对象导入到 AICHANNEL<br />
            . . 正在导入表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "INNER_NOTIFY"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4行被导入<br />
            准备启用约束条件...<br />
            成功终止导入，但出现警告。<br />
            <br />
            <br />
            附录二：<br />
            Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.<br />
            先建立import9.par,<br />
            然后，使用时命令如下：imp parfile=/filepath/import9.par<br />
            例 import9.par 内容如下：<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROMUSER=TGPMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TOUSER=TGPMS2&nbsp;&nbsp;&nbsp;&nbsp; （注：把表的拥有者由FROMUSER改为TOUSER，FROMUSER和TOUSER的用户可以不同）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROWS=Y<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INDEXES=Y<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GRANTS=Y<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONSTRAINTS=Y<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BUFFER=409600<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file==/backup/ctgpc_20030623.dmp<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log==/backup/import_20030623.log <br />
            <br />
            以下我自己补充：<br />
            1.在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的&#8220;...&#8221;，以改变以往的闪烁的光标</div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/yemen/aggbug/258934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yemen/" target="_blank">上帝也犯困</a> 2009-03-10 22:58 <a href="http://www.blogjava.net/yemen/articles/258934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle导出和导入[摘]</title><link>http://www.blogjava.net/yemen/articles/258905.html</link><dc:creator>上帝也犯困</dc:creator><author>上帝也犯困</author><pubDate>Tue, 10 Mar 2009 12:02:00 GMT</pubDate><guid>http://www.blogjava.net/yemen/articles/258905.html</guid><wfw:comment>http://www.blogjava.net/yemen/comments/258905.html</wfw:comment><comments>http://www.blogjava.net/yemen/articles/258905.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yemen/comments/commentRss/258905.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yemen/services/trackbacks/258905.html</trackback:ping><description><![CDATA[<p>功能：Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。<br />
大多情况都可以用Oracle数据导入导出完成数据的备份和还原（不会造成数据的丢失）。<br />
<br />
Oracle有个好处，虽然你的电脑不是服务器，但是你装了oracle客户端，并建立了连接<br />
（通过net8 assistant中本地--&gt;服务命名 添加正确的服务命名 <br />
其实你可以想成是客户端与服务器端修了条路，然后数据就可以被拉过来了）<br />
这样你可以把数据导出到本地，虽然可能服务器离你很远。<br />
你同样可以把dmp文件从本地导入到远处的数据库服务器中。<br />
利用这个功能你可以构建俩个相同的数据库，一个用来测试，一个用来正式使用。<br />
<br />
执行环境：可以在SQLPLUS.EXE或者DOS（命令行）中执行，<br />
DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径，<br />
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。<br />
oracle用java编写，我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。<br />
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类，完成导入导出功能。<br />
<br />
下面介绍的是导入导出的实例，向导入导出看实例基本上就可以完成，因为导入导出很简单。<br />
数据导出：<br />
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中<br />
&nbsp;&nbsp; exp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#121;&#115;&#116;&#101;&#109;&#47;&#109;&#97;&#110;&#97;&#103;&#101;&#114;&#64;&#84;&#69;&#83;&#84;">system/manager@TEST</a> file=d:\daochu.dmp full=y<br />
2 将数据库中system用户与sys用户的表导出<br />
&nbsp;&nbsp; exp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#121;&#115;&#116;&#101;&#109;&#47;&#109;&#97;&#110;&#97;&#103;&#101;&#114;&#64;&#84;&#69;&#83;&#84;">system/manager@TEST</a> file=d:\daochu.dmp owner=(system,sys)<br />
3 将数据库中的表table1 、table2导出<br />
&nbsp;&nbsp; exp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#121;&#115;&#116;&#101;&#109;&#47;&#109;&#97;&#110;&#97;&#103;&#101;&#114;&#64;&#84;&#69;&#83;&#84;">system/manager@TEST</a> file=d:\daochu.dmp tables=(table1,table2) <br />
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出<br />
&nbsp;&nbsp; exp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#121;&#115;&#116;&#101;&#109;&#47;&#109;&#97;&#110;&#97;&#103;&#101;&#114;&#64;&#84;&#69;&#83;&#84;">system/manager@TEST</a> file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; 上面是常用的导出，对于压缩我不太在意，用winzip把dmp文件可以很好的压缩。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不过在上面命令后面 加上 compress=y 就可以了</p>
<p>数据的导入<br />
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。<br />
&nbsp;&nbsp; imp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#121;&#115;&#116;&#101;&#109;&#47;&#109;&#97;&#110;&#97;&#103;&#101;&#114;&#64;&#84;&#69;&#83;&#84;">system/manager@TEST</a> file=d:\daochu.dmp<br />
&nbsp;&nbsp; 上面可能有点问题，因为有的表已经存在，然后它就报错，对该表就不进行导入。<br />
&nbsp;&nbsp; 在后面加上 ignore=y 就可以了。<br />
2 将d:\daochu.dmp中的表table1 导入<br />
imp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#121;&#115;&#116;&#101;&#109;&#47;&#109;&#97;&#110;&#97;&#103;&#101;&#114;&#64;&#84;&#69;&#83;&#84;">system/manager@TEST</a> file=d:\daochu.dmp tables=(table1) <br />
<br />
基本上上面的导入导出够用了。不少情况我是将表彻底删除，然后导入。<br />
----------------------------------------------------------------------------------------------<br />
一. 导出工具 exp</p>
<p>1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin</p>
<p>&nbsp;&nbsp; exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; 它有三种模式：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a. 用户模式：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导出用户所有对象以及对象中的数据；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b. 表模式：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导出用户所有表或者指定的表；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c. 整个数据库：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导出数据库中所有对象。</p>
<p>2. 导出工具exp交互式命令行方式的使用的例子（菜单提示）</p>
<p>$exp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#47;&#116;&#101;&#115;&#116;&#49;&#50;&#51;&#64;&#97;&#112;&#112;&#100;&#98;">test/test123@appdb</a><br />
Enter array fetch buffer size: 4096 &gt; 回车<br />
Export file: expdat.dmp &gt; m.dmp 生成导出的文件名 <br />
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U &gt; 3<br />
Export table data (yes/no): yes &gt; 回车<br />
Compress extents (yes/no): yes &gt; 回车<br />
Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set<br />
About to export specified tables via Conventional Path ...<br />
Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt; cmamenu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要导出的表名<br />
. . exporting table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMAMENU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4336 rows exported<br />
Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt;要导出的表名n<br />
Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt; 回车<br />
Export terminated successfully without warnings.</p>
<p>3. 导出工具exp非交互式命令行方式的例子（直接敲命令）</p>
<p>$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y</p>
<p>说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp</p>
<p>$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\&lt;1600\" file=/directory/scott2.dmp</p>
<p>说明:在exp里面加上导出emp的查询条件job='salesman' and sal&lt;1600<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; (但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)</p>
<p>$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000M log=/directory2/username_exp.log</p>
<p>参数文件username.par内容<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; userid=username/userpassword<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buffer=8192000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; compress=n<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; grants=y</p>
<p>说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; filesize指定生成的二进制备份文件的最大字节数<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; (可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)</p>
<p>二.导入工具 imp</p>
<p>1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imp导入工具将EXP形成的二进制系统文件导入到数据库中.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; 它有三种模式：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a. 用户模式：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导出用户所有对象以及对象中的数据；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b. 表模式：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导出用户所有表或者指定的表；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c. 整个数据库：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导出数据库中所有对象。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; 只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; imp步骤：<br />
&nbsp;&nbsp; (1) create table (2) insert data (3) create index (4) create triggers,constraints</p>
<p>2.导入工具imp交互式命令行方式的例子<br />
$ imp<br />
Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001<br />
(c) Copyright 1999 Oracle Corporation. All rights reserved.<br />
用户名: test<br />
口令:****<br />
连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production<br />
With the Partitioning option<br />
JServer Release 8.1.6.0.0 - Production<br />
导入文件: expdat.dmp&gt; /tmp/m.dmp<br />
输入插入缓冲区大小（最小为 8192 ) 30720&gt;<br />
经由常规路径导出由EXPORT:V08.01.06创建的文件<br />
警告: 此对象由 TEST 导出, 而不是当前用户<br />
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入<br />
只列出导入文件的内容(yes/no)：no&gt;<br />
由于对象已存在, 忽略创建错误(yes/no)：no&gt; yes<br />
导入权限(yes/no)：yes&gt;<br />
导入表数据(yes/no)：yes&gt;<br />
导入整个导出文件(yes/no)：no&gt; yes<br />
. 正在将TEST的对象导入到 SCOTT<br />
. . 正在导入表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "CMAMENU"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4336行被导入<br />
成功终止导入，但出现警告。</p>
<p><br />
3.导入工具imp非交互式命令行方式的例子</p>
<p>$ imp system/manager fromuser=jones tables=(accts) <br />
$ imp system/manager fromuser=scott tables=(emp,dept) <br />
$ imp system/manager fromuser=scott touser=joe tables=emp <br />
$ imp scott/tiger file = expdat.dmp full=y <br />
$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n commit=y grants=y full=y log=/oracle_backup/log/imp_scott.log<br />
$ imp system/manager parfile=params.dat <br />
params.dat 内容 <br />
file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp)</p>
<p>$ imp system/system fromuser=ly touser=ly2 file=wu.dmp ignore=y full=y<br />
$ imp ly2/ly2 file=wu.dmp ignore=y full=y</p>
<p>4.导入工具imp可能出现的问题</p>
<p>(1) 数据库对象已经存在<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据库对象已经存在, 按缺省的imp参数, 则会导入失败<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果用了参数ignore=y, 会把exp文件内的数据内容导入<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果表有唯一关键字的约束条件, 不合条件将不被导入<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果表没有唯一关键字的约束条件, 将引起记录重复<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
(2) 数据库对象有主外键约束<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不符合主外键约束时, 数据会导入失败&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解决办法: 先导入主表, 再导入依存表<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disable目标导入对象的主外键约束, 导入数据后, 再enable它们<br />
(3) 权限不够<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
(4) 导入大表( 大于80M ) 时, 存储分配失败<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导入时, 如果不存在连续一个大数据块, 则会导入失败.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
(5) imp和exp使用的字符集不同<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导入完成后再改回来.</p>
<p>(6) imp和exp版本不能往上兼容<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 根据情况我们可以用<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ imp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#117;&#115;&#101;&#114;&#110;&#97;&#109;&#101;&#47;&#112;&#97;&#115;&#115;&#119;&#111;&#114;&#100;&#64;&#99;&#111;&#110;&#110;&#101;&#99;&#116;&#95;&#115;&#116;&#114;&#105;&#110;&#103;">username/password@connect_string</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 定义的本地或者远端数据库的名称<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意事项:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UNIX: /etc/hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要定义本地或者远端数据库服务器的主机名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; win98:&nbsp;&nbsp;&nbsp; windows\hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 和IP地址的对应关系 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; win2000: winnt\system32\drivers\etc\hosts</p>
<p><br />
补充：<br />
直接从命令行获得帮助<br />
imp help=y<br />
exp help=y<br />
exp没有indexfile这个参数<br />
=================================================================================================<br />
索引<br />
我们首先做个测试：<br />
　　<br />
　　SQL&gt; CREATE TABLE test AS<br />
　　　2　SELECT ROWNUM a,ROWNUM-1 b ,ROWNUM-2 c,ROWNUM-3 d,ROWNUM-4 e<br />
　　　3　FROM all_objects<br />
　　　4　/<br />
　　<br />
　　SQL&gt; SELECT DISTINCT COUNT (a) FROM test;<br />
　　<br />
　　　COUNT(A)<br />
　　----------<br />
　　　　 28251<br />
　　<br />
　　表已创建。<br />
　　<br />
　　SQL&gt;<br />
　　SQL&gt; CREATE INDEX test_idx ON test(a,b,c)<br />
　　　2　/<br />
　　<br />
　　索引已创建。<br />
　　<br />
　　SQL&gt; ANALYZE TABLE test COMPUTE STATISTICS<br />
　　　2　FOR TABLE<br />
　　　3　FOR ALL INDEXES<br />
　　　4　FOR ALL INDEXED COLUMNS<br />
　　　5　/<br />
　　<br />
　　表已分析。<br />
　　<br />
　　SQL&gt; SET autotrace traceonly explain<br />
　　SQL&gt; SELECT *　FROM test WHERE b = 99<br />
　　　2　/<br />
　　<br />
　　Execution Plan<br />
　　----------------------------------------------------------<br />
　　　 0　　　SELECT STATEMENT Optimizer=CHOOSE (Cost=36 Card=1 Bytes=26)<br />
　　　 1　　0 TABLE ACCESS (FULL) OF 'TEST' (Cost=36 Card=1 Bytes=26)<br />
　　<br />
　　--可见这里CBO选择了全表扫描.<br />
　　<br />
　　--我们接着做另一个测试:<br />
　　<br />
　　SQL&gt; drop table test;<br />
　　<br />
　　表已丢弃。<br />
　　<br />
　　SQL&gt; CREATE TABLE test<br />
　　　2　AS<br />
　　　3　SELECT DECODE(MOD(ROWNUM,2), 0, '1', '2' ) a,<br />
　　　4　　　　　　　　　　ROWNUM-1 b,<br />
　　　5　　　　　　　　　　ROWNUM-2 c,<br />
　　　6　　　　　　　　　　ROWNUM-3 d,<br />
　　　7　　　　　　　　　　ROWNUM-4 e<br />
　　　8　　FROM all_objects<br />
　　　9　/<br />
　　<br />
　　表已创建。<br />
　　<br />
　　SQL&gt; set autotrace off<br />
　　SQL&gt; select distinct a from test;<br />
　　<br />
　　A<br />
　　--<br />
　　1<br />
　　2<br />
　　<br />
　　--A列只有两个唯一值<br />
　　<br />
　　SQL&gt; CREATE INDEX test_idx ON test(a,b,c)<br />
　　　2　/<br />
　　<br />
　　索引已创建。<br />
　　<br />
　　SQL&gt; ANALYZE TABLE test COMPUTE STATISTICS<br />
　　　2　FOR TABLE<br />
　　　3　FOR ALL INDEXES<br />
　　　4　FOR ALL INDEXED COLUMNS<br />
　　　5　/<br />
　　<br />
　　表已分析。<br />
　　<br />
　　SQL&gt; set autotrace traceonly explain<br />
　　SQL&gt; SELECT *　FROM test WHERE b = 99<br />
　　　2　/<br />
　　<br />
　　Execution Plan<br />
　　----------------------------------------------------------<br />
　　　 0　　　SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=1 Bytes=24)<br />
　　　 1　　0　 TABLE ACCESS (BY INDEX ROWID) OF 'TEST' (Cost=4 Card=1 Bytes=24)<br />
　　　 2　　1　　 INDEX (SKIP SCAN) OF 'TEST_IDX' (NON-UNIQUE) (Cost=3 Card=1)<br />
　　<br />
　　Oracle的优化器(这里指的是CBO)能对查询应用Index Skip Scans至少要有几个条件:<br />
　　<br />
　　1 优化器认为是合适的.<br />
　　<br />
　　2 索引中的前导列的唯一值的数量能满足一定的条件.<br />
　　<br />
　　3 优化器要知道前导列的值分布(通过分析/统计表得到)<br />
　　<br />
　　4 合适的SQL语句</p>
<img src ="http://www.blogjava.net/yemen/aggbug/258905.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yemen/" target="_blank">上帝也犯困</a> 2009-03-10 20:02 <a href="http://www.blogjava.net/yemen/articles/258905.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle : shared memory realm does not exist 故障解决 </title><link>http://www.blogjava.net/yemen/articles/258305.html</link><dc:creator>上帝也犯困</dc:creator><author>上帝也犯困</author><pubDate>Fri, 06 Mar 2009 15:51:00 GMT</pubDate><guid>http://www.blogjava.net/yemen/articles/258305.html</guid><wfw:comment>http://www.blogjava.net/yemen/comments/258305.html</wfw:comment><comments>http://www.blogjava.net/yemen/articles/258305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yemen/comments/commentRss/258305.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yemen/services/trackbacks/258305.html</trackback:ping><description><![CDATA[<p>oracle : shared memory realm does not exist 故障解决 <br />
ORA-27101: shared memory realm does not exist <br />
机器为普通HP家用机，驱动不太好是for XP的，但设备管理器中也没有报错。用来做单位服务器升级试验的。装win2000 sp4+oracle817加升级补丁。<br />
机器名server2，全局数据库名server2，SID=ORCL。机器内存512M，根据要求，重做日志大小设为4096，并修改字符集为US7ASCII。其它按oracle安装时默认的。<br />
从服务器上导出数据，log没有报错。<br />
创建表空间，根据原来服务器上的表空间作适当调整。成功创建。<br />
导入dmp,有部分报错，但最后一行提示成功导入。经询问兄弟单位，认为报错部分无关紧要。<br />
客户端运行，能连上，也能运行程序。<br />
但是重新启动后，就无法连上，用system/manager进入sqlplus，<br />
提示ORA-01034: ORACLE not available <br />
&nbsp;&nbsp;&nbsp; ORA-27101: shared memory realm does not exist<br />
改sqlnet.ora将认证方式改为none也没有用。</p>
<p>解决办法：<br />
1、用CMD进入命令行<br />
2、sqlplus /nolog</p>
<p>3、conn / as sysdba<br />
4、startup</p>
<img src ="http://www.blogjava.net/yemen/aggbug/258305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yemen/" target="_blank">上帝也犯困</a> 2009-03-06 23:51 <a href="http://www.blogjava.net/yemen/articles/258305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle SQL语句查询例子[转]</title><link>http://www.blogjava.net/yemen/articles/256119.html</link><dc:creator>上帝也犯困</dc:creator><author>上帝也犯困</author><pubDate>Sun, 22 Feb 2009 13:38:00 GMT</pubDate><guid>http://www.blogjava.net/yemen/articles/256119.html</guid><wfw:comment>http://www.blogjava.net/yemen/comments/256119.html</wfw:comment><comments>http://www.blogjava.net/yemen/articles/256119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yemen/comments/commentRss/256119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yemen/services/trackbacks/256119.html</trackback:ping><description><![CDATA[&nbsp;
<h1><img height="16" alt="原创" src="http://blog.csdn.net/images/authorship.gif" width="15" border="0" />&nbsp;<a href="http://blog.csdn.net/eastyell/archive/2007/08/16/1745940.aspx">Oracle SQL语句查询例子</a><cite class="fav_csdnstylebykimi"><a class="fav_csdnstylebykimi" title="收藏到我的网摘中，并分享给我的朋友" href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&amp;u='+escape(d.location.href)+'&amp;c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();">收藏</a></cite></h1>
<div class="blogstory"><span id="Post.ascx_ViewPost_PreviousAndNextEntriesUp">
<h3><a href="http://blog.csdn.net/eastyell/archive/2007/08/22/1754823.aspx">新一篇:&nbsp;Eclipse快捷键大全(转载) </a>&nbsp;|&nbsp;<a href="http://blog.csdn.net/eastyell/archive/2007/08/12/1739747.aspx">旧一篇:&nbsp;&#8220;达内&#8221;JAVA技术培训有感（二） </a></h3>
</span><script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>&nbsp;1.现有一个简化的学生选课系统，对象及其描述如下：学生(学号,姓名),课程(课程代号,课程名称)，学生可以不选，或者至多选6门课。<br />
&nbsp;<br />
create table C&nbsp; (<br />
&nbsp;&nbsp; ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<br />
&nbsp;&nbsp; CODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(50),<br />
&nbsp;&nbsp; NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(50),<br />
&nbsp;&nbsp; constraint PK_C primary key (ID)<br />
);<br />
create table S (<br />
&nbsp;&nbsp; ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<br />
&nbsp;&nbsp; CODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(50),<br />
&nbsp;&nbsp; NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(50),<br />
&nbsp;&nbsp; constraint PK_S primary key (ID)<br />
);<br />
create table SC&nbsp; (<br />
&nbsp;&nbsp; S_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<br />
&nbsp;&nbsp; C_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<br />
&nbsp;&nbsp; constraint PK_S_C primary key (S_ID, C_ID),<br />
&nbsp;&nbsp; constraint FK_C_SC foreign key (C_ID)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; references C(ID),<br />
&nbsp;&nbsp; constraint FK_S_SC foreign key (S_ID)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; references S (ID)<br />
);<br />
<br />
A)选了 &#8220;Java程序设计&#8221; 的学生列表（按学号生序）。<br />
select S.* from S, SC, C <br />
WHERE S.ID=SC.S_ID AND C.ID=SC.C_ID AND C.NAME = 'Java程序设计'<br />
ORDER BY S.CODE<br />
<br />
B)选了3门以上课程的学生列表和选课数（按学号生序）。<br />
SELECT S.ID,S.CODE,S.NAME,COUNT(*) <br />
FROM S, SC <br />
WHERE S.ID = SC.S_ID<br />
GROUP BY S.ID,S.CODE,S.NAME HAVING COUNT(*) &gt;= 3 ORDER BY S.CODE<br />
<br />
C)选了0门课程的学生列表（按学号生序）。<br />
SELECT S.* FROM S, SC<br />
WHERE S.ID=SC.S_ID(+) AND SC.S_ID IS NULL ORDER BY S.CODE<br />
<br />
SELECT S.* FROM S LEFT JOIN SC <br />
ON S.ID=SC.S_ID WHERE SC.S_ID IS NULL ORDER BY S.CODE<br />
<br />
select s.code,s.name<br />
from s<br />
where s.id not in(select s_id from sc)<br />
order by s.code asc<br />
<br />
D)选课最多的学生列表（按学号生序）。<br />
SELECT S.ID,S.CODE,S.NAME FROM S, SC <br />
WHERE S.ID = SC.S_ID GROUP BY S.ID,S.CODE,S.NAME <br />
HAVING COUNT(*) = (<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT MAX(COUNT(SC.S_ID))&nbsp; FROM SC <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GROUP BY SC.S_ID)<br />
ORDER BY S.CODE<br />
<br />
E)仅仅选了&#8220;Java程序设计&#8221;一门课的学生列表（按学号生序）。<br />
select S.* from S, SC, C<br />
WHERE S.ID=SC.S_ID AND C.ID=SC.C_ID AND C.NAME = 'Java程序设计' <br />
AND S.ID in (<br />
SELECT S_ID from SC <br />
GROUP BY SC.S_ID HAVING COUNT(SC.S_ID) = 1)<br />
order by s.code<br />
<br />
select S.* from S, SC, C,<br />
(select SC.S_ID, count(SC.S_ID) count from SC <br />
&nbsp;group by SC.S_ID) N<br />
WHERE S.ID=SC.S_ID AND C.ID=SC.C_ID AND C.NAME = 'Java程序设计' <br />
AND S.ID = N. S_ID AND N.COUNT = 1<br />
order by s.code<br />
<br />
F)选了3门课，并且其中一门为&#8220;Java程序设计&#8221;的学生列表（按学号生序）。<br />
SELECT S.* FROM S, SC, C<br />
WHERE S.ID=SC.S_ID AND C.ID=SC.C_ID AND C.NAME = 'Java程序设计' <br />
AND S.ID IN (<br />
SELECT S_ID from SC <br />
GROUP BY SC.S_ID HAVING COUNT(SC.S_ID) = 3)<br />
ORDER BY S.CODE<br />
<br />
G)即选了&#8220;Java程序设计&#8221; 又选了&#8220;Delphi程序设计&#8221;的学生列表（按学号生序）。<br />
(select s.* from s,c,sc where s.id = sc.S_ID and sc.C_ID = c.id and c.name = 'Java程序设计')<br />
intersect<br />
(select s.* from s,c,sc where s.id = sc.S_ID and sc.C_ID = c.id and c.name = 'Delphi程序设计')<br />
<br />
select s.* from s,c,sc where s.id = sc.S_ID and sc. C_ID = c.id and c.name = 'Java程序设计' and s.id in (<br />
select s.id from s,c,sc where s.id = sc.S_ID and sc.C_ID = c.id and c.name = 'Delphi程序设计')<br />
<br />
select S.* from S, SC, C, SC SC2, C C2 <br />
WHERE S.ID=SC.S_ID AND C.ID=SC.C_ID AND C.NAME = 'Java程序设计'<br />
AND S.ID= SC2.S_ID AND C2.ID= SC2.C_ID AND C2.NAME = 'Delphi程序设计'<br />
order by s.code<br />
<br />
H)选了&#8220;Java程序设计&#8221;没选&#8220;Delphi程序设计&#8221;的学生列表（按学号生序）。<br />
select S.* from S, SC, C, <br />
(select SC.S_ID from SC, C <br />
WHERE C.ID=SC.C_ID AND C.NAME = 'Delphi程序设计') X<br />
WHERE S.ID=SC.S_ID AND C.ID=SC.C_ID AND C.NAME = 'Java程序设计'<br />
AND S.ID = X. S_ID (+) AND X. S_ID IS NULL<br />
order by s.code<br />
<br />
(select s.* from s,c,sc where s.id = sc.S_ID and sc.C_ID = c.id and c.name = 'Java程序设计')<br />
minus<br />
(select s.* from s,c,sc where s.id = sc.S_ID and sc.C_ID = c.id and c.name = 'Delphi程序设计')<br />
<br />
select s.* from s,c,sc where s.id = sc.S_ID and sc. C_ID = c.id and c.name = 'Java程序设计' and <br />
s.id not in (select s.id from s,c,sc where s.id = sc.S_ID and sc.C_ID = c.id and c.name = 'Delphi程序设计')<br />
<br />
2.请实现一个基于Oracle的数据库设计，完成某个磁盘的所有目录及文件信息（包括目录结构）的存储。<br />
&nbsp; 目录信息包括目录名，创建时间<br />
&nbsp; 文件信息包括文件名，创建时间，文件大小<br />
&nbsp; 并用sql语句实现。<br />
&nbsp;<br />
create table P&nbsp; (<br />
&nbsp;&nbsp; ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<br />
&nbsp;&nbsp; PARENTID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(10),<br />
&nbsp;&nbsp; NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(100),<br />
&nbsp;&nbsp; CREATETIME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE,<br />
&nbsp;&nbsp; constraint PK_P primary key (ID),<br />
&nbsp;&nbsp; constraint FK_P_PARENT foreign key (PARENTID) references P (ID)<br />
);<br />
create table F&nbsp; (<br />
&nbsp;&nbsp; ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<br />
&nbsp;&nbsp; PATHID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(10),<br />
&nbsp;&nbsp; NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(100),<br />
&nbsp;&nbsp; CREATETIME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE,<br />
&nbsp;&nbsp; FILESIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(10),<br />
&nbsp;&nbsp; constraint PK_F primary key (ID),<br />
&nbsp;&nbsp; constraint FK_P_F foreign key (PATHID) references P (ID)<br />
);<br />
<br />
A) 列出某个目录下的所有子目录列表，同级目录按名称升序排列。<br />
SELECT * FROM P START WITH P.NAME='P1'<br />
CONNECT BY PRIOR P.ID = P.PARENTID<br />
ORDER SIBLINGS BY P.NAME<br />
<br />
B) 列出某个目录下的所有文件列表，同级目录中文件按名称升序排列。<br />
SELECT F.* FROM F,<br />
(SELECT P.ID, ROWNUM RN FROM P START WITH P.NAME='P1'<br />
CONNECT BY PRIOR P.ID = P.PARENTID <br />
ORDER SIBLINGS BY&nbsp; P.NAME) R<br />
WHERE F.PATHID = R.ID ORDER BY R.RN, F.NAME<br />
<br />
C) 列出某个目录下的所有doc文件。<br />
SELECT F.* FROM F,<br />
(SELECT P.ID, ROWNUM RN FROM P <br />
START WITH P.NAME='P1' CONNECT BY PRIOR P.ID = P.PARENTID <br />
ORDER SIBLINGS BY&nbsp; P.NAME) R<br />
WHERE F.PATHID = R.ID AND UPPER(F.NAME) LIKE '%.DOC' <br />
ORDER BY R.RN, F.NAME<br />
<br />
D) 列出某个目录下的所有的空目录。<br />
SELECT R.* FROM <br />
(SELECT P.*, ROWNUM RN FROM P START WITH P.NAME='P1'<br />
CONNECT BY PRIOR P.ID = P.PARENTID <br />
ORDER SIBLINGS BY&nbsp; P.NAME) R, F<br />
WHERE R.ID=F.PATHID(+) and F.PATHID IS NULL ORDER BY R.RN</div>
<img src ="http://www.blogjava.net/yemen/aggbug/256119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yemen/" target="_blank">上帝也犯困</a> 2009-02-22 21:38 <a href="http://www.blogjava.net/yemen/articles/256119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>