oracle按用户导入导出数据
oracle 导出导入操作

oracle 导出导入操作基础知识:一、数据导出(exp.exe)1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochu.dmp文件中exp system/accp@orcl file=d:\daochu.dmp full=y2、将数据库orcl中scott用户的对象导出exp scott/accp@orcl file=d:\daochu.dmp owner=(scott)3、将数据库orcl中的scott用户的表emp、dept导出exp scott/accp@orcl file= d:\daochu.dmp tables=(emp,dept)4、将数据库orcl中的表空间testSpace导出exp system/accp@orcl file=d:\daochu.dmp tablespaces=(testSpace)二、数据导入(imp.exe)1、将d:\daochu.dmp 中的数据导入orcl数据库中。
imp system/accp@orcl file=d:\daochu.dmp full=y2、如果导入时,数据表已经存在,将报错,对该表不会进行导入;加上ignore=y即可,表示忽略现有表,在现有表上追加记录。
imp scott/accp@orcl file=d:\daochu.dmp full=y ignore=y3、将d:\daochu.dmp中的表emp导入imp scott/accp@orcl file=d:\daochu.dmp tables=(emp)ok,现在尝试导出数据首先查看字符集select userenv(‘language’) from dual;分别查看字符集是否相同,不相同的话更改一致,否则不能正常导入我在执行过程中出现错误error: ora-12712(解决办法)shutdown immediate;startup mount;ALTER SESSION SET SQL_TRACE=TRUE;ALTER SYSTEM ENABLE RESTRICTED SESSION;ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;ALTER SYSTEM SET AQ_TM_PROCESSES=0;ALTER DATABASE OPEN;set linesize 120;alter database character set zhs16gbk;RROR at line 1:ORA-12712: new character set must be a superset of old character setALTER DATABASE character set INTERNAL_USE zhs16gbk;ALTER SESSION SET SQL_TRACE=FALSE;shutdown immediate;STARTUP执行导出命令exp scott/cat@orcl wner=scott direct=y file=scott.dmp执行成功后将scott.dmp 拷贝至目标数据库执行导入命令imp scott/cat@orcl fromuser=scott touser=scott ignore=y file=d:\jzz.DMP。
oracle 导入导出数据库、删除用户以及该用户所有的对象

一、oracle数据库导入导出号令!Oracle数据导入导出imp/exp 在cmd下(安装oracle后已经设备好景象变量,可用该号令imp、exp)功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
大多景象都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丧失)。
Oracle有个益处,固然你的电脑不是办事器,然则你装了oracle客户端,并建树了连接(经由过程Net Configuration Assistant添加正确的办事定名,其实你可以想成是客户端与办事器端修了条路,然后数据就可以被拉过来了)如许你可以把数据导出到本地,固然可能办事器离你很远。
你同样可以把dmp文件从本地导入到远处的数据库办事器中。
哄骗这个功能你可以构建俩个雷同的数据库,一个用来测试,一个用来正式应用。
履行景象:可以在SQLPLUS.EXE或者DOS(号令行)中履行,DOS中可以履行时因为在oracle 8i 中安装目次\¥ora10g\BIN被设置为全局路径,该目次下有EXP.EXE与IMP.EXE文件被用来履行导入导出。
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,领导入导出看实例根蒂根基上就可以完成,因为导入导出很简单。
数据导出:1 将数据库TEST完全导出,用户名system 暗码manager 导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3 将数据库中的表table1 、table2导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1like ""00%""\"5.数据导出:exp hkb/hkb@boss_14 full=y file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbfull.log;导出重视事项:导出的是当前用户的的数据,当前用户若是有DBA的权限,则导出所稀有据!上方是常用的导出,对于紧缩我不太在意,用winzip把dmp文件可以很好的紧缩。
oracle的数据库的导入导出

