expdp+impdp 用法详解
Exp-Imp-Expdp-Impdp的使用

Exp/Imp/Expdp/Impdp的使用寶成國際集團-中山電腦部2011-10-15內容簡介一.Exp/Imp的用法二.Expdp/Impdp的用法三.Exp/Imp 與Expdp/Impdp的比較一、Exp/Imp命令介紹1.Oracle資料導出導入Exp/Imp就相當於Oracle數據備份與還原。
exp命令可以把資料從遠端資料庫伺服器導出到本地的dmp檔,imp命令可以把dmp檔從本地導入到遠處的資料庫伺服器中。
2.迄今為止:導出/導入(exp/imp)工具集仍是跨多個平臺轉移資料所需勞動強度最小的首選實用工具,儘管人們常常抱怨它速度太慢.導入只是將每條記錄從dmp中讀出來,然後使用常見的Insert Into 命令將其插入到目標表中,因此導入可能會是個很慢的過程。
3.Exp: 高版本的DB不能導出低版本的DB資料.會報以下錯誤: (oracle10gdb exp oracle9idb Error)EXP-00056: ORACLE error 6550 encounteredORA-06550: line 1, column 41:PLS-00302: component 'SET_NO_OUTLINES' must be declaredORA-06550: line 1, column 15:4.Imp: 跨多個版本的dmp之間不能直接導入,需利用中間版本的DB導入.如Oracle8i導出的dmp file不能在Oracle10中直接導入,但可以在Oracle9i中利用網絡導入Oracle10g DB中.二、Exp/Imp使用實例1.數據導出(exp help=y)(1) 將資料庫TEST完全導出[EXP_FULL_DATABASE]exp system/manager@TEST file=d:\sys.dmp log=d:\sys.log full=y(2) 將資料庫中usera用戶與userb用戶的表導出exp system/manager@TEST file=d:\sys.dmp log=d:\sys.logowner=(usera,userb)(3) 將資料庫中的表table1、table2導出exp user/password@TEST file= d:\user.dmp log=d:\user.logtables=(table1, table2)(4)將資料庫中的表table1中的欄位filed1以‚00‛打頭的數據導出exp user/password@TEST file=d:\user.dmp log=d:\user.log tables=(table1) query=‚ where filed1 like ‘00%’‛(5)導出userA的架構不含Dataexp user/password@TEST file=d:\user.dmp log=d:\user.log rows=n(6)導出userA的架構,設定filesize為5Mexp user/password@TEST file=(d:\user-1.dmp,d:\user-2.dmp) log=d:\user.log filesize=5M2.數據導入(imp help=y)(1) 將資料庫中各owner導入[IMP_FULL_DATABASE]imp system/manager@TEST file=d:\sys.dmp log=d:\sys.log fromuser=ownera touser=ownera(2) 將資料庫中用戶A中的所有資料導入用戶B中imp userB/password@TEST file=d:\userA.dmp log=d:\in-userB.log fromuser=userA touser=userB(3) 導入時只導入架構和和data,不導入indeximp user/password@TEST file= d:\user.dmp log=d:\user.log indexes=n--產生index file的sql以便create indeximp user/password@TEST file= d:\user.dmp log=d:\index.log indexfile=user-index.sql(4) 往資料庫中的表table1中追加Dataimp user/password@TEST file=d:\user.dmp log=d:\inuser.log ignore=y(5) 使用commit=y及設定bufferimp gass/gasstest file=GASS2009.dmp log=in-GASS2009.log commit=y buffer=51200000(6) 使用使用INDEXES=Nimp user/password@TEST file=d:\user.dmp log=d:\inuser.log indexes=n rows=yimp user/password@TEST file=d:\user.dmp log=d:\inuser2.log indexes=y rows=n一、Expdp/Impdp命令介紹1.Oracle10g中的导出/导入(expdp/impdp)工具包為Oracle資料提供高速並行及大資料的遷移。
expdpimpdp用法详解

