﻿<?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-kevin-guan-随笔分类-oracle</title><link>http://www.blogjava.net/kevinguan/category/48551.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 11 May 2011 04:32:02 GMT</lastBuildDate><pubDate>Wed, 11 May 2011 04:32:02 GMT</pubDate><ttl>60</ttl><item><title>oracle imp/exp</title><link>http://www.blogjava.net/kevinguan/archive/2011/05/11/349997.html</link><dc:creator>KevinGuan</dc:creator><author>KevinGuan</author><pubDate>Wed, 11 May 2011 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/kevinguan/archive/2011/05/11/349997.html</guid><wfw:comment>http://www.blogjava.net/kevinguan/comments/349997.html</wfw:comment><comments>http://www.blogjava.net/kevinguan/archive/2011/05/11/349997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevinguan/comments/commentRss/349997.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevinguan/services/trackbacks/349997.html</trackback:ping><description><![CDATA[<p>Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件，imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库，一个用来测试，一个用来正式使用。<br />
&nbsp;<br />
执行环境：可以在SQLPLUS.EXE或者DOS（命令行）中执行，<br />
&nbsp;DOS中可以执行时由于 在oracle 8i 中&nbsp; 安装目录ora81BIN被设置为全局路径，<br />
&nbsp;该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。<br />
&nbsp;oracle用java编写，SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。<br />
&nbsp;SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类，完成导入导出功能。<br />
&nbsp;<br />
下面介绍的是导入导出的实例。<br />
数据导出：<br />
&nbsp;1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中<br />
&nbsp;&nbsp; exp system/manager@TEST file=d:\daochu.dmp full=y<br />
&nbsp;2 将数据库中system用户与sys用户的表导出<br />
&nbsp;&nbsp; exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)<br />
&nbsp;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 />
&nbsp;4 将数据库中的表table1中的字段filed1以"00"打头的数据导出<br />
&nbsp;&nbsp; exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=" where filed1 like '00%'"<br />
&nbsp;<br />
&nbsp; 上面是常用的导出，对于压缩，既用winzip把dmp文件可以很好的压缩。<br />
&nbsp; 也可以在上面命令后面 加上 compress=y 来实现。</p>
<p>数据的导入<br />
&nbsp;1 将D:\daochu.dmp 中的数据导入 TEST数据库中。<br />
&nbsp;&nbsp; imp system/manager@TEST&nbsp; file=d:\daochu.dmp<br />
&nbsp;&nbsp; imp aichannel/aichannel@TEST&nbsp; full=y&nbsp; file=d:\datanewsmgnt.dmp ignore=y<br />
&nbsp;&nbsp; 上面可能有点问题，因为有的表已经存在，然后它就报错，对该表就不进行导入。<br />
&nbsp;&nbsp; 在后面加上 ignore=y 就可以了。<br />
&nbsp;2 将d:daochu.dmp中的表table1 导入<br />
&nbsp;imp system/manager@TEST&nbsp; file=d:\daochu.dmp&nbsp; tables=(table1)<br />
&nbsp;<br />
&nbsp;基本上上面的导入导出够用了。不少情况要先是将表彻底删除，然后导入。<br />
&nbsp;<br />
注意：<br />
&nbsp;操作者要有足够的权限，权限不够它会提示。<br />
&nbsp;数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。</p>
<p>附录一：<br />
&nbsp;给用户增加导入数据权限的操作<br />
&nbsp;第一,启动sql*puls<br />
&nbsp;第二，以system/manager登陆<br />
&nbsp;第三，create user 用户名 IDENTIFIED BY 密码 （如果已经创建过用户，这步可以省略）<br />
&nbsp;第四，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&nbsp; TO 用户名字<br />
&nbsp;第五, 运行-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</p>
<p>&nbsp;执行示例:<br />
&nbsp;F:WorkOracle_Databackup&gt;imp userid=test/test full=y file=inner_notify.dmp</p>
<p>屏幕显示<br />
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006<br />
(c) Copyright 2000 Oracle Corporation.&nbsp; All rights reserved.</p>
<p>连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production<br />
With the Partitioning option<br />
JServer Release 8.1.7.0.0 - Production</p>
<p>经由常规路径导出由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 />
成功终止导入，但出现警告。</p>
<p>&nbsp;<br />
附录二：<br />
&nbsp;Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.<br />
&nbsp; 先建立import9.par,<br />
&nbsp; 然后，使用时命令如下：imp parfile=/filepath/import9.par<br />
&nbsp; 例 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 </p>
<p>&nbsp;</p>
<p>在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的&#8220;...&#8221;，以改变以往的闪烁的光标 </p>
<p>New:</p>
<p>exp/imp已经很好用了，但是唯一的确定是速度太慢，如果1张表的数据有个百千万的，常常导入导出就长时间停在这个表这，但是从Oracle 10g开始提供了称为数据泵新的工具expdp/impdp，它为Oracle数据提供高速并行及大数据的迁移。</p>
<p>&nbsp;imp/exp可以在客户端调用，但是expdp/impdp只能在服务端，因为在使用expdp/impdp以前需要在数据库中创建一个Directory</p>
<p>create directory dump_test as '/u01/oracle10g'；</p>
<p>grant read, write on directory dump_test to piner </p>
<p><br />
然后就可以开始导入导出</p>
<p>expdp piner/piner directory=dump_test dumpfile=user.dmp&nbsp; 导出用户的数据</p>
<p><br />
expdp piner/piner directory=dump_test dumpfile=table.dmp tables=test1,test2 导出表数据</p>
<p><br />
impdp piner/piner directory=dump_test dumpfile=user.dmp 导入该用户数据</p>
<p><br />
impdp piner/piner directory=dump_test dumpfile=table.dmp&nbsp; 导出表数据 </p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/kevinguan/aggbug/349997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevinguan/" target="_blank">KevinGuan</a> 2011-05-11 10:51 <a href="http://www.blogjava.net/kevinguan/archive/2011/05/11/349997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE 创建用户，表空间，权限</title><link>http://www.blogjava.net/kevinguan/archive/2011/05/11/349996.html</link><dc:creator>KevinGuan</dc:creator><author>KevinGuan</author><pubDate>Wed, 11 May 2011 02:50:00 GMT</pubDate><guid>http://www.blogjava.net/kevinguan/archive/2011/05/11/349996.html</guid><wfw:comment>http://www.blogjava.net/kevinguan/comments/349996.html</wfw:comment><comments>http://www.blogjava.net/kevinguan/archive/2011/05/11/349996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevinguan/comments/commentRss/349996.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevinguan/services/trackbacks/349996.html</trackback:ping><description><![CDATA[<p>-- 创建 RSMS 表空间<br />
CREATE SMALLFILE TABLESPACE "RSMS" DATAFILE 'C:\oracle\product\10.1.0\oradata\ORCL\RSMS' SIZE 1000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;<br />
-- 创建 RSMS_INDEX 表空间<br />
CREATE SMALLFILE TABLESPACE "RSMS_TEMP" DATAFILE 'C:\oracle\product\10.1.0\oradata\ORCL\RSMS_TEMP' SIZE 500M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;</p>
<p>-- 创建 RSMS 用户<br />
CREATE USER "RSMS" PROFILE "DEFAULT" IDENTIFIED BY "rsms20080310" DEFAULT TABLESPACE "RSMS" ACCOUNT UNLOCK;<br />
GRANT "CONNECT" TO "RSMS" WITH ADMIN OPTION;<br />
GRANT "DBA" TO "RSMS" WITH ADMIN OPTION;<br />
----删除用户<br />
drop user "WEB_GZ" cascade;//删除视图<br />
<br />
<br />
revoke unlimited tablespace from SLJGW;<br />
alter user SLJGW default tablespace SLJGW; <br />
alter user SLJGW quota unlimited on SLJGW; <br />
alter user SLJGW quota 0 on system;</p>
<img src ="http://www.blogjava.net/kevinguan/aggbug/349996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevinguan/" target="_blank">KevinGuan</a> 2011-05-11 10:50 <a href="http://www.blogjava.net/kevinguan/archive/2011/05/11/349996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>