oracle导入导出的问题
案例情景--在一次Oracle 数据库导出时 EXP-00008;ORA-00904EXP-00000 oracle不同版本导入导出规则
案例情景--在一次Oracle 数据库导出时EXP-00008;ORA-00904:EXP-00000: oracle不同版本导入导出规则案例情景--在一次Oracle 数据库导出时:C:\Documents andSettings\Administrator>exp lsxy/lsxy@lsxy_db file=E:\lsxy. dmp owner=lsxyExport: Release 11.2.0.1.0 - Production on 星期一11月26 14:07:18 2012 Copyright (c)1982, 2009, Oracle and/or its affiliates. All rights reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, Data Mining and Real Application Testing options已导出ZHS16GBK 字符集和AL16UTF16 NCHAR 字符集. 正在导出pre-schema 过程对象和操作. 正在导出用户JXUNICOM 的外部函数库名. 导出PUBLIC 类型同义词. 正在导出专用类型同义词. 正在导出用户JXUNICOM 的对象类型定义即将导出JXUNICOM 的对象…. 正在导出数据库链接. 正在导出序号. 正在导出簇定义. 即将导出JXUNICOM 的表通过常规路径…EXP-00008: 遇到ORACLE 错误904ORA-00904: "POLTYP": invalid identifierEXP-00000: 导出终止失败发生EXP-00008: 遇到ORACLE 错误904 的导出报错。
根据网上的资料和总结,分析可能是本地使用的exp导出工具的版本与数据库服务器端exp版本不一致导致。
oracle导入导出dmp文件的流程
oracle导⼊导出dmp⽂件的流程医保局说需要把表的dmp⽂件发给他们我的操作:把需要的数据放到表⾥⾯,然后⽤plsql⾥⾯的⼯具-->导出数据-->然后导出dmp后缀的⽂件然后医保导⼊该⽂件提⽰: IMP-00037:未知字符集标记然后我⾃⼰核对这⼀过程的操作是:把这些表及其数据复制到其他表信息⾥,然后导出dmp⽂件,然后delete表数据,然后执⾏导⼊dmp是可以,提⽰成功医保局的操作是直接执⾏导⼊dmp,他们并没有执⾏create表的语句,然后导⼊dmp所以不成plsql导⼊.sql和.dmp⽂件时,会经常⽤到,对于初学者来说可能没有那么简单,毕竟oracle数据库⽐较⿇烦。
下⾯是我⾃⼰导⼊.sql和.dmp⽂件的步骤。
1.导⼊.sql⽂件(sql⽂件是表结构⽂件,不包含数据)⼯具->导⼊表2.->sql插⼊关于可执⾏⽂件,该⽂件位置在oracle的安装位置下我的是:F:\app\Administrator\product\11.2.0\dbhome_1\BIN\sqlplus.exe3.->oracle插⼊,现在.bmp⽂件(.bmp⽂件是含有数据的储存⽂件)注意:不要勾选“显⽰”,否则导⼊表没有数据可执⾏⽂件与第⼆步的位置⼀样,我的是F:\app\Administrator\product\11.2.0\dbhome_1\BIN\imp.exe⽆论导⼊到出,都需要选择可执⾏⽂件,导出.dmp⽂件需要exp.exe可执⾏⽂件。
4.查看⽇志,可以看到导⼊.bmp⽂件成功5.查询数据,测试,成功。
总结⼀下1.导⼊.sql⽂件需要sqlplus.exe,导⼊.bpm⽂件需要imp.exe,导出.sql直接导出,导出.bmp⽂件需要exp.exe。
2.我曾试过直接导⼊.bmp⽂件,后来发现并没有数据。
3.oracle导⼊时没有勾选“显⽰”的时候,也没有数据。
原⽂:https:///yudianxiaoxiao/article/details/78231143。
Oracle中的导入导出表及数据
Oracle中的导入导出表及数据Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能可以构建两个相同的数据库。
1.用plsql实现1.1使用plsql连接oracle,点击工具——导出表1.2选择要导出的表1.3可执行文件在C:\oracle\product\10.2.0\db_1\bin 目录下导出是exp 导入是imp导出的为dmp文件1.4导入文件:点击工具——导入表在导入文件中选择要导入的表确认后点击导入2.用dos命令实现2.1Windows——R——cmd2.2输入dos命令:exp youngtop_us/ail@192.168.0.46/orcl10g file=F:/fileSys.dmp log=F:/fileSys.logstatistics=none tables=file_attach,file_tree,file_permissionps:exp user/password@主机地址file=存储位置log=存储位置statistics=none tables=tablename3.将数据导出到excel表中及将excel表数据导入数据库3.1选中要导出数据的表右键——查询数据3.2选中表中的数据邮件——复制到excel3.3在excel中保存3.4可以不按照数据库中的字段存放顺序,编辑形成Excel表中的数据3.5选中要导入的数据后另存一份txt文档3.6在plsql中点击工具——文本导入器进入到文本导入器的页面后,先点击“来自文本文件的数据”选项卡,然后点击打开按钮,选择数据录入.txt文件3.7在配置中进行配置如果不将标题名勾选上,则会导致字段名也当做记录被导入到数据库中,影响正确录入3.8点击导入按钮将数据导入oracle数据库中。
(Oracle管理)Oracle 数据泵导出和导入
(Oracle管理)Oracle 数据泵导出和导入Oracle10g数据导入导出简介Oracle10g引入了DATAPUMP提供的是一种基于服务器的数据提取和恢复的实用程序,DATAPUMP在体系结构和功能上与传统的EXPORT和IMPORT实用程序相比有了显著的提升。
DATAPUMP允许您停止和重启作业,查看运行的作业的状态,及对导入和导出的数据做限制。
注意:数据泵文件与传统的EXP/IMP数据转储文件是不兼容的。
以下是DATAPUMP的几个优点介绍:1.数据泵(DataPump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。
2.通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。
3.数据泵通过新的API来建立和管理,这些新的工作主要由DBMS_DATAPUMP来完成。
新的导入/导出工具完全成为了一个客户端应用,通过IMPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以退出连接,任务会在server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改创建DIRECTORY按表空间导出:Expdpsystem/mingyue@HS2008dumpfile=tablespace_test.dmptablespaces=HS_HIS_DATA,HS_HIS_IDXlogfi le=tablespace_test.logdirectory=TEST_EXPDPjob_name=hs_hisjob6;导出整个数据库:expdpsystem/mingyue@HS2008dumpfile=full.dmpfull=ylogfile=full.logdirectory=TEST_EXPDPjob_name =hs_hisjob6;使用exclude,include导出数据Include导出用户中指定类型的指定对象仅导出hs_his用户下以HISFU开头的所有表包含与表相关的索引,备注等不包含过程等其它对象类型:expdphs_his/handsome@HS2008dumpfile=include_1.dmplogfile=include_1.logdirectory=TEST_EXPDP job_name=job_hisjob7include=TABLE:\"LIKE\'HISFU%\'\";导出hs_his用户下排除HISFU开头的所有表:expdpsystem/mingyue@HS2008schemas=hs_hisdumpfile=include_1.dmplogfile=include_1.logdirecto ry=TEST_EXPDPjob_name=job_hisjob7include=TABLE:\"NOTLIKE\'HISFU%\'\";仅导出hs_his用户下的所有存储过程:expdpsystem/mingyue@HS2008schemas=hs_hisdumpfile=include_1.dmplogfile=include_1.logdirectory= TEST_EXPDPjob_name=job_hisjob7include=PROCEDURE;Exclude导出用户中指定类型的指定对象导出hs_his用户下除出TABLE类型以外的所有对象,如果表不导出那么与表相关的索引,约束等与表有关联的对象类型也不会被导出:expdpsystem/mingyue@HS2008schemas=hs_hisdumpfile=exclude_1.dmplogfile=exclude_1.logdirect ory=TEST_EXPDPjob_name=job_hisjob7exclude=TABLE;导出hs_his用户下排除HISFU开头的所有表:expdphs_his/handsome@HS2008dumpfile=include_1.dmplogfile=include_1.logdirectory=TEST_EXPD Pjob_name=job_hisjob7exclude=TABLE:\"LIKE\'HISFU%\'\";导出hs_his用户下的所有对象,但是对于表类型只导出以HISFU开头的表:expdphs_his/handsome@HS2008dumpfile=include_1.dmplogfile=include_1.logdirectory=TEST_EXPD Pjob_name=job_hisjob7exclude=TABLE:\"NOTLIKE\'HISFU%\'\";注意:1.如果content=data_only那么导出时就不能使用exclude,include 2.LINUX及UNIX对于特殊字符都要加一个转义字符如’()等这些字符在参考连接:/edeed/blog/item/9e3b9e2fb2209c3b1f308915.html http:///hzfsai/blog/item/8f1c2d4c4cd346f7d62afcab.html。
oracle导入导出参数
oracle导入导出参数摘要:1.Oracle 导入导出参数的概念与作用2.Oracle 导入导出参数的分类3.Oracle 导入导出参数的具体使用方法4.Oracle 导入导出参数的注意事项5.Oracle 导入导出参数的实际应用案例正文:一、Oracle 导入导出参数的概念与作用Oracle 是一款广泛应用于企业级数据管理的关系型数据库管理系统,其强大的数据处理能力深受用户喜爱。
在Oracle 中,导入导出参数是一种用于控制导入导出过程的设置,可以帮助用户更精确地完成数据导入导出操作。
参数可以用于控制数据的传输方式、数据字符集、数据类型等,从而确保数据的准确性和完整性。
二、Oracle 导入导出参数的分类Oracle 导入导出参数主要分为以下几类:1.数据源参数:这类参数主要用于指定数据源的类型、位置、用户名和密码等信息,以便Oracle 能够正确连接到数据源并读取数据。
2.数据传输方式参数:这类参数用于控制数据传输的方式,如批量导入、多线程导入等,以提高数据导入的效率。
3.数据字符集参数:这类参数用于指定数据的字符集,以便Oracle 能够正确识别和处理数据中的字符。
4.数据类型参数:这类参数用于指定数据的类型,以便Oracle 能够将数据正确地插入到目标表中。
5.其他参数:除了上述几类参数之外,还有其他一些参数,如错误处理参数、日志记录参数等,用于控制导入导出过程中的各种设置。
三、Oracle 导入导出参数的具体使用方法在使用Oracle 导入导出参数时,需要按照以下步骤进行操作:1.登录到Oracle 数据库管理系统,并进入SQL*Plus 或SQL Developer 等工具。
2.在工具中,使用"SELECT * FROM v$parameter"语句查询当前所有的参数设置。
3.根据需要,修改相应的参数值。
例如,如果要修改数据源参数,可以使用"ALTER PARAMETER"语句,如:"ALTER PARAMETER dat 源_parameTER = "新值""。
Oracle11G导入导出(imp和exp)少表解决方法
Oracle 11G R2 用exp无法导出空表解决方法Oracle 11G在用EXPORT导出时,空表不能导出11G R2中有个新特性,当表无数据时,不分配segment,以节省空间解决方法:一、insert一行,再rollback就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。
导出时则可导出空表。
二、设置deferred_segment_creation 参数该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
修改SQL语句:alter system set deferred_segment_creation=false scope=both;需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。
如需导出之前的空表,只能用第一种方法。
三、用以下这句查找空表select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表,注意:数据库插入数据前,修改11g_R2参数可以导出空表查找空表select 'alter table '||table_name||' allocate extent;' from user_tables wherenum_rows=0四、Oracle 10g以后增加了expdp和impdp工具,用此工具也可以导出空的表oracle expdp/impdp 用法详解1)创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create directory db_bak as 'd:\test\dump';2)查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)select * from dba_directories;3)给system用户赋予在指定目录的操作权限,最好以system等管理员赋予。
Oracle各版本之间Dmp文件的导入导出问题
Oracle各版本之间Dmp⽂件的导⼊导出问题
经常做整个数据迁移时遇到下列问题:
1、不是有效的导出⽂件,头部验证失败;
2、EXP-00056: 遇到 ORACLE 错误 6550
ORA-06550: line 1, column 41:
PLS-00302: component 'SET_NO_OUTLINES' must be declared
ORA-06550: line 1, column 15:
PL/SQL: Statement ignored
EXP-00000: 导出终⽌失败
关于导⼊导出问题:
1、在执⾏导出时客户端exp命令和服务器端Oracle版本要⼀致;
2、Oracle10G以上使⽤expdp、impdp
⾼版本导出dmp导⼊低版本Oralce时经常遇到“不是有效的导出⽂件,头部验证失败”这种类似错误,可以通过⼯具进⾏dmp⽂件的修改。
详细见:
导出错误:
在执⾏exp导出命令是经常遇到类似”EXP-00056: 遇到 ORACLE 错误 6550“这种错误,这⼀般是执⾏命令的客户端Oralce版本与服务器不符时,可以换个客户端解决。
Oracle数据导入导出详细步骤
Oracle 数据导入导出详细步骤说明:1.请先设置好 oracle 实例的环境变量 [grneas 是当前已安装的数据库实例名 ]Windows 下在 cmd 命令窗口执行: set ORACLE_SID=grneas Linux/AIX 下在终端窗口执行: exportORACLE_SID=grneasWindows 下查看该变量是否正确的命令:echo %ORACLE_SID%Linux/AIX 下查看该变量是否正确的命令: echo $ORACLE_SID 2.进入 sqlplus 窗口的命令:所有操作系统都用: sqlplus /nologconn / as sysdba 一、 Oracle 数据导出(备份)1.创建目录(导出文件存放位置)在 sqlplus 窗口下执行:grant read,write on directory expdpdir to system,grneas;其中: expdpdir 为目录名, grneas 是 EAS 用户名3.数据导出windows 在 cmd 窗口, linux 、AIX 在终端 ssh 窗口直接执行:(不要进入 sqlplus 窗口)expdp grneas/kingdee@grneas schemas=grneasdirectory=expdpdirdumpfile=grneas_20110706.dmplogfile=grneas_20110706.log 说明: 1).以上命令要在同一行输入再回车2).其中的 grneas/kingdee@grneas 是指要连接的数据库实例、用户及密码,若已在前面设置好环境变量 ORACLE_SID 为当前要导出的实例,则可不加 @grneas3).schemas=grneas表示要导出的 EAS 用户(方案)为 grneas, 在oracle 下,数据库对象在不同用户间是隔离的,每个用户都有自己的一些表、视图等,所以我们只要导出 EAS 用户的数据就可以了4).directory=expdpdir 表示导出时使用的目录,也就是文件存放的位置5).dumpfile=grneas_20110706.dmp 表示导出的数据文件名6).logfile=grneas_20110706.log 表示导出日志文件名,也存放在相同目录下二、 Oracle 数据导入(还原)以下是将原 grneas 数据备份还原到新账套 grneas21.创建表空间在 sqlplus 窗口下执行:create tablespaceEAS_D_grneas2_STANDARD datafile'/oradata/test/EAS_D_grneas2_STANDARD.dbf' size 2000m;以上命令创建数据表空间,要在同一行下回车执行 create temporarytablespace EAS_T_grneas2_STANDARD tempfile'/oradata/test/EAS_T_grneas2_STANDARD.dbf' size 500m;以上命令创建临时表空间,要在同一行下回车执行2.设置表空间自动增长在 sqlplus 窗口下执行:alter database datafile'/oradata/test/EAS_D_grneas2_STANDARD.dbf' autoextend on;alter database tempfile'/oradata/test/EAS_T_grneas2_STANDARD.dbf' autoextend on;3.创建目录(若目录已创建,可以略去不做,准备导入的备份文件要放在此目录下)在 sqlplus 窗口下执行: create user grneas2 identified by kingdee default tablespace EAS_D_grneas2_STANDARD temporary tablespace EAS_T_grneas2_STANDARD; 说明:identified by kingdee 表示密码为 kingdee 5.用户授权grant connect,resource,dba to grneas2;6.目录授权grant read,write on directory expdpdir tosystem,grneas2;7•数据导入(将原grneas账套恢复到一个新的 grneas2账套)impdp grneas2/kingdee@grneas directory=expdpdirdumpfile=grneas_20110706.dmplogfile=impgrneas_20110706.l og schemas=grneasremap_schema=grneas:grneas2remap_tablespace=EAS_D_grneas_STANDARD:EAS_D_grneas2_STANDARD,EAS_T_grneas_STANDARD:EAS_T_grneas2_STANDARD--sqlfile=script.sql ( 生成 SQL 脚本 )说明: 1).以上命令要在同一行输入再回车2).其中的grneas2/kingdee@grneas是指要连接的数据库实例、用户及密码,若已在前面设置好环境变量 ORACLE_SID 为当前要导入的实例,则可不加 @grneas3).schemas=grneas表示要导入的原 EAS 用户(方案)为grneas4).directory=expdpdir 表示导入时使用的目录,也就是文件存放的位置5).dumpfile=grneas_20110706.dmp 表示要导入的数据文件6).logfile=impgrneas_20110706.log 表示导入时产生的日志文件7).remap_schema=grneas:grneas2表示导入的数据也由原来的 EAS_D_grneas_STANDARD 改为存储到 EAS_D_grneas2_STANDARD 表空间9).--sqlfile=script.sql ( 生成 SQL 脚本)表示只生成脚本,有加这个参数就只生成脚本没有导入数据,要查看脚本才加这个参数,否则在导入的时候,就不要加这个参数注意区别大小写……其它 oracle 命令查看用户与表空间Select * from dba_users;查看锁表进程 SQL 语句 1:select sess.sid,sess.serial#,lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_modefrom v$locked_object lo,dba_objects ao, v$session sesswhere ao.object_id = lo.object_id andlo.session_id = sess.sid;查看锁表进程 SQL 语句 2:select * from v$session t1, v$locked_objectt2 where t1.sid = t2.SESSION_ID;杀掉锁表进程:如有記錄則表示有 lock ,記錄下 SID 和 serial# ,將記錄的ID 替換下面的 738,1429,即可解除 LOCK alter system kill session '738,1429';数据库用户被锁定时解锁命令alter user theas account unlock;启动 EMemctl start dbconsole。
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. 整个数据库:导出数据库中所有对象。
oracle使用expdp、impdp和exp、imp导入导出表及表结构
oracle使⽤expdp、impdp和exp、imp导⼊导出表及表结构使⽤expdp、impdp和exp、imp时应该注重的事项:1、exp和imp是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。
2、expdp和impdp是服务端的⼯具程序,他们只能在oracle服务端使⽤,不能在客户端使⽤。
3、imp只适⽤于exp导出的⽂件,不适⽤于expdp导出⽂件;impdp只适⽤于expdp导出的⽂件,⽽不适⽤于exp导出⽂件。
4、对于10g以上的服务器,使⽤exp通常不能导出0⾏数据的空表,⽽此时必须使⽤expdp导出。
exp、imp导⼊导出sqlplus 进⼊数据库中导出直接在命令⾏下写命令1.导出⾃⼰的表exp userid=scott/tiger@myoral tables=(emp,dept) file=/opt/e1.dmp2.导出其它⽅案的表如果⽤户要导出其它⽅案的表,则需要dba的权限或是exp_full_database的权限,⽐如system就可以导出scott的表exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp3. 导出表的结构exp userid=scott/tiger@accp tables=(emp) file=/opt/e3.dmp rows=n4. 使⽤直接导出⽅式exp userid=scott/tiger@accp tables=(emp) file=/opt/e4.dmp direct=y这种⽅式⽐默认的常规⽅式速度要快,当数据量⼤时,可以考虑使⽤这样的⽅法。
这时需要数据库的字符集要与客户端字符集完全⼀致,否则会报错导出⽅案导出⽅案是指使⽤export⼯具导出⼀个⽅案或是多个⽅案中的所有对象(表,索引,约束...)和数据。
并存放到⽂件中1. 导出⾃⼰的⽅案exp userid=scott/tiger@myorcl owner=scott file=/opt/scott.dmp2. 导出其它⽅案如果⽤户要导出其它⽅案,则需要dba的权限或是exp_full_database的权限,⽐如system⽤户可以导出任何⽅案exp userid=system/manager@myorcl owner=(system,scott) file=/opt/system.dmp导出数据库导出数据库是指利⽤export导出所有数据库中的对象及数据,要求该⽤户具有dba的权限或者是exp_full_database权限增量备份(好处是第⼀次备份后,第⼆次备份就快很多了)exp userid=system/manager@myorcl full=y inctype=complete file=/opt/all.dmp导⼊1. 导⼊⾃⼰的表imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp2. 导⼊表到其它⽤户要求该⽤户具有dba的权限imp_full_database imp userid=system/tiger@myorcl tables=(emp) file=/opt/xx.dmp touser=scott3. 导⼊表的结构,只导⼊表的结构⽽不导⼊数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp rows=n4. 导⼊数据如果对象(如⽐表)已经存在可以只导⼊表的数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp ignore=y导⼊⽅案导⼊⽅案是指使⽤import⼯具将⽂件中的对象和数据导⼊到⼀个或是多个⽅案中。
Oracle数据导入导出impexpsp2-0734:未知的命令开头imp忽略了剩余行默认。。。
Oracle数据导⼊导出impexpsp2-0734:未知的命令开头imp忽略了剩余⾏默认。
sp2-0734:未知的命令开头'imp 忽略了剩余⾏默认分类应该是在cmd的dos命令提⽰符下执⾏,⽽不是在sqlplus⾥⾯。
但是格式⼀定要类似于:imp PERSONNEL_MANAGE/MWQ@DBSQL full=y file=C:\personnel_manage.dmpignore=y谨以此纪念我的粗⼼。
我错了。
imp 命令是在dos提⽰符下执⾏的。
直接cmd后执⾏⽽不是在sql下执⾏的数据导出: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 将数据库中的表inner_notify、notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"上⾯是常⽤的导出,对于压缩,既⽤winzip把dmp⽂件可以很好的压缩。
也可以在上⾯命令后⾯加上 compress=y 来实现。
数据的导⼊1 将D:daochu.dmp 中的数据导⼊ TEST数据库中。
Oracle BLOB 字段导入导出问题
Oracle BLOB 字段导入导出问题博客分类:Oracleoracleblobjava一、案例假如有t1和t2在表空间tbs1上,其中t1有blob字段,现在在另外的一台机子上建了实例,表空间名为tbs2,使用imp倒入的时候,t2正常倒入,t1不能倒入,出现错误"IMP-00017: 由于 ORACLE 错误 959, 以下语句失败:"CREATE TABLE "t1"...............IMP-00003: 遇到 ORACLE 错误 959ORA-00959: tablespace 'tbs1' does not exist"我是这样解决的imp tables = t1 indexfile = temp.sql- 编辑 temp.sql 只保留所需的建表命令并指定表空间为tbs2- 以表的所有者执行temp.sql- imp tables = t1 ignore = Y二、java示例blob是单独分块的,java中获取oracle blob字段值,为了防止乱码应该使用getBlob()这个oracle特有的方法Java代码1.ByteArrayOutputStream baos = new ByteArrayOutputStream();2.if (queryResult.next()) {3. tfzn018KtfjxxPO.setTec_attachid(queryResult.getLong("TEC_ATTACHID"));4. tfzn018KtfjxxPO.setTec_attachpostfix(queryResult.getString("TEC_ATTACHPOSTFIX"));5. java.sql.Blob blob = queryResult.getBlob("TEC_ATTACHCONTENT");6. InputStream is = blob.getBinaryStream();7. int bytesRead = 0;8. byte[] buffer = new byte[8192];9. // 从输入流读到字节数组10. while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {11. // 从字节数组到输出流12. baos.write(buffer, 0, bytesRead);13. }14. byte[] bufferFile = baos.toByteArray();15. tfzn018KtfjxxPO.setTec_attachcontent(bufferFile);16. mit();17.}三、定义BLOB、CLOB、和 NCLOB:它们在数据库中要么存储在表中,要么存储在单独的段或表空间中。
oracle中exp,imp(导入,导出)的使用详解
oracle中exp,imp(导⼊,导出)的使⽤详解今天说说Oracle数据库的导⼊(imp.exe)和导出(exp.exe)命令的使⽤,我们的电脑⾥⾯安装完Oracle或OracleClient的时候,在我们的安装⽬录⾥⾯就有这两个命令了,⼀般是在你的Oracle安装⽬录下⾯的bin⽂件夹下⾯会有exp.exe和imp.exe这两个⽂件,它们都是在命令⾏下运⾏,⾸先打开你的CMD程序,然后切换到Oracle的bin⽬录下⾯。
下⾯就看看这两个命令的具体⽤法:基本语法和实例:1、EXP:有三种主要的⽅式(完全、⽤户、表)1、完全:EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y如果要执⾏完全导出,必须具有特殊的权限2、⽤户模式:EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC这样⽤户SONIC的所有对象被输出到⽂件中。
3、表模式:EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)这样⽤户SONIC的表SONIC就被导出2、IMP:具有三种模式(完全、⽤户、表)1、完全:IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y2、⽤户模式:IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC这样⽤户SONIC的所有对象被导⼊到⽂件中。
必须指定FROMUSER、TOUSER参数,这样才能导⼊数据。
3、表模式:EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)这样⽤户SONIC的表SONIC就被导⼊。
Oracle数据导入导出impexp:未知的命令开头。。。忽略了剩余的行
Oracle数据导⼊导出impexp:未知的命令开头。
忽略了剩
余的⾏
Oracle数据导⼊导出imp/exp 报错,错误提⽰为:未知的命令开头。
忽略了剩余的⾏
后来查询资料才知道应该在cmd的dos命令窗⼝直接执⾏,⽽不是sqlplus.exe
相关的导出命令格式如下:
a.将数据库TEST完全导出,⽤户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
b.将数据库中system⽤户与sys⽤户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
c.将数据库中的表A、B导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(A,B)
相关的导⼊命令格式如下:
a. 将D:\daochu.dmp 中的数据导⼊ TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
imp aichannel/aichannel@HUST full=y file= d:\data\newsmgnt.dmp ignore=y
b. 将d:\daochu.dmp中的表table1 导⼊
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)。
oracle导入数据库imp导入问题总结
oracle导⼊数据库imp导⼊问题总结⼀、导⼊命令1、单个⽂件导⼊imp hn_dw/hn_dw file=/home/oracle/test.dmp log=/home/oracle/test.log full=y commit=y ignore=yimp hn_dw/hn_dw (⽤户名/密码)file=/home/oracle/test.dmp(⽂件路径) log=/home/oracle/test.log(⽇志路径) full=y commit=y ignore=y参数解释:2、多个⽂件导⼊imp hn_dw/hn_dw file=\(test01.dmp,test02.dmp,test03.dmp\) log=hn_log/test.log full=y commit=y ignore=yimp hn_dw/hn_dw(⽤户名/密码) file=\(test01.dmp,test02.dmp,test03.dmp\) (多个⽂件)log=hn_log/test.log full=y commit=y ignore=y ⼆、查看表空间使⽤率SELECT a.tablespace_name "表空间名",total "表空间⼤⼩",free "表空间剩余⼤⼩",(total - free) "表空间使⽤⼤⼩",total / (1024 * 1024 * 1024) "表空间⼤⼩(G)",free / (1024 * 1024 * 1024) "表空间剩余⼤⼩(G)",(total - free) / (1024 * 1024 * 1024) "表空间使⽤⼤⼩(G)",round((total - free) / total, 4) * 100 "使⽤率 %"FROM (SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spaceGROUP BY tablespace_name) a,(SELECT tablespace_name, SUM(bytes) totalFROM dba_data_filesGROUP BY tablespace_name) bWHERE a.tablespace_name = b.tablespace_name三、查看表空间数据⽂件1、输⼊命令bai: sqlplus / as sysdba2、select , ?from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;四、扩充表空间alter tablespace PARTNER_DBS add datafile '/home/orcl/app/oracle/product/12.1.0_1sscms1.dbf' size 24576m表空间名:PARTNER_DBS表空间数据⽂件路径: /home/orcl/app/oracle/product/12.1.0/db_1/PARTNER_DBS .DBF2、查看表空间是否开启了⾃动扩展的功能SELECT T.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUSFROM DBA_TABLESPACES T, DBA_DATA_FILES DWHERE T.TABLESPACE_NAME = D.TABLESPACE_NAMEORDER BY TABLESPACE_NAME, FILE_NAME;3、扩⼤表空间的四种⽅法:1、增加数据⽂件ALTER TABLESPACE ***_TRD ADD DATAFILE‘D:\\PRODUCT\10.2.0\ORADATA\DBFILE\TRD_2.DBF’ SIZE 1024M;2、增加数据⽂件并允许⾃动增长ALTER TABLESPACE ***_TRD ADD DATAFILE‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD_2.DBF’ SIZE 1024M AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;3、允许已存在的数据⽂件⾃动增长ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD.DBF’AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;4、⼿⼯改变已存在数据⽂件的⼤⼩ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD.DBF’RESIZE 10240M;五、查看oracle⽤户下所有表select * from dba_tables where owner in ('⽤户名');或者当前⽤户select * from user_tables;六、覆盖之前的表数据oracle10g之后impdp的table_exists_action参数impdp username/password table_exists_action=truncate directory=DATA_PUMP_DIR dumpfile=expdpfilename.dmp logfile=implog.log table_exists_action:skip 是如果已存在表,则跳过并处理下⼀个对象;append是为表增加数据;truncate是截断表,然后为其增加新数据;replace是删除已存在表,重新建表并追加数据;注:使⽤imp命令导⼊的话ignore=y就是覆盖;七、如何查看dmp⽂件是哪个⽤户导出1、打开dmp⽂件找关键词CONNECT 后⾯的bai就是对⽅的⽤户名,执⾏imp userid=⽤户名/密码@orcl fromuser=原来的旧⽤户 touser=新的⽤户file=d:\xxxx.dmp命令成功导⼊,已执⾏检测过。
Oracle数据泵方式导入导出
一、EXPDP和IMPDP使用说明Oracle Database 10g引入了最新的数据泵(Data Pump)技术,数据泵导出导入(EXPDP和IMPDP)的作用1)实现逻辑备份和逻辑恢复.2)在数据库用户之间移动对象.3)在数据库之间移动对象4)实现表空间搬移.二、数据泵导出导入与传统导出导入的区别在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项:1) EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。
2) EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
3) IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。
数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.【pump特点】与原有的export和import使用程序相比,oracle的data pump工具的功能特点如下:1) 在导出或者导入作业中,能够控制用于此作业的并行线程的数量。
2) 支持在网络上进行导出导入,而不需要是使用转储文件集。
3) 如果作业失败或者停止,能够重新启动一个data pump作业。
并且能够挂起恢复导出导入作业。
4) 通过一个客户端程序能够连接或者脱离一个运行的作业。
5) 空间估算能力,而不需要实际执行导出。
6) 可以指定导出导入对象的数据库版本。
允许对导出导入对象进行版本控制,以便与低版本数据库兼容。
三、导入导出操作1.导出数据1.1在数据库服务端,用system用户通过sqlplus命令登录到oracle,sqlplus logis/logis@logis_local;1.2在oracle中创建目录,如下:CREATE DIRECTORY LOGIS_EXP_DIR AS 'd:\data';注意:d:\data 这个目录必须是磁盘上实际存在的,可以是其他目录名称和路径。
Oracle导入导出字符集乱码问题
Oracle 导入导出字符集乱码问题导出/导入与字符集进行数据的导入导出时,我们要注意关于字符集的问题。
在EXP/IMP过程中我们需要注意四个字符集的参数:导出端的客户端字符集,导出端数据库字符集,导入端的客户端字符集,导入端数据库字符集。
我们首先需要查看这四个字符集参数。
查看数据库的字符集的信息:SQL> select * from nls_database_parameters;PARAMETER VALUE--------------------------------------------------------------------------------------------------------------NLS_LANGUAGE AMERICANNLS_TERRITORY AMERICANLS_CURRENCY $NLS_ISO_CURRENCY AMERICANLS_NUMERIC_CHARACTERS .,NLS_CHARACTERSET ZHS16GBKNLS_CALENDAR GREGORIANNLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE AMERICANNLS_SORT BINARYNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZMNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM NLS_DUAL_CURRENCY $NLS_COMP BINARYNLS_NCHAR_CHARACTERSET ZHS16GBKNLS_RDBMS_VERSION 8.1.7.4.1NLS_CHARACTERSET:ZHS16GBK是当前数据库的字符集。
oracle 11g 数据泵导入导出方法
oracle 11g 数据泵导入导出方法
工具/原料电脑
安装好的oracle 11g 软件
方法/步骤1:
打开开始菜单中的运行
方法/步骤2:
打开以后,在运行框中输入CMD,点击确定
方法/步骤3:
运行以下命令:
sqlplus system/密码
方法/步骤4:
2 创建数据导出目录expnc_dir为目录名,'E:\ncdatabak'为数据库实际目录,命令如下:
create directory expnc_dir as 'E:\ncdatabak';
方法/步骤5:
为oracle用户授予访问数据目录的权限,命令如下:Grant read,write on directory expnc_dir to dxzyjt;
方法/步骤6:
执行数据泵出命令,注意一定要在Cmd下执行,不能登录sqlplus后执行。
expdp dxzyjt/dxzyjt@ncdata_192.168.1.224 directory=expnc_dir dumpfile=ncdatabak.dmp schemas=dxzyjt logfile=ncdatabak.log; 备份界面如下:
方法/步骤7:
以上是导出的步骤,导入与导出的步骤基本一样,有不清楚的可以联系我。
Oracle 11g的数据库导入导出
oracle 11g 数据库导入导出一、导入数据库1、新建一个表空间,表空间的名字、大小请根据具体项目进行调整。
--建立表空间sql语句create tablespace raxmdatafile 'E:\11g\oradata\orcl\raxm.dbf'size 2048mautoextend on next 32m maxsize 4096m2、新建一个用户,要注意选择默认的表空间、对角色权限、系统权限进行授权,如下图所示:3、将要导入的数据库文件拷到oracle 11 g安装目录下,我oracle 11g 的安装目录是:E:oracle11g\admin\orcl\dpdmp,我就将数据库文件拷到该目录下,并将要导入的数据库文件重命名为:expdat.dmp,这里一定要重命名为这个名字,因为第4步的导入数据库默认的路径就是E:oracle11g\admin\orcl\dpdmp,导入的数据库文件为expdat.dmp,操作如下图所示:4、打开控制台,输入impdp rays/1,这里的rays指的是你刚才建立的用户,1指的是该用户的密码。
5、为了安全起见,导入完成之后,去数据库验证下导入的数据库是否正确。
6、如果在导入数据库的过程中有出现问题,可以参考附录中的百度版oracle 11g 导入导出。
二、导出数据库导出数据库是导入数据库的逆过程,具体步骤如下:1、打开控制台,输入expdp raxm/1,其中expdp表示导出数据库,raxm 表示用户,1表示密码,如下图所示:2、控制台显示成功导出之后,可以在oracle 11 g安装目录下,我oracle 11g的安装目录是:E:oracle11g\admin\orcl\dpdmp,找到导出的数据库文件,如下图所示:3、接着你就可以根据项目的需要对导出来的数据库进行重命名。
4、如果在导出数据库的过程中有出现问题,可以参考附录中的百度版oracle 11g 导入导出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
oracle导入导出的问题朋友在导入11GR2发现了如下的错误日志:MP-00017: 由于 ORACLE 错误 942, 以下语句失败:\TABLE \ADD CONSTRAINT \FOREIGN KEY (\\ALIDATE\IMP-00003: 遇到 ORACLE 错误 942 ORA-00942: 表或视图不存在IMP-00017: 由于 ORACLE 错误 942, 以下语句失败:\TABLE \ADD CONSTRAINT \FOREIGN KEY (\\ALIDATE\IMP-00003: 遇到 ORACLE 错误 942 ORA-00942: 表或视图不存在IMP-00017: 由于 ORACLE 错误 942, 以下语句失败:\TABLE \ADD CONSTRAINT \FOREIGN KEY (\\ALIDATE\IMP-00003: 遇到 ORACLE 错误 942 ORA-00942: 表或视图不存在IMP-00017: 由于 ORACLE 错误 942, 以下语句失败:\KEY (\\ALIDATE\IMP-00003: 遇到 ORACLE 错误 942 ORA-00942: 表或视图不存在IMP-00017: 由于 ORACLE 错误 942, 以下语句失败:\TABLE \ADD CONSTRAINT \FOREIGN KEY (\\ALIDATE\IMP-00003: 遇到 ORACLE 错误 942 ORA-00942: 表或视图不存在。
发现以上问题开始以为是对象不对的问题或者是表删除的问题,但经过在网上查找发现不是上述问题是11GR2数据库版本的问题:11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPORT导出时,空表也不能导出,这就导致迁移时候丢失了一些表,存储过程也失效了。
本以为EXP能有相应的控制开关,可以切换是否导出空表,看了下帮助,没有太大的改变。
有些奇怪,难道11GR2不更新EXP 的功能。
解决方法:一、insert一行,再rollback就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。
导出时则可导出空表。
二、设置deferred_segment_creation参数该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
修改语句:alter system set deferred_segment_creation=false scope=both;需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。
如需导出之前的空表,只能用第一种方法。
三、用以下这句查找空表并分配空间select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;把SQL查询的结果导出,然后执行导出的语句,强行为表分配空间修改segment值,然后再导出即可导出空表了。
简单写下数据泵的(实践)用法:备份tszgyl/tszgyl expdp userid=tszgyl/tszgyl directory=tszgyldumpfile=tszgyl20210311.dmp job_name=tszgyl20210311 logfile=tszgyl20210311.log parallel=4 schemas=tszgyl 备份tsybdd/tsybdd expdp userid=tsybdd/tsybdd directory=tsybdd dumpfile=tsybdd20210311.dmpjob_name=tsybdd20210311 logfile=tsybdd20210311.log parallel=4 schemas=tsybdd备份center_czjm/testexpdp userid=center_czjm/test directory=center_czjm dumpfile=center_czjm20210311.dmpjob_name=center_czjm20210311logfile=center_czjm20210311.log parallel=4schemas=center_czjm具体解释如下:核心提示:Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中。
Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中。
数据泵导出导入(EXPDP和IMPDP)的作用1、实现逻辑备份和逻辑恢复。
2、在数据库用户之间移动对象。
3、在数据库之间移动对象4、实现表空间搬移。
数据泵导出导入与传统导出导入的区别:在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项;EXP和IMP是客户段工具程序,它们既可以在客户端使用,也可以在服务器段使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。
数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式。
EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联。
语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定方案名,job_name用于指定导出作业名。
注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:Expdp scott/tiger ATTACH=scott.export_job2. CONTENT该选项用于指定要导出的内容。
默认值为ALLCONTENT={ALL | DATA_ONLY | METADATA_ONLY}当设置CONTENT为ALL 时,将导出对象定义及其所有数据。
为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump CONTENT=METADATA_ONLY3. DIRECTORY指定转储文件和日志文件所在的目录DIRECTORY=directory_objectDirectory_object用于指定目录对象名称。
需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump建立目录:CREATE DIRECTORY dump as ‘d:dump’;查询创建了那些子目录:SELECT * FROM dba_directories;4. DUMPFILE用于指定转储文件的名称,默认名称为expdat.dmpDUMPFILE=[directory_object:]file_name [,…]Directory_object用于指定目录对象名,file_name用于指定转储文件名。
需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象Expdp scott/tiger DIRECTORY=dump1DUMPFILE=dump2:a.dmp5. ESTIMATE指定估算被导出表所占用磁盘空间分方法。
默认值是BLOCKS EXTIMATE={BLOCKS | STATISTICS}设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=dump DUMPFILE=a.dump6. EXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间,默认值为N EXTIMATE_ONLY={Y | N}设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作。
Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y7. EXCLUDE该选项用于指定执行操作时释放要排除对象类型或相关对象EXCLUDE=object_type[:name_clause] [,…]Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象。
EXCLUDE和INCLUDE不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW8. FILESIZE指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)9. FLASHBACK_SCN指定导出特定SCN时刻的表数据FLASHBACK_SCN=scn_valueScn_value用于标识SCN值。
FLASHBACK_SCN和FLASHBACK_TIME不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=35852310. FLASHBACK_TIME。