﻿<?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-Jerome Kwok〖旧日的足迹〗-文章分类-Oracle</title><link>http://www.blogjava.net/JeromeKwok/category/43884.html</link><description>仁者不忧，知者不惑，勇者不惧</description><language>zh-cn</language><lastBuildDate>Sat, 06 Feb 2010 11:46:21 GMT</lastBuildDate><pubDate>Sat, 06 Feb 2010 11:46:21 GMT</pubDate><ttl>60</ttl><item><title>如何在oracle中导入dmp数据库文件</title><link>http://www.blogjava.net/JeromeKwok/articles/311985.html</link><dc:creator>Jerome Kwok</dc:creator><author>Jerome Kwok</author><pubDate>Thu, 04 Feb 2010 07:51:00 GMT</pubDate><guid>http://www.blogjava.net/JeromeKwok/articles/311985.html</guid><wfw:comment>http://www.blogjava.net/JeromeKwok/comments/311985.html</wfw:comment><comments>http://www.blogjava.net/JeromeKwok/articles/311985.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/JeromeKwok/comments/commentRss/311985.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/JeromeKwok/services/trackbacks/311985.html</trackback:ping><description><![CDATA[<span style="font-family: Courier; font-size: 10pt">
<p style="font-family: ">
<table style="table-layout: fixed" class="mceItemTable" mce_style="TABLE-LAYOUT: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt">
            <div style="font-size: 10pt"><span style="font-family: Courier New">Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件，imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库，一个用来测试，一个用来正式使用。</span></div>
            <div><span style="font-family: Courier New">&nbsp;<span style="font-size: 10pt"><span style="font-family: Courier New">执行环境：可以在SQLPLUS.EXE或者DOS（命令行）中执行，<br />
            &nbsp;DOS中可以执行时由于&nbsp;在oracle&nbsp;8i&nbsp;中&nbsp;&nbsp;安装目录\ora81\BIN被设置为全局路径，<br />
            &nbsp;该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。<br />
            &nbsp;oracle用java编写，SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。<br />
            &nbsp;SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类，完成导入导出功能。</span></span></span><span style="font-family: Courier New">下面介绍的是导入导出的实例。<br />
            <span style="font-size: 10pt">数据导出：<br />
            &nbsp;1&nbsp;将数据库TEST完全导出,用户名system&nbsp;密码manager&nbsp;导出到D:\daochu.dmp中<br />
            &nbsp;&nbsp;exp&nbsp;</span></span><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;" mce_href="mailto:system/manager@TEST"><span style="font-family: Courier New"><span style="font-size: 10pt">system/manager@TEST</span></span></a><span style="font-family: Courier New"><span style="font-size: 10pt">&nbsp;file=d:\daochu.dmp&nbsp;full=y<br />
            &nbsp;2&nbsp;将数据库中system用户与sys用户的表导出<br />
            &nbsp;&nbsp;exp&nbsp;</span></span><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;" mce_href="mailto:system/manager@TEST"><span style="font-family: Courier New"><span style="font-size: 10pt">system/manager@TEST</span></span></a><span style="font-family: Courier New"><span style="font-size: 10pt">&nbsp;file=d:\daochu.dmp&nbsp;owner=(system,sys)<br />
            &nbsp;3&nbsp;将数据库中的表inner_notify、notify_staff_relat导出<br />
            &nbsp;&nbsp;exp&nbsp;</span></span><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#105;&#99;&#104;&#97;&#110;&#110;&#101;&#108;&#47;&#97;&#105;&#99;&#104;&#97;&#110;&#110;&#101;&#108;&#64;&#84;&#69;&#83;&#84;&#68;&#66;&#50;" mce_href="mailto:aichannel/aichannel@TESTDB2"><span style="font-family: Courier New"><span style="font-size: 10pt">aichannel/aichannel@TESTDB2</span></span></a><span style="font-family: Courier New"><span style="font-size: 10pt">&nbsp;file=&nbsp;d:\data\newsmgnt.dmp&nbsp;tables=(inner_notify,notify_staff_relat)<br />
            &nbsp;4&nbsp;将数据库中的表table1中的字段filed1以"00"打头的数据导出<br />
            &nbsp;&nbsp;exp&nbsp;</span></span><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;" mce_href="mailto:system/manager@TEST"><span style="font-family: Courier New"><span style="font-size: 10pt">system/manager@TEST</span></span></a><span style="font-family: Courier New"><span style="font-size: 10pt">&nbsp;file=d:\daochu.dmp&nbsp;tables=(table1)&nbsp;query=\"&nbsp;where&nbsp;filed1&nbsp;like&nbsp;'00%'\"</span></span></div>
            <div><span style="font-family: Courier New"><span style="font-size: 10pt">&nbsp;上面是常用的导出，对于压缩，既用winzip把dmp文件可以很好的压缩。<br />
            &nbsp;也可以在上面命令后面&nbsp;加上&nbsp;compress=y&nbsp;来实现。</span></span></div>
            <div><span style="font-family: Courier New"><span style="font-size: 10pt">数据的导入<br />
            &nbsp;1&nbsp;将D:\daochu.dmp&nbsp;中的数据导入&nbsp;TEST数据库中。<br />
            &nbsp;&nbsp;imp&nbsp;</span></span><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;" mce_href="mailto:system/manager@TEST"><span style="font-family: Courier New"><span style="font-size: 10pt">system/manager@TEST</span></span></a><span style="font-family: Courier New"><span style="font-size: 10pt">&nbsp;&nbsp;file=d:\daochu.dmp<br />
            &nbsp;&nbsp;imp&nbsp;</span></span><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#105;&#99;&#104;&#97;&#110;&#110;&#101;&#108;&#47;&#97;&#105;&#99;&#104;&#97;&#110;&#110;&#101;&#108;&#64;&#72;&#85;&#83;&#84;" mce_href="mailto:aichannel/aichannel@HUST"><span style="font-family: Courier New"><span style="font-size: 10pt">aichannel/aichannel@HUST</span></span></a><span style="font-family: Courier New"><span style="font-size: 10pt">&nbsp;full=y&nbsp;&nbsp;file=file=&nbsp;d:\data\newsmgnt.dmp&nbsp;ignore=y<br />
            &nbsp;上面可能有点问题，因为有的表已经存在，然后它就报错，对该表就不进行导入。<br />
            &nbsp;在后面加上&nbsp;ignore=y&nbsp;就可以了。<br />
            &nbsp;2&nbsp;将d:\daochu.dmp中的表table1&nbsp;导入<br />
            &nbsp;&nbsp;imp&nbsp;</span></span><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;" mce_href="mailto:system/manager@TEST"><span style="font-family: Courier New"><span style="font-size: 10pt">system/manager@TEST</span></span></a><span style="font-family: Courier New"><span style="font-size: 10pt">&nbsp;&nbsp;file=d:\daochu.dmp&nbsp;&nbsp;tables=(table1)<br />
            &nbsp;基本上上面的导入导出够用了。不少情况要先是将表彻底删除，然后导入。</span></span></div>
            <div><span style="font-family: Courier New"><span style="font-size: 10pt">&nbsp;注意：<br />
            &nbsp;操作者要有足够的权限，权限不够它会提示。<br />
            &nbsp;数据库时可以连上的。可以用tnsping&nbsp;TEST&nbsp;来获得数据库TEST能否连上。<br />
            附录一：<br />
            &nbsp;给用户增加导入数据权限的操作<br />
            &nbsp;第一,启动sql*puls<br />
            &nbsp;第二，以system/manager登陆<br />
            &nbsp;第三，create&nbsp;user&nbsp;用户名&nbsp;IDENTIFIED&nbsp;BY&nbsp;密码（如果已经创建过用户，这步可以省略）<br />
            &nbsp;第四，GRANT&nbsp;CREATE&nbsp;USER,DROP&nbsp;USER,ALTER&nbsp;USER&nbsp;,CREATE&nbsp;ANY&nbsp;VIEW&nbsp;,<br />
            &nbsp;&nbsp;DROP&nbsp;ANY&nbsp;VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,<br />
            &nbsp;&nbsp;DBA,CONNECT,RESOURCE,CREATE&nbsp;SESSION&nbsp;&nbsp;TO&nbsp;用户名字<br />
            &nbsp;第五,&nbsp;运行-cmd-进入dmp文件所在的目录,<br />
            &nbsp;&nbsp;imp&nbsp;userid=system/manager&nbsp;full=y&nbsp;file=*.dmp<br />
            &nbsp;&nbsp;或者&nbsp;imp&nbsp;userid=system/manager&nbsp;full=y&nbsp;file=filename.dmp<br />
            &nbsp;执行示例:<br />
            &nbsp;F:\Work\Oracle_Data\backup&gt;imp&nbsp;userid=test/test&nbsp;full=y&nbsp;file=inner_notify.dmp<br />
            &nbsp;屏幕显示<br />
            &nbsp;Import:&nbsp;Release&nbsp;8.1.7.0.0&nbsp;-&nbsp;Production&nbsp;on&nbsp;星期四&nbsp;2月&nbsp;16&nbsp;16:50:05&nbsp;2006<br />
            &nbsp;(c)&nbsp;Copyright&nbsp;2000&nbsp;Oracle&nbsp;Corporation.&nbsp;&nbsp;All&nbsp;rights&nbsp;reserved.<br />
            &nbsp;连接到:&nbsp;Oracle8i&nbsp;Enterprise&nbsp;Edition&nbsp;Release&nbsp;8.1.7.0.0&nbsp;-&nbsp;Production<br />
            &nbsp;With&nbsp;the&nbsp;Partitioning&nbsp;option<br />
            &nbsp;JServer&nbsp;Release&nbsp;8.1.7.0.0&nbsp;-&nbsp;Production<br />
            &nbsp;经由常规路径导出由EXPORT:V08.01.07创建的文件<br />
            &nbsp;已经完成ZHS16GBK字符集和ZHS16GBK&nbsp;NCHAR&nbsp;字符集中的导入<br />
            &nbsp;导出服务器使用UTF8&nbsp;NCHAR&nbsp;字符集&nbsp;(可能的ncharset转换)<br />
            &nbsp;.&nbsp;正在将AICHANNEL的对象导入到&nbsp;AICHANNEL<br />
            &nbsp;.&nbsp;.&nbsp;正在导入表&nbsp;&nbsp;"INNER_NOTIFY"&nbsp;&nbsp;4行被导入<br />
            &nbsp;准备启用约束条件...<br />
            &nbsp;成功终止导入，但出现警告。</span></span></div>
            <div><span style="font-family: Courier New"><span style="font-size: 10pt">附录二：<br />
            &nbsp;Oracle&nbsp;不允许直接改变表的拥有者,&nbsp;利用Export/Import可以达到这一目的.<br />
            &nbsp;先建立import9.par,<br />
            &nbsp;然后，使用时命令如下：imp&nbsp;parfile=/filepath/import9.par<br />
            &nbsp;例&nbsp;import9.par&nbsp;内容如下：<br />
            &nbsp;FROMUSER=TGPMS<br />
            &nbsp;TOUSER=TGPMS2（注：把表的拥有者由FROMUSER改为TOUSER，FROMUSER和TOUSER的用户可以不同）<br />
            &nbsp;ROWS=Y<br />
            &nbsp;INDEXES=Y<br />
            &nbsp;GRANTS=Y<br />
            &nbsp;CONSTRAINTS=Y<br />
            &nbsp;BUFFER=409600<br />
            &nbsp;file==/backup/ctgpc_20030623.dmp<br />
            &nbsp;log==/backup/import_20030623.log</span></span></div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
</span></p>
 <img src ="http://www.blogjava.net/JeromeKwok/aggbug/311985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/JeromeKwok/" target="_blank">Jerome Kwok</a> 2010-02-04 15:51 <a href="http://www.blogjava.net/JeromeKwok/articles/311985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>