oracle的数据库的导入导出从一个用户expdp导出再impdp导入到另一个用户(示例:讲scott用户里面的表全部迁移到新建的test用户里面)如果想导入的用户已经存在:1.导出之前需要做的一些操作,进入数据库,默认为sys用户SQL> create directory dumpdir as '/home/oracle/test_bk ';(该备份路径是需要手动创建的)SQL> grant read,write on directory dumpdir to scott(scott为源用户);导出用户expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp 示例:expdp scott/tiger directory=dumpdir dumpfile=scott.dmp2.导入之前需要做一些操作,进入数据库,默认为sys用户SQL> create directory dumpdir as '/home/oracle/test_bk ';(该备份路径是需要手动创建的)SQL> grant read,write on directory dumpdir to test(test为目标用户);导入用户impdp test/test directory=dumpdir dumpfile=scott.dmp REMAP_SCHEMA=scott:test full=y;如果想导入的用户不存在:1. 导出用户expdp user1/pass1 directory=dumpdirdumpfile=user1.dmp2. 导入用户impdp system/passsystem directory=dumpdirdumpfile=user1.dmp REMAP_SCHEMA=user1:user2 full=y;3. user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,必须修改user2的密码impdp遇到的错误C:\Documents and Settings\Administrator>impdp aaa/ccc directory=data_dump dumpfile=fromaaa.dmp logfile=IMP_DATA_20100618.LOG连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsORA-39001: 参数值无效ORA-39000: 转储文件说明错误ORA-39143: 转储文件"F:\ora10G_expdp\ic_price_fromlufang.dmp" 可能是原始的导出转储文件可恶的提示让我一直以为是版本的的问题,因为是同事给的dmp文件,用的又都是10.2.0版本,自然以为用的是expdp,所以一直用impdp导入,其他的权限都没问题,所以最后怀疑同事用的是exp,所以试了下imp导入,成功执行了。
Oracle导入导出数据的几种方式

Oracle导⼊导出数据的⼏种⽅式oracle导⼊导出数据1.导出dmp格式⽂件--备份某⼏张表exp smsc/smsc file=/data/oracle_bak/dmp/bakup0209_2.dmp tables=\(send_msg_his,send_msg,recv_msg_his,recv_msg\)--备份整个数据库--⽅式1exp smsc/smsc file=/data/oracle_bak/dmp/bakupsmmc0209_2.dmp full=y--⽅式2exp cop/cop@133.96.84.39:1521/coprule file=/home/oracle/cop_20160902.dmp owner=cop log=/home/oracle/cop.log--本机上exp zop/zop@orcl file= D:\zop_bak.dmp owner=zop log=D:\zop_ba.log2.导⼊dmp格式⽂件--数据的导⼊--1 将D:\daochu.dmp 中的数据导⼊ TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmpimp aichannel/aichannel@TEST full=y file=d:\datanewsmgnt.dmp ignore=y--上⾯可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进⾏导⼊。
-- 在后⾯加上 ignore=y 就可以了。
--2 将d:daochu.dmp中的表table1 导⼊imp system/manager@TEST file=d:\daochu.dmp tables=(table1)--基本上上⾯的导⼊导出够⽤了。
不少情况要先是将表彻底删除,然后导⼊。
注意:操作者要有⾜够的权限,权限不够它会提⽰。
数据库时可以连上的。
可以⽤tnsping TEST 来获得数据库TEST能否连上。
oracle数据库导入导出命令

Oracle数据导入导出imp/exp功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)这样你可以把数据导出到本地,虽然可能服务器离你很远。
你同样可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录\$ora10g\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp 中exp system/manager@TEST file=d:\daochu.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3 将数据库中的表table1 、table2导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
oracle数据的导入导出(两种方法三种方式)

oracle数据的导⼊导出(两种⽅法三种⽅式)⼤概了解数据库中数据的导⼊导出。
在oracle中,导⼊导出数据的⽅法有两种,⼀种是使⽤cmd命令⾏的形式导⼊导出数据,另⼀种是使⽤PL/SQL⼯具导⼊导出数据。
1,使⽤cmd命令⾏导⼊导出数据 1.1整库导出 整库导出:exp 管理员账号/密码 full=y;//参数full表⽰整库导出。
导出后会在当前⽬录下⽣成⼀个EXPDAT.DMP的⽂件,此⽂件为备份⽂件。
如果想导出数据到指定位置,并且取个名字,需要添加file参数。
例如:exp system/123456 file= C:\person.dmp full=y。
1.2整库导⼊ 整库导⼊:imp 管理员账号/密码 full=y file=C:\person.dmp。
1.3使⽤cmd命令按⽤户导出导⼊ 1.3.1 按⽤户导出:exp 管理员账号/密码 owner=⽤户名 file=C:\person.dmp。
1.3.2 按⽤户导⼊:imp 管理员账号/密码 file=C:\person.dmp fromuser=⽤户名。
1.4使⽤cmd命令按表导出导⼊ 1.4.1按表导出:exp 管理员账号/密码 file=person.dmp tables=t_person,t_student。
1.4.2按表导⼊:imp 管理员账号/密码 file =person.dmp tables=t_person,t_student。
2.)使⽤PL/SQL 开发⼯具导出导⼊数据 pl/sql⼯具包含三种⽅式导出oracle表结构和表数据,分别为:oracle export,SQL inserts,pl/sql developer。
它们的含义如下: 第⼀种oracle export:导出的是.dmp格式的⽂件,.dmp⽂件是⼆进制⽂件,可以跨平台,包含权限等。
第⼆种SQL inserts :导出的是.sql格式的⽂件,可以⽤⽂本编辑器查看,通⽤性⽐较好,效率不如第⼀种,适合⼩数据量的导⼊导出。
oracle11g数据库的导出导入-dp模式