expdpimpdp⽤法详解⼀关于expdp和impdp 使⽤EXPDP和IMPDP时应该注意的事项:EXP和IMP是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。
EXPDP和IMPDP是服务端的⼯具程序,他们只能在ORACLE服务端使⽤,不能在客户端使⽤。
IMP只适⽤于EXP导出的⽂件,不适⽤于EXPDP导出⽂件;IMPDP只适⽤于EXPDP导出的⽂件,⽽不适⽤于EXP导出⽂件。
expdp或impdp命令时,可暂不指出⽤户名/密码@实例名 as ⾝份,然后根据提⽰再输⼊,如:expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;⼀、创建逻辑⽬录,该命令不会在操作系统创建真正的⽬录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';⼆、查看管理理员⽬录(同时查看操作系统是否存在,因为Oracle并不关⼼该⽬录是否存在,如果不存在,则出错)select * from dba_directories;三、给scott⽤户赋予在指定⽬录的操作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;四、导出数据1)按⽤户导expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;2)并⾏进程parallelexpdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott33)按表名导expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;4)按查询条件导expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';5)按表空间导expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;6)导整个数据库expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;五、还原数据1)导到指定⽤户下impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;2)改变表的ownerimpdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;3)导⼊表空间impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;4)导⼊数据库impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION⼆附加说明并⾏操作(PARALLEL)您可以通过 PARALLEL 参数为导出使⽤⼀个以上的线程来显著地加速作业。
expdp、impdp的exclude、include参数格式说明

expdp、impdp的exclude、include参数格式说明expdp、impdp的exclude、include参数格式说明expdp、impdp是10g的数据泵导入导出新功能,其中exclude 用于排除导入导出某些对象,include用于指定导入导出某些对象。
其语法为:EXCLUDE=[object_type]:[name_clause],[object_type]:[name_ clause]INCLUDE=[object_type]:[name_clause],[object_type]:[name_clau se]object_type:对象类型,如table,view,procedure,db_link,materialized_view等等name_clause:sql表达式,用于过滤对象,如IN ('DEPT','EMP'),LIKE ('D%'),re gexp_like(table_name,’(*JOB*|*DEPAR*|*EMP*)’) ,='EMP' 等等。
注意:如果不是写在参数文件中,而直接写在命令行中,记得加入转义字符。
Windows: 在双引号前加入转义字符D:\> expdp system/manager DIRECTORY=my_dir DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott INCLUDE=TABLE:\”IN (’EMP’,‘DEP’)\”Unix:在括号、双引号、单引号前均加入转义字符% expdp system/manager DIRECTORY=my_dir DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott INCLUDE=TABLE:\”IN \(\’EMP\’, \’DEP\’\)\”如果写在参数文件中,则无需加入转义字符:如parfile = dp1.par,里面内容如下:DIRECTORY = dumpdirDUMPFILE = exp_tab.dmpLOGFILE = exp_tab.log SCHEMAS = scottINCLUDE = TABLE:"IN ('EMP','DEPT')"。
expdp和impdp语句

expdp和impdp语句expdp和impdp是Oracle数据库中用于数据泵的导出和导入工具。
它们允许用户将数据和元数据从一个Oracle数据库导出到一个dump文件,然后将该文件导入到另一个Oracle数据库中。
expdp的常用语法如下:复制代码expdp userid=用户名/密码@数据库连接标识文件=数据泵导出文件的路径和名称 logfile=日志文件的路径和名称 dumpfile=dump文件的路径和名称full=yes/no schemas=schema_name[,schema_name]tables=table_name[,table_name] ...其中,userid是用户名和密码,用于连接到数据库;文件路径和名称指定了数据泵导出文件、日志文件和dump文件的路径和名称;full参数用于指定是否导出整个数据库;schemas参数用于指定要导出的模式;tables参数用于指定要导出的表。
impdp的常用语法如下:复制代码impdp userid=用户名/密码@数据库连接标识文件=数据泵导出文件的路径和名称 logfile=日志文件的路径和名称 dumpfile=dump文件的路径和名称full=yes/no schemas=schema_name[,schema_name]tables=table_name[,table_name] ...其中,userid是用户名和密码,用于连接到数据库;文件路径和名称指定了数据泵导出文件、日志文件和dump文件的路径和名称;full参数用于指定是否导入整个数据库;schemas参数用于指定要导入的模式;tables参数用于指定要导入的表。
需要注意的是,在使用expdp和impdp时,必须确保目标数据库已经创建了相应的表、视图、序列等对象,否则导入操作将会失败。
同时,在使用expdp和impdp 时,需要确保具有足够的权限,并且要遵守Oracle数据库的数据泵规范和最佳实践。
EXPDB_IMPDB导出数据库和导入数据库操作手册

