oracle exp imp 详解

oracle exp/imp 详解导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳。

当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议。

对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具。

下面说明一下EXP/IMP的使用。

如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文显示,如果set nls_lang=American_america.字符集,那么帮助就是英文的了EXP的所有参数(括号中为参数的默认值):USERID 用户名/口令如:USERID=duanl/duanlFULL 导出整个数据库(N)BUFFER 数据缓冲区的大小OWNER 所有者用户名列表,你希望导出哪个用户的对象,就用owner=username FILE 输出文件(EXPDAT.DMP)TABLES 表名列表,指定导出的table名称,如:TABLES=table1,table2 COMPRESS 导入一个extent (Y)RECORDLENGTH IO 记录的长度GRANTS 导出权限(Y)INCTYPE 增量导出类型INDEXES 导出索引(Y)RECORD 跟踪增量导出(Y)ROWS 导出数据行(Y)PARFILE 参数文件名,如果你exp的参数很多,可以存成参数文件. CONSTRAINTS 导出约束(Y)CONSISTENT 交叉表一致性LOG 屏幕输出的日志文件STATISTICS 分析对象(ESTIMATE)DIRECT 直接路径(N)TRIGGERS 导出触发器(Y)FEEDBACK 显示每x 行(0) 的进度FILESIZE 各转储文件的最大尺寸QUERY 选定导出表子集的子句下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导出可传输的表空间元数据(N)TABLESPACES 将传输的表空间列表程序代码IMP的所有参数(括号中为参数的默认值):USERID 用户名/口令FULL 导入整个文件(N)BUFFER 数据缓冲区大小FROMUSER 所有人用户名列表FILE 输入文件(EXPDAT.DMP)TOUSER 用户名列表SHOW 只列出文件内容(N)TABLES 表名列表IGNORE 忽略创建错误(N)RECORDLENGTH IO 记录的长度GRANTS 导入权限(Y)INCTYPE 增量导入类型INDEXES 导入索引(Y)COMMIT 提交数组插入(N)ROWS 导入数据行(Y)PARFILE 参数文件名LOG 屏幕输出的日志文件CONSTRAINTS 导入限制(Y)DESTROY 覆盖表空间数据文件(N)INDEXFILE 将表/索引信息写入指定的文件SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护(N)ANALYZE 执行转储文件中的ANALYZE 语句(Y)FEEDBACK 显示每x 行(0) 的进度TOID_NOVALIDATE 跳过指定类型id 的校验FILESIZE 各转储文件的最大尺寸RECALCULATE_STATISTICS 重新计算统计值(N)下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导入可传输的表空间元数据(N)TABLESPACES 将要传输到数据库的表空间DATAFILES 将要传输到数据库的数据文件TTS_OWNERS 拥有可传输表空间集中数据的用户关于增量参数的说明:exp/imp的增量并不是真正意义上的增量,所以最好不要使用。

使用方法:Exp parameter_name=value or Exp parameter_name=(value1,value2……)只要输入参数help=y就可以看到所有帮助.EXP常用选项1.FULL,这个用于导出整个数据库,在ROWS=N一起使用时,可以导出整个数据库的结构。

例如:exp userid=test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y2. OWNER和TABLE,这两个选项用于定义EXP的对象。

OWNER定义导出指定用户的对象;TABLE指定EXP的table名称,例如:exp userid=test/test file=./db_str.dmp log=./db_str.log owner=duanlexp userid=test/test file=./db_str.dmp log=./db_str.log table=nc_data,fi_arap3.BUFFER和FEEDBACK,在导出比较多的数据时,我会考虑设置这两个参数。

例如:exp userid=test/test file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000buffer=100000000 tables=WO4,OK_YT4.FILE和LOG,这两个参数分别指定备份的DMP名称和LOG名称,包括文件名和目录,例子见上面。

PRESS参数不压缩导出数据的内容。

用来控制导出对象的storage语句如何产生。

默认值为Y,使用默认值,对象的存储语句的init extent等于当前导出对象的extent的总和。

推荐使用COMPRESS=N。

