﻿<?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-日志记录-随笔分类-数据库</title><link>http://www.blogjava.net/lidahe/category/21669.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 25 Jun 2007 17:39:48 GMT</lastBuildDate><pubDate>Mon, 25 Jun 2007 17:39:48 GMT</pubDate><ttl>60</ttl><item><title>A数据库用户导入B数据库用户时导入了原表空间</title><link>http://www.blogjava.net/lidahe/archive/2007/06/25/126204.html</link><dc:creator>Ken.Lee</dc:creator><author>Ken.Lee</author><pubDate>Mon, 25 Jun 2007 13:38:00 GMT</pubDate><guid>http://www.blogjava.net/lidahe/archive/2007/06/25/126204.html</guid><wfw:comment>http://www.blogjava.net/lidahe/comments/126204.html</wfw:comment><comments>http://www.blogjava.net/lidahe/archive/2007/06/25/126204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lidahe/comments/commentRss/126204.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lidahe/services/trackbacks/126204.html</trackback:ping><description><![CDATA[
		<p>我发现我已经很久没有更新Blog了..这是我在升级数据库时出现的问题.现在分享我的成果.<br />                                                                                                             J2EE技术交流群:8883709<br /><br />举例:<br />A数据库的A_User用户指定的表空间是tablespace1,B数据库的B_User用户指定的空间指定为tablespace2;使用用户A_User导出DMP文件导入到数据库B的用户B_User.用户B拥有DBA权限,这样会导致导入B_User用户时,存储的表空间为tablespace1,而不是tablespace2.</p>
		<p>解决方法:<br />在B_User上执行<br />revoke unlimited tablespace from tablespace2;</p>
		<p>--数据库B的B_User用户在tablespace1的限额为０<br />alter user B_User quota 0 on tablespace1;</p>
		<p>--自己的默认表空间tablespace1的限额为无限<br />alter user B_User quota unlimited on tablespace2;</p>
		<p>从数据库A中导出的dmp文件里记录了每个表的定义语句，这里边包括表空间信息的，也就是说记录了这个表的storage parameter，表空间是源数据库的，即tablespace1。<br />这时候需要让目标数据库，即数据库B的B_User用户在tablespace1的限额为０，而在其自己的默认表空间tablespace2的限额为无限，这样在导入时就会放在tablespace2表空间里了。<br /></p>
<img src ="http://www.blogjava.net/lidahe/aggbug/126204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lidahe/" target="_blank">Ken.Lee</a> 2007-06-25 21:38 <a href="http://www.blogjava.net/lidahe/archive/2007/06/25/126204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle数据导入导出imp/exp(转贴)</title><link>http://www.blogjava.net/lidahe/archive/2007/04/17/111137.html</link><dc:creator>Ken.Lee</dc:creator><author>Ken.Lee</author><pubDate>Tue, 17 Apr 2007 00:56:00 GMT</pubDate><guid>http://www.blogjava.net/lidahe/archive/2007/04/17/111137.html</guid><wfw:comment>http://www.blogjava.net/lidahe/comments/111137.html</wfw:comment><comments>http://www.blogjava.net/lidahe/archive/2007/04/17/111137.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/lidahe/comments/commentRss/111137.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lidahe/services/trackbacks/111137.html</trackback:ping><description><![CDATA[
		<p>功能：<a class="keyword" href="http://www.kehui.net/index.php?op=article&amp;action=keyword&amp;keyword=Oracle%CA%FD%BE%DD%B5%BC%C8%EB%B5%BC%B3%F6imp%2Fexp">Oracle数据导入导出imp/exp</a>就相当与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 />   exp <a href="mailto:system/manager@TEST">system/manager@TEST</a> file=d:\daochu.dmp full=y<br /> 2 将数据库中system用户与sys用户的表导出<br />   exp <a href="mailto:system/manager@TEST">system/manager@TEST</a> file=d:\daochu.dmp owner=(system,sys)<br /> 3 将数据库中的表table1 、table2导出<br />   exp <a href="mailto:system/manager@TEST">system/manager@TEST</a> file=d:\daochu.dmp tables=(table1,table2) <br /> 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出<br />   exp <a href="mailto:system/manager@TEST">system/manager@TEST</a> file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"<br />  <br />     上面是常用的导出，对于压缩我不太在意，用winzip把dmp文件可以很好的压缩。<br />                     不过在上面命令后面 加上 compress=y  就可以了</p>
数据的导入<br /> 1 将D:\daochu.dmp 中的数据导入 TEST数据库中。<br />   imp <a href="mailto:system/manager@TEST">system/manager@TEST</a>  file=d:\daochu.dmp<br />   上面可能有点问题，因为有的表已经存在，然后它就报错，对该表就不进行导入。<br />   在后面加上 ignore=y 就可以了。<br /> 2 将d:\daochu.dmp中的表table1 导入<br /> imp <a href="mailto:system/manager@TEST">system/manager@TEST</a>  file=d:\daochu.dmp  tables=(table1) <br /> <br /> 基本上上面的导入导出够用了。不少情况我是将表彻底删除，然后导入。<br /> <br />注意：<br /> 你要有足够的权限，权限不够它会提示你。<br /> 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。<br />（张贞亮2005-02-24作，不足之处请大家指正）<img src ="http://www.blogjava.net/lidahe/aggbug/111137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lidahe/" target="_blank">Ken.Lee</a> 2007-04-17 08:56 <a href="http://www.blogjava.net/lidahe/archive/2007/04/17/111137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>