EXPDB_IMPDB导出数据库和导入数据库操作手册EXPDP/IMPDP导出导入操作手册1.介绍EXPDP/IMPDP 是 Oracle 数据库中提供的一种工具,用于导出和导入数据库中的数据和对象。
通过使用 EXPDP 可以将数据库中的指定数据表、视图、程序、触发器等对象导出到一个二进制文件中,而使用 IMPDP 可以将这个导出的文件再导入到一个新的数据库中。
2.环境设置在使用 EXPDP/IMPDP 前,需要进行一些环境设置。
首先,确保数据库已经以归档模式运行,并且存在一个有效的备份策略。
其次,确认当前用户具备使用 EXPDP/IMPDP 的权限,可以通过以下语句进行授权:```GRANT EXP_FULL_DATABASE, IMP_FULL_DATABASE TO username;```其中,`username` 是需要授权的用户名。
3.导出数据库要导出数据库,可以使用以下命令:```expdp username/passwordconnect_stringDIRECTORY=directory_name DUMP LOG```其中,`username` 是要导出数据的用户名,`password` 是该用户的密码,`connect_string` 是连接数据库的字符串,`directory_name` 是导出文件所在的目录,`dump` 是导出文件的名称,`log` 是导出日志文件的名称。
4.导入数据库要导入数据库,可以使用以下命令:```impdp username/passwordconnect_stringDIRECTORY=directory_name DUMP LOG```其中,`username` 是要导入数据的用户名,`password` 是该用户的密码,`connect_string` 是连接数据库的字符串,`directory_name` 是导入文件所在的目录,`dump` 是导入文件的名称,`log` 是导入日志文件的名称。
EXPDB和IMPDP使用

1、创建DIRECTORY
CREATE DIRECTORY DIR_DP as 'D:/expbackup';
2、创建导出角色可以使用sys账户
CREATE USER wpf identified by wpf
3、授权
Grant read,write on directory dir_dp to wpf
7、更换表空间
采用remap_tablespace参数
--导出gwm用户下的所有数据
expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm
注:如果是用sys用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容
--以下是将gwm用户下的数据全部导入到表空间gcomm(原来为gmapdata表空间下)下
impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcomm
LINUX
今天在使用expdp导出的时候报如下错误
6、导入
-- 全部导入
impdp scott/tiger dumpfile=EXPDP_TEST1.DMP logfile=imp_p_test.log directory=dir_dp
-- 按表导入
impdp scott/tiger dumpfile=EXPDP_TEST1.DMP logfile=imp_p_test.log directory=dir_dp tables=test(表名,多个表用逗号分隔)
EXPDB和IMPDP使用