6. FILESIZE该选项在8i中可用。

如果导出的dmp文件过大时,最好使用FILESIZE参数,限制文件大小不要超过2G。

如:exp userid=duanl/duanl file=f1,f2,f3,f4,f5 filesize=2G owner=scott这样将创建f1.dmp, f2.dmp等一系列文件,每个大小都为2G,如果导出的总量小于10G EXP不必创建f5.bmp.IMP常用选项1、FROMUSER和TOUSER,使用它们实现将数据从一个SCHEMA中导入到另外一个SCHEMA 中。

例如:假设我们做exp时导出的为test的对象,现在我们想把对象导入用户:imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test12、IGNORE、GRANTS和INDEXES,其中IGNORE参数将忽略表的存在,继续导入,这个对于需要调整表的存储参数时很有用,我们可以先根据实际情况用合理的存储参数建好表,然后直接导入数据。

而GRANTS和INDEXES则表示是否导入授权和索引,如果想使用新的存储参数重建索引,或者为了加快到入速度,我们可以考虑将INDEXES设为N,而GRANTS一般都是Y。

例如:imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1 indexes=N表空间传输表空间传输是8i新增加的一种快速在数据库间移动数据的一种办法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成Dmp文件,这在有些时候是非常管用的,因为传输表空间移动数据就象复制文件一样快。

关于传输表空间有一些规则,即:•源数据库和目标数据库必须运行在相同的硬件平台上。

•源数据库与目标数据库必须使用相同的字符集。

•源数据库与目标数据库一定要有相同大小的数据块•目标数据库不能有与迁移表空间同名的表空间•SYS的对象不能迁移•必须传输自包含的对象集•有一些对象,如物化视图,基于函数的索引等不能被传输可以用以下的方法来检测一个表空间或一套表空间是否符合传输标准:exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true);select * from sys.transport_set_violation;如果没有行选择,表示该表空间只包含表数据,并且是自包含的。

对于有些非自包含的表空间,如数据表空间和索引表空间,可以一起传输。

以下为简要使用步骤,如果想参考详细使用方法,也可以参考ORACLE联机帮助。

1.设置表空间为只读(假定表空间名字为APP_Data 和APP_Index)alter tablespace app_data read only;alter tablespace app_index read only;2.发出EXP命令SQL>host exp userid=”””sys/password as sysdba”””transport_tablespace=y tablespace=(app_data, app_index)以上需要注意的是•为了在SQL中执行EXP,USERID必须用三个引号,在UNIX中也必须注意避免“/”的使用•在816和以后,必须使用sysdba才能操作•这个命令在SQL中必须放置在一行(这里是因为显示问题放在了两行)3.拷贝数据文件到另一个地点,即目标数据库可以是cp(unix)或copy(windows)或通过ftp传输文件(一定要在bin方式)4.把本地的表空间设置为读写5.在目标数据库附加该数据文件imp file=expdat.dmp userid=”””sys/password as sysdba””” transport_tablespace=y “datafile=(c:\temp\app_data,c:\temp\app_index)”6.设置目标数据库表空间为读写alter tablespace app_data read write;alter tablespace app_index read write;优化EXP/IMP的方法:当需要exp/imp的数据量比较大时,这个过程需要的时间是比较长的,我们可以用一些方法来优化exp/imp的操作。

exp:使用直接路径direct=yoracle会避开sql语句处理引擎,直接从数据库文件中读取数据,然后写入导出文件.可以在导出日志中观察到: exp-00067: table xxx will be exported in conventional path 如果没有使用直接路径,必须保证buffer参数的值足够大.有一些参数于direct=y不兼容,无法用直接路径导出可移动的tablespace,或者用query 参数导出数据库子集.当导入导出的数据库运行在不同的os下时,必须保证recordlength参数的值一致. imp:通过以下几个途径优化1.避免磁盘排序将sort_area_size设置为一个较大的值,比如100M2.避免日志切换等待增加重做日志组的数量,增大日志文件大小.3.优化日志缓冲区比如将log_buffer容量扩大10倍(最大不要超过5M)4.使用阵列插入与提交commit = y注意:阵列方式不能处理包含LOB和LONG类型的表,对于这样的table,如果使用commit = y,每插入一行,就会执行一次提交.5.使用NOLOGGING方式减小重做日志大小在导入时指定参数indexes=n,只导入数据而忽略index,在导完数据后在通过脚本创建index,指定NOLOGGING选项导出/导入与字符集进行数据的导入导出时,我们要注意关于字符集的问题。