1、导出数据库1)在服务器建立授权目录,用sqlplus执行如下代码进行授权,导出的数据库文件将自动放入此目录。
(或其它如plsql、seldevelope等工具的sql执行状态下)create or replace directory dumpdir as '/export/home/oracle/dpdmp';(windows系统则为d:\dpdmp)grant read,write on directory dumpdir to public;(或者grant read,write on directory dumpdir to system;)grant exp_full_database,imp_full_database to system;2) 按schema(也可理解为按用户)导出数据库(这个命令可在远端执行,不是非要在服务器本地执行。
)expdp system/123456@121.101.219.130:1521/orcl schemas=x5sys directory=dumpdir dumpfile=x5sys_20131128.dmpexpdp system/123456@121.101.219.130:1521/orcl schemas=x5doc directory=dumpdir dumpfile=x5doc_20131128.dmpexpdp system/123456@121.101.219.130:1521/orcl schemas=x5hr directory=dumpdir dumpfile=x5hr_20131128.dmpexpdp system/123456@121.101.219.130:1521/orcl schemas=bidmgr directory=dumpdir dumpfile=bidmgr_20131128.dmp3) 按表空间导出数据库(这个命令可在远端执行,不是非要在服务器本地执行。
oracle导入导出详解

总结了oracle的导入导出,希望能帮助大家一. 导出工具exp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binexp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。
2. 导出工具exp交互式命令行方式的使用的例子$exp test/test123@appdbEnter array fetch buffer size: 4096 > 回车Export file: expdat.dmp > m.dmp 生成导出的文件名(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3Export table data (yes/no): yes > 回车Compress extents (yes/no): yes > 回车Export done in ZHS16GBK character set and ZHS16GBK NCHAR character setAbout to export specified tables via Conventional Path ...Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要导出的表名. . exporting table CMAMENU 4336 rows exportedTable(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名nTable(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车Export terminated successfully without warnings.3. 导出工具exp非交互式命令行方式的例子$exp scott/tiger tables=emp,dept file=/directory/scott.dmp grants=y说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\<1600\" file=/directory/scott2.dmp说明:在exp里面加上导出emp的查询条件job='salesman' and sal<1600(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000Mlog=/directory2/username_exp.log参数文件username.par内容userid=username/userpasswordbuffer=8192000compress=ngrants=y说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改filesize指定生成的二进制备份文件的最大字节数(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等) 4. 命令参数说明关键字说明(默认)---------------------------------------------------USERID 用户名/口令FULL 导出整个文件(N)BUFFER 数据缓冲区的大小OWNER 所有者用户名列表FILE 输出文件(EXPDAT.DMP)TABLES 表名列表COMPRESS 导入一个范围(Y)RECORDLENGTH IO 记录的长度GRANTS 导出权限(Y)INCTYPE 增量导出类型INDEXES 导出索引(Y)RECORD 跟踪增量导出(Y)ROWS 导出数据行(Y)PARFILE 参数文件名CONSTRAINTS 导出限制(Y)CONSISTENT 交叉表一致性LOG 屏幕输出的日志文件STA TISTICS 分析对象(ESTIMATE)DIRECT 直接路径(N)TRIGGERS 导出触发器(Y)FEEDBACK 显示每x 行(0) 的进度FILESIZE 各转储文件的最大尺寸QUERY 选定导出表子集的子句下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导出可传输的表空间元数据(N) TABLESPACES 将传输的表空间列表二.导入工具imp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binimp导入工具将EXP形成的二进制系统文件导入到数据库中.它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库exp imp按用户导出导入实例
按用户导出再导入实例,任务要求如下:
◆1.从一台windows服务器 A 上导出 Test1 这个用户的所有对象,然后导入到linux服务器 B 上的 Test2用户。
(已知Test1密码为Test1passwd 或者用system用户导出也行)
◆2.B机器上Test2用户不存在,或Test2用户已经存在两种情况(用户存在相对比较复杂)
---------如果Test2用户已经存在(数据没用,可以删除),级联删除用户及所有对象(有可能遇到有人正在连接,删除不掉的情况方法参照下文),重新创建账号并赋权。
◆3.赋予适当的权限
操作步骤:
◆1.从 A 上导出数据文件到指定目录(目录名称自己定义,只要自己能找到就行,和用户名没有关系)
sqlplus /nolog
conn / as sysdba
exp Test1/Test1passwd owner=Test1 file=D:\files\Test1.dmp
◆2.在A机器上查看用户默认表空间,以便导入时创建一样的表空间
SQL> select username,default_tablespace from dba_users where username ='TEST1';
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
TEST1 CMIS
◆3.查看用户使用的表空间
SQL> select DISTINCT owner ,tablespace_name from dba_extents where owner like 'TEST1';
OWNER TABLESPACE_NAME
------------------------------ ------------------------------
TEST1 XSL
TEST1 CMIS
◆4.查看表空间对应的数据文件,以便在B上创建大小合适的数据文件。
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name in ('CMIS','XSL');
FILE_NAME BYTES TABLESPACE
------------------------------------------------------------
---------- ----------
D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS 8728346624 CMIS
D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS01.ORA 8204058624 CMIS
D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS02.ORA 4194304000 CMIS
D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS03.ORA 4194304000 CMIS
D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS04.ORA 4194304000 CMIS
D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS05.ORA 4194304000 CMIS
D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS06.ORA 4194304000 CMIS
D:ORACLEPRODUCT10.2.0ORADATACMISDBXSL.ORA 4194304000 XSL
D:ORACLEPRODUCT10.2.0ORADATACMISDBXSL01.ORA 4194304000 XSL
D:ORACLEPRODUCT10.2.0ORADATACMISDBXSL02.ORA 4194304000 XSL
◆5.检查B机器的表空间,看是否存在CMIS,XSL
select name from v$tablespace where name in ('XSL','CMIS');
查找不到,说明没有这个两个表空间,需要创建。
◆6.要导入数据的server没有xsl,cmis表空间。
创建
create tablespace xsl logging datafile
'/opt/oracle/product/10.2.0/oradata/xsl.dbf' size 15000M extent management local;
create tablespace cmis logging datafile
'/opt/oracle/product/10.2.0/oradata/cmis.dbf' size 37000M extent management local;
◆7.在服务器B上查找用户是否已经存在
SQL> select username from dba_users where username='TEST2';
接下来分为两种情况,如果不存在那么按照 [一] 方法,如果存在按照 [二] 【一】创建用户
create user Test2 identified by Test2passwd default tablespace cmis temporary tablespace temp profile default;
【二】如果用户存在
drop user Test2 cascade; (删除用户及其拥有的所有对象)
#此时如果这个用户在连接,drop会出错,必须先杀掉用户的session,然后再drop user
SELECT 'alter system kill session '''||SID||','||SERIAL#||''' immediate;' FROM V$SESSION WHERE USERNAME='TEST2';
#(如果用户正在连接,构建命令并杀掉)
#(上面的语句是构建出杀掉Test2用户session的语句)比如:
'ALTERSYSTEMKILLSESSION'''||SID||','||SERIAL#||'''IMMEDIATE;'
--------------------------------------------------------------------------------
alter system kill session '129,3570' immediate;
alter system kill session '131,2' immediate;
alter system kill session '133,572' immediate;
alter system kill session '135,1456' immediate;
alter system kill session '136,487' immediate;
alter system kill session '138,302' immediate;
alter system kill session '139,366' immediate;
再复制这些语句,粘贴到sqlplus中执行,来杀掉Test2的session。
-----create user Test2 identified by Test2passwd default tablespace cmis temporary tablespace temp profile default;(创建用户)-----grant connect,resource to Test2; (授权)
◆8.把文件从A机器上拷贝到B机器上。
假如拷贝过来放到tmp目录下
/tmp/Test1.dmp
◆9.最后在A机器上按用户导入数据
#一定注意执行imp时要退出sqlplus,在linux的shell下执行imp [oracle@test2 ~]$ imp Test2/Test2passwd fromuser =Test1 touser =test2 file=D:\xsldb.DMP log =app/oracle/file/log/DEV_PMODOC.log;。