EXPDB和IMPDP使用EXPDP和IMPDP是Oracle数据库中用于导出和导入数据的工具。
EXPDP用于将数据库中的数据、对象和元数据导出为一个二进制文件,而IMPDP则用于将这个二进制文件导入到另一个数据库中。
本文将详细介绍EXPDP和IMPDP的使用方法。
EXPDP命令用于在Oracle数据库中导出数据。
它可以导出整个数据库、指定的表空间、指定的表或指定的数据集。
EXPDP提供了很多选项,可以控制导出的方式,比如导出数据的压缩级别、并发作业数、导出的内容等。
以下是一个基本的EXPDP命令示例:``````上述命令将从数据库中导出所有的数据,然后将数据保存到data.dmp文件中,日志信息保存在expdp.log文件中。
接下来是IMPDP命令的使用。
IMPDP可以用于将导出的数据文件导入到一个新的数据库中。
它也可以使用很多选项来控制导入过程,比如指定导入的表空间、指定导入的对象、并发作业数等。
以下是一个基本的IMPDP命令示例:``````上述命令将从data.dmp文件中导入数据到数据库中,日志信息保存在impdp.log文件中。
在实际使用EXPDP和IMPDP时,有一些常用的选项可以帮助我们更好地管理数据的导入和导出过程。
下面是一些常用的选项及其说明:-`SCHEMAS`:指定要导出或导入的模式或用户。
可以同时指定多个模式。
-`TABLES`:指定要导出或导入的表。
可以同时指定多个表。
-`INCLUDE`:指定要导出或导入的对象类型。
可以是表、索引、约束等。
-`EXCLUDE`:指定要排除的对象类型。
-`JOB_NAME`:用于标识导出或导入作业的名称。
-`FULL`:指定是否导出或导入整个数据库。
-`NETWORK_LINK`:用于从一个远程数据库导入数据。
-`REMAP_SCHEMA`:用于在导入时重新映射模式或用户。
除了上述常用选项外,EXPDP和IMPDP还提供了很多其他选项,用于更灵活地控制导入和导出过程。
Oracle导入导出(imp,exp,impdp,expdp)详解