合集下载

Oracle中断中止expimp和expdpimpdp数据库导入导出

Oracle中断中止expimp和expdpimpdp数据库导入导出

Oracle中断中⽌expimp和expdpimpdp数据库导⼊导出⼀、中断、中⽌imp/exp导⼊导出imp、exp导⼊导出数据库是系统中的进程,我们只需要找到并将其kill掉即可。

但需要注意的是要先kill掉主进程,否则主进程还是会⽣成⼦进程,导⼊导出的动作还是会在后台进⾏。

eg.ps -ef | grep exp#找到主进程pid使⽤kill命令关掉进程kill -9 pidkill -9 ppid⼆、中断、中⽌expdp/impdp数据泵导⼊导出数据泵的导出就不像exp/imp那么简单了因为⽤数据泵导出是oracle的⼀个job,如果中断,中⽌那么就需要将这个job停⽌掉才可以。

2.1 查看job_name和状态select * from dba_datapump_jobs可以看到JOB_NAME是SYS_IMPORT_FULL_01状态是EXECUTING(正在执⾏的),并且正在执⾏的是IMPDP的导⼊操作。

2.2 连接当前存在的job使⽤ATTCH参数连接到2.1中查到的JOB作业上。

下⾯是完整的输出内容C:\Users\Administrator>impdp ⽤户名/密码g@实例名 attach=SYS_IMPORT_FULL_01Import: Release 11.2.0.1.0 - Production on 星期五 9⽉ 3 09:47:46 2021Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options作业: SYS_IMPORT_FULL_01所有者: SLCJ2021操作: IMPORT创建者权限: TRUEGUID: 93037C51864F4B7D82BF4FC46C527F7C开始时间: 星期五, 03 9⽉, 2021 9:16:33模式: FULL实例: orcl2最⼤并⾏度: 1EXPORT 个作业参数:参数名参数值:CLIENT_COMMAND slcj/********@orclgbk DIRECTORY=expdp_dir dumpfile=expdp_slcj_48_20210902.dmp logfile=expdp_slcj_48_20210902.log schemas=slcjIMPORT 个作业参数:CLIENT_COMMAND slcj2021/********@orcl2 directory=expdp_dir dumpfile=EXPDP_SLCJ_48_20210902.DMP logfile=impdp_slcj-slcj2021.log REMAP_SCHEMA=slcj:slcj2021 remap_tablespace=SLCJ:SLCJ2021,SLCJ_TEMP:SLCJ2021_TEMP状态: EXECUTING处理的字节: 7,835,243,664完成的百分⽐: 20当前并⾏度: 1作业错误计数: 0转储⽂件: D:\expdp_dir\EXPDP_SLCJ_48_20210902.DMPWorker 1 状态:进程名: DW00状态: EXECUTING对象⽅案: SLCJ2021对象名: CO_MONTH_REPORT_INFO对象类型: SCHEMA_EXPORT/TABLE/TABLE_DATA完成的对象数: 3总的对象数: 378完成的⾏数: 70,083,827完成的字节: 7,600,427,616完成的百分⽐: 100Worker 并⾏度: 1Import> stop_job是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): Y是否确实要停⽌此作业 ([Y]/N): YES上⾯stop_job的时候有个坑,可以看到我Y了很多次依然还是要求确认,最后搞明⽩了是需要输⼊YES!2.3 再次查看job状态可以看到JOB的状态已经发⽣了变化,现在是正在关闭2.4 ⽴即关闭JOB连接JOB参考2.2#⽴即将JOB关闭STOP_JOB=IMMEDIATE#分离和删除kill_job可以再次查看⼀下job,此时job应该已经不存在了。

oracle中imp导入导出命令详解

oracle中imp导入导出命令详解

oracle中imp命令详解Oracle的导入实用程序(Importutility)允许从数据库提取数据,并且将数据写入操作系统文件。

imp使用的基本格式:imp [username[/password[@service]]],以下例举imp常用用法。

1. 获取帮助imp help=y2. 导入一个完整数据库imp system/manager file=d:\daochu.dmp log=d:\daochu.log full=y ignore=y3. 导入一个或一组指定用户所属的全部表、索引和其他对象imp system/manager file=seapark log=seapark fromuser=seapark impsystem/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)4. 将一个用户所属的数据导入另一个用户imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1,amy1)5. 导入一个表imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)6. 从多个文件导入imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)log=paycheck, filesize=1G full=y7. 使用参数文件imp system/manager parfile=bible_tables.parbible_tables.par参数文件:#Import the sample tables used for the Oracle8i Database Administrator's Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import8. 增量导入imp system./manager inctype= RECTORE FULL=Y FILE=A Oracle imp/expC:Documentsand Settingsadministrator>exp help=yExport: Release 9.2.0.1.0 - Production on 星期三 7月 28 17:04:43 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 通过输入 EXP命令和用户名/口令,您可以后接用户名/口令的命令:例程: EXPSCOTT/TIGER或者,您也可以通过输入跟有各种参数的 EXP命令来控制“导出”按照不同参数。

Oracle数据备份(exp.exe)、恢复工具(imp.exe)使用方法

Oracle数据备份(exp.exe)、恢复工具(imp.exe)使用方法

Oracle数据备份(exp.exe)、恢复工具(imp.exe)使用方法例子:exp svcm/svcm@zjzx owner=svcm rows=y indexes=n compress=n buffer=65536 file=d:\exp_svcm_20060323.dmp log=d:\imp_svcm_20060323.logimp sms/smssend@orazw fromuser=svcm touser=sms rows=y commit=y buffer=65536 file=d:\exp_svcm_20060323.dmp log=d:\imp_svcm_20060323.logexp 命令格式: EXP KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)或TABLES=(T1: P1,T1: P2),如果T1 是分区表USERID 必须是命令行中的第一个参数。

关键字说明(默认)---------------------------------------------------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 屏幕输出的日志文件STATISTICS 分析对象(ESTIMATE)DIRECT 直接路径(N)TRIGGERS 导出触发器(Y)FEEDBACK 显示每x 行(0) 的进度FILESIZE 各转储文件的最大尺寸QUERY 选定导出表子集的子句下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导出可传输的表空间元数据(N)TABLESPACES 将传输的表空间列表imp 命令:或者, 可以通过输入IMP 命令和各种自变量来控制“导入”按照不同参数。

在plsql中使用exp imp工具实现oracle数据导出导入

在plsql中使用exp imp工具实现oracle数据导出导入

在plsql中使用exp imp工具实现oracle数据导出导入Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。

exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。

利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS (命令行)中执行, DOS中可以执行时由于在oracle 8i 中安装目录\\ora81\\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=y 2 将数据库中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:\\data\\newsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以\"00\"打头的数据导出 exp system/manager@TESTfile=d:\\daochu.dmp tables=(table1) query=\\\" where filed1 like'00%'\\\" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

exp&imp导入导出

exp&imp导入导出

一、导出(exp)和导入(imp)实用程序---------------------------------------------------------------------------- 1二、导出模式 ----------------------------------------------------------------------------------------------------------- 22.1表模式--------------------------------------------------------------------------------------------------------- 22.2用户模式------------------------------------------------------------------------------------------------------ 22.3表空间模式 -------------------------------------------------------------------------------------------------- 22.4完全数据库模式 -------------------------------------------------------------------------------------------- 22.5 导出导入参数 ---------------------------------------------------------------------------------------------- 3三、exp的用法:------------------------------------------------------------------------------------------------------ 33.1导出工具exp交互式命令方式 ------------------------------------------------------------------------- 43.2导出工具exp非交互式命令行方式 ------------------------------------------------------------------- 63.2.1 FULL ------------------------------------------------------------------------------------------------ 63.2.2 OWNER和TABLE ---------------------------------------------------------------------------------- 73.2.3BUFFER和FEEDBACK ----------------------------------------------------------------------------- 83.2.4 FILE和LOG参数-------------------------------------------------------------------------------- 93.2.5 QUERY参数 -------------------------------------------------------------------------------------- 103.2.6 FILESIZE设置导出的数据文件的大小 -------------------------------------------------- 11四、imp用法----------------------------------------------------------------------------------------------------------- 114.1 FROMUSER和TOUSER-------------------------------------------------------------------------------------- 114.2 导入一个完整数据库 ------------------------------------------------------------------------------------ 124.3导入一个或一组指定用户所属的对象 --------------------------------------------------------------- 124.4 导入一个表------------------------------------------------------------------------------------------------- 12一、导出(exp)和导入(imp)实用程序导出实用程序提供了一种简单方法,在Oracle 数据库之间传送数据对象,即使这些数据库位于具有不同硬件和软件配置的平台上。

使用exp和imp导入导出指定表

使用exp和imp导入导出指定表

使⽤exp和imp导⼊导出指定表从源数据库导出:这种⽅式,包含创建表,插⼊数据,所以,⽬标应没有这个表exp user1/pwd@server1 file=c:\temp\exp.dmp tables=(table1, table2)例如:exp platadmin/plat_8admin@hkserver32 file=d:\hkdata.dmp tables=(REPORT_DRIVERATTENDANCE_day,REPORT_DRIVERATTENDANCE_MONTH)我试了⼀下,在本地不能导出,还是得在服务器上导,在服务器上导很快,⼏⼗万条数据的表,⼀两秒钟就导出完了导⼊到⽬标数据库:imp user2/pwd@server2 file=c:\temp\exp.dmp tables=(table1, table2)例如:导⼊也很快,⼀两秒钟imp platadmin/plat_8admin@orclgis file=d:\hkdata.dmp tables=(REPORT_DRIVERATTENDANCE_day,REPORT_DRIVERATTENDANCE_MONTH)1Oracle就是有这个好处,可以直接将远程的数据导出到本地;或者将本地的数据⽂件导⼊到远程数据库。

⽽SQL SERVER的备份、还原⽂件,⼀定是放在远程服务器本机的。

补充⼀下,如果有许多表,那么以上语句可能会换⾏。

但以上命令是在DOS命令窗⼝执⾏的,命令⾏⽅式,容不得换⾏。

那咋办呢?我的笨办法是将语句拷贝到WORD⽂档,然后将回车换⾏符替换掉。

替换的⽅法:在替换窗⼝,查找内容输⼊ ^p(注意是⼩写),替换内容为空,然后替换即可。

=====================================以 sysdba ⾝份运⾏,导出导⼊指定⽤户所属表:exp ‘sys/123456@Service1 as sysdba’ file=c:\temp\exp.dmp tables=(sde.ISLAND)imp ‘sys/888888@Service2 ’ file=c:\temp\exp.dmp fromuser=sde tables=(ISLAND)=================================================如果表空间的名字不⼀样,会报 ORA-00959 错误,咋办?1、先从源数据库,导出建表脚本(DDL)2、在新库新表空间⾥运⾏这些DDL3、imp,加上fromuser,touser,ignore=Y选项imp 'sys/lt@HPM as sysdba' file=c:\temp\base.dmp fromuser=hydg touser=hpm tables=(org_user,SYS_ONLINE,sys_userRoles,Org_Role,Org_Group,sys_Event) ignore=Y1有关ORA-00959 错误的应对之道,参考⽂章:。

Oracle 11G R2 用exp无法导出空表解决方法及expdp和impdp的用法

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等管理员赋予。

imp和exp命令导入和导出.dmp文件

Oracle数据库文件中的导入\导出(imp/exp命令)Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。

exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录ora81BIN被设置为全局路径,该目录下有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 将数据库中的表inner_notify、notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmptables=(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数据库中。

imp详解

oracle中imp命令详解Oracle的导入实用程序(Import utility)允许从数据库提取数据,并且将数据写入操作系统文件。

imp使用的基本格式:imp[username[/password[@service]]],以下例举imp常用用法。

1. 获取帮助imp help=y2. 导入一个完整数据库imp system/manager file=bible_db log=dible_db full=y ignore=y3. 导入一个或一组指定用户所属的全部表、索引和其他对象imp system/manager file=seapark log=seapark fromuser=seaparkimp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)4. 将一个用户所属的数据导入另一个用户imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copyimp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1) 5. 导入一个表imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)6. 从多个文件导入imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck, filesize=1G full=y7. 使用参数文件imp system/manager parfile=bible_tables.parbible_tables.par参数文件:#Import the sample tables used for the Oracle8i Database Administrator's#Bible.fromuser=seapark touser=seapark_copy file=seapark log=seapark_import8. 增量导入(9i中已经取消)imp system./manager inctype= RECTORE FULL=Y FILE=AOracle imp/exp帮助说明C:Documents and Settingsadministrator>exp help=yExport: Release 9.2.0.1.0 - Production on 星期三7月 28 17:04:43 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.通过输入 EXP 命令和用户名/口令,您可以后接用户名/口令的命令:例程: EXP SCOTT/TIGER或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”按照不同参数。

在plsql中使用expimp工具实现oracle数据导出导入

在plsq‎l中使用e‎x p imp工具‎实现ora‎c le数据‎导出导入Oracl‎e数据导入‎导出imp‎/exp就相‎当于ora‎c le数据‎还原与备份‎。

exp命令‎可以把数据‎从远程数据‎库服务器导‎出到本地的‎d mp文件‎,imp命令‎可以把dm‎p文件从本‎地导入到远‎处的数据库‎服务器中。

利用这个功‎能可以构建‎两个相同的‎数据库,一个用来测‎试,一个用来正‎式使用。

执行环境:可以在SQ‎L PLUS‎.EXE或者‎D OS (命令行)中执行, DOS中可‎以执行时由‎于在orac‎l e 8i 中安装目录\\ora81‎\\BIN被设‎置为全局路‎径,该目录下有‎E XP.EXE与I‎M P.EXE文件‎被用来执行‎导入导出。

oracl‎e用jav‎a编写,SQLPL‎U S.EXE、EXP.EXE、IMP.EXE这两‎个文件有可‎能是被包装‎后的类文件‎。

SQLPL‎U S.EXE调用‎E XP.EXE、IMP.EXE所包‎裹的类,完成导入导‎出功能。

下面介绍的‎是导入导出‎的实例。

数据导出: 1 将数据库T‎E ST完全‎导出,用户名sy‎s tem 密码man‎a ger 导出到D:\\daoch‎u.dmp中exp syste‎m/manag‎e r@TEST file=d:\\daoch‎u.dmp full=y 2 将数据库中‎s yste‎m 用户与s‎y s用户的‎表导出 exp syste‎m/manag‎e r@TEST file=d:\\daoch‎u.dmp owner‎=(syste‎m,sys) 3 将数据库中‎的表inn‎e r_no‎t ify、notif‎y_sta‎f f_re‎l at导出‎exp aicha‎n nel/aicha‎n nel@TESTD‎B2 file= d:\\data\\newsm‎g nt.dmp table‎s=(inner‎_noti‎f y,notif‎y_sta‎f f_re‎l at) 4 将数据库中‎的表tab‎l e1中的‎字段fil‎e d1以\"00\"打头的数据‎导出 exp syste‎m/manag‎e r@TESTfile=d:\\daoch‎u.dmp table‎s=(table‎1) query‎=\\\" where‎filed‎1 like'00%'\\\" 上面是常用‎的导出,对于压缩,既用win‎z ip把d‎m p文件可‎以很好的压‎缩。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档