FILE 输入文件 (EXPDAT.DMP) TOUSER 用户名列表
SHOW 只列出文件内容 (N) TABLES 表名列表
IGNORE 忽略创建错误 (N) RECORDLENGTH IO 记录的长度
RESUMABLE_TIMEOUT RESUMABLE 的等待时间
COMPILE 编译过程, 程序包和函数 (Y)
STREAMS_CONFIGURATION 导入流的一般元数据 (Y)
STREAMS_INSTANTIATION 导入流实例化元数据 (N)
ROWS 导出数据行 (Y) PARFILE 参数文件名
CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 导出的约束条件 (Y)
OBJECT_CONSISTENT 只在对象导出期间设置为只读的事务处理 (N)
FEEDBACK 每 x 行显示进度 (0)
USERID 必须是命令行中的第一个参数。
关键字 说明 (默认值) 关键字 说明 (默认值)
--------------------------------------------------------------------------
USERID 用户名/口令 FULL 导入整个文件 (N)
GRANTS 导入权限 (Y) INCTYPE 增量导入类型
INDEXES 导入索引 (Y) COMMIT 提交数组插入 (N)
ROWS 导入数据行 (Y) PARFILE 参数文件名
LOG 屏幕输出的日志文件 CONSTRAINTS 导入限制 (Y)
BUFFER 数据缓冲区大小 OWNER 所有者用户名列表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.Data Pump 导入 expdp
1)从 expdp 中获取数据源 exp.dmp 2)复制某个数据库中的一个 schema 到另一个数据库中。 3) 在同一个数据库中把一个 schema 中所有的对象复制到另一个 schema 中。
例子:
1)impdp 的数据源是 expdp 导出来的 DMP 文件
3) 在同一个数据库中把一个 schema 中所有的对象复制到另一个 schema 中。
‐‐1.创建连接自己的 database link:
create public database link system_self connect to system identified by "system" using 'orcl';
四、导出数据 1)按用户导 expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1; 2)并行进程 parallel expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott 3 3)按表名导 expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1; 4)按查询条件导 expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20'; 5)按表空间导 expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=tem p,example; 6)导整个数据库 expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp 5. ESTIMATE 指定估算被导出表所占用磁盘空间分方法.默认值是 BLOCKS EXTIMATE={BLOCKS | STATISTICS} 设置为 BLOCKS 时,oracle 会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用 的空间,设置为 STATISTICS 时,根据最近统计值估算对象占用空间 Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dump DUMPFILE=a.dump 6. EXTIMATE_ONLY 指定是否只估算导出作业所占用的磁盘空间,默认值为 N EXTIMATE_ONLY={Y | N} 设置为 Y 时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为 N 时,不仅估算 对象所占用的磁盘空间,还会执行导出操作. Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y 7. EXCLUDE 该选项用于指定执行操作时释放要排除对象类型或相关对象 EXCLUDE=object_type[:name_clause] [,….] Object_type 用于指定要排除的对象类型,name_clause 用于指定要排除的具体对象.EXCLUDE 和 INCLUDE 不能同时使用 Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW 8. FILESIZE 指定导出文件的最大尺寸,默认为 0,(表示文件尺寸没有限制) 9. FLASHBACK_SCN 指定导出特定 SCN 时刻的表数据 FLASHBACK_SCN=scn_value Scn_value 用于标识 SCN 值.FLASHBACK_SCN 和 FLASHBACK_TIME 不能同时使用 Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=358523 10. FLASHBACK_TIME 指定导出特定时间点的表数据 FLASHBACK_TIME=”TO_TIMESTAMP(time_value)” Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME= “TO_TIMESTAMP(’25‐08‐2004 14:35:00’,’DD‐MM‐YYYY HH24:MI:SS’)” 11. FULL 指定数据库模式导出,默认为 N FULL={Y | N} 为 Y 时,标识执行数据库导出. 12. HELP 指定是否显示 EXPDP 命令行选项的帮助信息,默认为 N 当设置为 Y 时,会显示导出选项的帮助信息. Expdp help=y 13. INCLUDE 指定导出时要包含的对象类型及相关对象 INCLUDE = object_type[:name_clause] [,… ]
五、还原数据 1)导到指定用户下 impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott; 2)改变表的 owner impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REM AP_SCHEMA=scott:system; 3)导入表空间 impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=exa mple; 4)导入数据库 impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y; 5)追加数据 impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABL E_EXISTS_ACTION=append; Expdp/Impdp 的相关参数 EXPDP 命令行选项 1. ATTACH 该选项用于在客户会话与已存在导出作用之间建立关联.语法如下 ATTACH=[schema_name.]job_name Schema_name 用于指定方案名,job_name 用于指定导出作业名.注意,如果使用 ATTACH 选项, 在命令行除了连接字符串和 ATTACH 选项外,不能指定任何其他选项,示例如下: Expdp scott/tiger ATTACH=scott.export_job 2. CONTENT 该选项用于指定要导出的内容.默认值为 ALL CONTENT={ALL | DATA_ONLY | METADATA_ONLY} 当设置 CONTENT 为 ALL 时,将导出对象定义及其所有数据.为 DATA_ONLY 时,只导出对象数据, 为 METADATA_ONLY 时,只导出对象定义 Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump CONTENT=METADATA_ONLY 3. DIRECTORY 指定转储文件和日志文件所在的目ata1 as 'd:\test\dump';
二、查看管理理员目录(同时查看操作系统是否存在,因为 Oracle 并不关心该目录是否 存在,如果不存在,则出错) select * from dba_directories;
三、给 scott 用户赋予在指定目录的操作权限,最好以 system 等管理员赋予。 grant read,write on directory dpdata1 to scott;
$expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export
include/exclude 例子: include=table:"in('DB','TS')" 或者 include=table:"like '%E%'" 或者 include=function,package,procedure,table:"='EMP'" 或者 exclude=SEQUENCE,TABLE:"IN ('EMP','DEPT')"
数据库链接已创建。
‐‐2.复制 hr schema 到 test schema:
impdp system/system network_link=system_self schemas=hr remap_schema=hr:test 一、 创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以 system 等管理员