实例使用expdpimpdp导入导出数据库.docx
- 文档编号:14087063
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:15
- 大小:22.76KB
实例使用expdpimpdp导入导出数据库.docx
《实例使用expdpimpdp导入导出数据库.docx》由会员分享,可在线阅读,更多相关《实例使用expdpimpdp导入导出数据库.docx(15页珍藏版)》请在冰点文库上搜索。
实例使用expdpimpdp导入导出数据库
实例:
使用expdp/impdp导入导出数据库
1.创建数据导出权限的目录
(注意oracle用户一定要有此目录的读写权限):
SQL>createdirectoryMY_DIRas'/home/dump';
公司数据库都已经创建了对应的DIR目录,不建议继续创建新的,如有疑问可以联系我:
可以使用以下命令查看数据库中是否存在DIR目录
SQL>colDIRECTORY_PATHfora50;
SQL>setlinesize150;
SQL>select*fromdba_directories;
查看目录及权限
--查看目录及权限
SQL>SELECTprivilege,directory_name,DIRECTORY_PATHFROMuser_tab_privst,all_directoriesd
WHEREt.table_name(+)=d.directory_nameORDERBY2,1;
2.给该数据导出用户授予该目录的读写权限
SQL>grantread,writeonDIRECTORYMY_DIRtouser_name;
(其中user_name为用户名称,本示例中user_name为zdyw2)
即:
SQL>grantread,writeonDIRECTORYMY_DIRtozdyw2;
3.使用expdp导出源数据库
expdpzdyw2/zdyw185test2schemas=zdyw2DIRECTORY=dirCONTENT=allDUMPFILE=zdywyf20121109_2.dmplogfile=zdywyf_exp20121109_2.log
其中:
1、zdyw2为导出数据库的用户,zdyw185test2为导出数据库的密码;
2、schemas为导出的用户的schemas,普通请款下为该用户名称;
3、Direcotry,DIR为导出文件的存放目录,此目录需要zdyw2有对应的操作权限,
4、zdywyf20121109_2.dmp为导出的文件名称,
5、zdywyf_exp20121109_2.log为导出的日志名称。
备注:
1、directory=dir_dp必须放在前面,如果将其放置最后,会提示ORA-39002:
操作无效
ORA-39070:
无法打开日志文件。
ORA-39087:
目录名DATA_PUMP_DIR;无效
2、在导出过程中,DATADUMP创建并使用了一个名为SYS_EXPORT_SCHEMA_01的对象,此对象就是DATADUMP导出过程中所用的JOB名字,如果在执行这个命令时如果没有指定导出的JOB名字那么就会产生一个默认的JOB名字,如果在导出过程中指定JOB名字就为以指定名字出现
如下改成:
expdplttfm/lttfm@fgisdbschemas=lttfmdirectory=dir_dpdumpfile=expdp_test1.dmplogfile=expdp_test1.log,job_name=my_job1;
3、导出语句后面不要有分号,否则如上的导出语句中的job表名为‘my_job1;’,而不是my_job1。
因此导致expdplttfm/lttfmattach=lttfm.my_job1执行该命令时一直提示找不到job表
4、创建的目录一定要在数据库所在的机器上。
否则也是提示:
ORA-39002:
操作无效
ORA-39070:
无法打开日志文件。
ORA-39087:
目录名DATA_PUMP_DIR;无效
导出的相关命令使用:
1)Ctrl+C组合键:
在执行过程中,可以按Ctrl+C组合键退出当前交互模式,退出之后,导出操作不会停止
2)Export>status--查看当前JOB的状态及相关信息
3)Export>stop_job--暂停JOB(暂停job后会退出expor模式)
4)重新进入export模式下:
C:
\DocumentsandSettings\Administrator>expdplttfm/lttfmattach=lttfm.my_job1--语句后面不带分号
5)Export>start_job--打开暂停的JOB(并未开始重新执行)
6)Export>continue_client--通过此命令重新启动"LTTFM"."MY_JOB":
7)Export>kill_job--取消当前的JOB并释放相关客户会话(将job删除同时删除dmp文件)
8)Export>exit_client--通过此命令退出export模式(通过4)可再进入export模式下)
注:
导出完成后job自动卸载
数据泵导出的各种模式:
4.将导出的数据文件拷贝到想导入的数据库中
方法略:
5.在目标数据库上创建据导出权限的目录
(注意oracle用户一定要有此目录的读写权限):
SQL>createdirectoryMY_DIRas'/home/dump';
普通情况下公司数据库都已经创建了对应的DIR目录,不建议继续创建新的:
可以使用以下命令查看数据库中是否存在DIR目录
SQL>colDIRECTORY_PATHfora50;
SQL>setlinesize150;
SQL>select*fromdba_directories;
6.在目标数据库中创建对应的用户
在目标数据库上创建一个zdyw3用户,密码为zdyw3默认表空间为ZYXTDBLN,并且给用户授权。
createZYXTDBLNodstestdatafile'/data/oradata/ORCL/ZYXTDBLN.dbf'size4Gautoextendonmaxsize10Guniformsize2msegmentspacemanagementauto;
createuserzdyw3identifiedbyzdyw3accountunlockdefaulttablespaceZYXTDBLNquotaunlimitedonZYXTDBLN;
grantconnect,resourcetozdyw3;
grantread,writeonDIRECTORYMY_DIRtozdyw2;
7.使用impdp导入用户数据
将数据导入到目标数据库的新帐号zdyw3中,后面会提示输入用户名和密码。
impdpzdyw3/zdyw3DUMPFILE=zdywyf20121109_2.dmpSCHEMAS=zdyw3logfile=zdyw3_imp.logDIRECTORY=MY_DIRexclude=statisticsTABLE_EXISTS_ACTION=REPLACEremap_schema=zdyw2:
zdyw3remap_tablespace=ZDYW2:
ZYXTDBLNtransform=OID:
N&
其中:
1、zdywyf20121109_2.dmp为导入的文件名称,
2、schemas为元数据文件的用户名,
3、zdyw3imp.log为日志文件,
4、MY_DIR为导入的目录
5、remap_schema=zdyw2:
zdyw3
6、将源数据库中zdyw2的下的数据导入到目标数据库zdyw3用户下
7、remap_tablespace=ZDYW2:
ZYXTDBLN,源数据库的表空间为ZDYW2,目标数据库的表空间为ZYXTDBLN,如果有多个表空间,可以使用“,”隔开,如:
remap_tablespace=ZDYW2:
ZYXTDBLN,ZDYW3:
ZYXTDBLN
8.数据导入检查
可以使用以下命令在源数据库、目标数据库中检查是对应的对象的大小,数据文件的大小,来检查数据导入导出是否成功(修改owner就行)。
如此命令可以使用:
SQL>selectowner,SEGMENT_TYPE,sum(BYTES)/1024/1024asSIZE_Mfromdba_segmentswhereowner='zdyw3'groupbyowner,SEGMENT_TYPE;
SQL>selectowner,SEGMENT_TYPE,sum(BYTES)/1024/1024asSIZE_Mfromdba_segmentswhereowner='zdyw2'groupbyowner,SEGMENT_TYPE;
附录:
其他命令
导出数据
1)按用户导
expdpscott/tiger@orclschemas=scottdumpfile=expdp.dmpDIRECTORY=dpdata1;
2)并行进程parallel
expdpscott/tiger@orcldirectory=dpdata1dumpfile=scott3.dmpparallel=40job_name=scott3
3)按表名导
expdpscott/tiger@orclTABLES=emp,deptdumpfile=expdp.dmpDIRECTORY=dpdata1;
4)按查询条件导
expdpscott/tiger@orcldirectory=dpdata1dumpfile=expdp.dmpTables=empquery='WHEREdeptno=20';
5)按表空间导
expdpsystem/managerDIRECTORY=dpdata1DUMPFILE=tablespace.dmpTABLESPACES=temp,example;
6)导整个数据库
expdpsystem/managerDIRECTORY=dpdata1DUMPFILE=full.dmpFULL=y;
7)只导出对象定义举例:
(只导表结构)
expdpu1/u1@orclDIRECTORY=MY_DIRCONTENT=METADATA_ONLYDUMPFILE=u1_metadata_20120701.dmpschemas=u1logfile=u1.log
8)表模式导出举例:
导表数据(导出test表数据)
expdpu1/u1@orclDIRECTORY=MY_DIRtables=testdumpfile=u1_test.dmplogfile=u1_test.log
9)Include导出用户中指定类型的指定对象
--仅导出lttfm用户下以B开头的所有表,包含与表相关的索引,备注等。
不包含过程等其它对象类型:
expdplttfm/lttfm@fgisdbdumpfile=include_1.dmplogfile=include_1.logdirectory=dir_dpjob_name=my_jobinclude=TABLE:
\"LIKE\'B%\'\"
--导出lttfm用户下排除B$开头的所有表:
expdplttfm/lttfm@fgisdbschemas=lttfmdumpfile=include_1.dmplogfile=include_1.logdirectory=dir_dpjob_name=my_jobinclude=TABLE:
\"NOTLIKE\'B$%\'\"
--仅导出lttfm用户下的所有存储过程:
expdplttfm/lttfm@fgisdbschemas=lttfmdumpfile=include_1.dmplogfile=include_1.logdirectory=dir_dpjob_name=my_jobinclude=PROCEDURE;
10)Exclude导出用户中指定类型的指定对象
--导出lttfm用户下除TABLE类型以外的所有对象,如果表不导出那么与表相关的索引,约束等与表有关联的对象类型也不会被导出:
expdplttfm/lttfm@fgisdbschemas=lttfmdumpfile=exclude_1.dmplogfile=exclude_1.logdirectory=dir_dpjob_name=my_jobexclude=TABLE;
--导出lttfm用户下排除B$开头的所有表:
expdplttfm/lttfm@fgisdbdumpfile=include_1.dmplogfile=include_1.logdirectory=dir_dpjob_name=my_jobexclude=TABLE:
\"LIKE\'b$%\'\";
--导出lttfm用户下的所有对象,但是对于表类型只导出以b$开头的表:
expdplttfm/lttfm@fgisdbdumpfile=include_1.dmplogfile=include_1.logdirectory=dir_dpjob_name=my_jobexclude=TABLE:
\"NOTLIKE\'b$%\'\";
还原数据
1)导到指定用户下
impdpscott/tigerDIRECTORY=dpdata1DUMPFILE=expdp.dmpSCHEMAS=scott;
2)改变表的owner
impdpsystem/managerDIRECTORY=dpdata1DUMPFILE=expdp.dmpTABLES=scott.deptREMAP_SCHEMA=scott:
system;
3)导入表空间
impdpsystem/managerDIRECTORY=dpdata1DUMPFILE=tablespace.dmpTABLESPACES=example;
4)导入数据库
impdbsystem/managerDIRECTORY=dump_dirDUMPFILE=full.dmpFULL=y
5)追加数据
impdpsystem/managerDIRECTORY=dpdata1DUMPFILE=expdp.dmpSCHEMAS=systemTABLE_EXISTS_ACTION=append
EXPDP参数介绍
1.ATTACH
该选项用于在客户会话与已存在导出作用之间建立关联.语法如下
ATTACH=[schema_name.]job_name
Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:
Expdpscott/tigerATTACH=scott.export_job
2.CONTENT
该选项用于指定要导出的内容.默认值为ALL
CONTENT={ALL|DATA_ONLY|METADATA_ONLY}
当设置CONTENT为ALL时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dumpCONTENT=METADATA_ONLY
3.DIRECTORY
指定转储文件和日志文件所在的目录
DIRECTORY=directory_object
Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATEDIRECTORY语句建立的对象,而不是OS目录
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dump
4.DUMPFILE
用于指定转储文件的名称,默认名称为expdat.dmp
DUMPFILE=[directory_object:
]file_name[,….]
Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象
Expdpscott/tigerDIRECTORY=dump1DUMPFILE=dump2:
a.dmp
5.ESTIMATE
指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS
ESTIMATE={BLOCKS|STATISTICS}
设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间
Expdpscott/tigerTABLES=empESTIMATE=STATISTICSDIRECTORY=dumpDUMPFILE=a.dump
6.ESTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间,默认值为N
EXTIMATE_ONLY={Y|N}
设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.
Expdpscott/tigerESTIMATE_ONLY=yNOLOGFILE=y
7.EXCLUDE(具体见2、Exclude导出用户中指定类型的指定对象)
该选项用于指定执行操作时释放要排除对象类型或相关对象
EXCLUDE=object_type[:
name_clause][,….]
Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dupEXCLUDE=VIEW
8.FILESIZE
指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)
9.FLASHBACK_SCN
指定导出特定SCN时刻的表数据
FLASHBACK_SCN=scn_value
Scn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dmpFLASHBACK_SCN=358523
10.FLASHBACK_TIME
指定导出特定时间点的表数据
FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dmpFLASHBACK_TIME=“TO_TIMESTAMP(’25-08-200414:
35:
00’,’DD-MM-YYYYHH24:
MI:
SS’)”
11.FULL
指定数据库模式导出,默认为N
FULL={Y|N}
为Y时,标识执行数据库导出.
12.HELP
指定是否显示EXPDP命令行选项的帮助信息,默认为N
当设置为Y时,会显示导出选项的帮助信息.
Expdphelp=y
13.INCLUDE(具体见1、Include导出用户中指定类型的指定对象)
指定导出时要包含的对象类型及相关对象
INCLUDE=object_type[:
name_clause][,…]
14.JOB_NAME
指定要导出作用的名称,默认为SYS_XXX
JOB_NAME=jobname_string
SELECT*FROMDBA_DATAPUMP_JOBS;--查看存在的job
15.LOGFILE
指定导出日志文件文件的名称,默认名称为export.log
LOGFILE=[directory_object:
]file_name
Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dmplogfile=a.log
16.NETWORK_LINK
指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.
如:
expdpgwm/gwmdirectory=dir_dpNETWORK_LINK=igisdbtables=p_street_areadumpfile=p_street_area.dmplogfile=p_street_area.logjob_name=my_job
igisdb是目的数据库与源数据的链接名,
dir_dp是目的数据库上的目录
而如果直接用使用连接字符串(@fgisdb),expdp属于服务端工具,expdp生成的文件默认是存放在服务端的
17.NOLOGFILE
该选项用于指定禁止生成导出日志文件,默认值为N.
18.PARALLEL
指定执行导出操作的并行进程个数,默认值为1
注:
并行度设置不应该超过CPU数的2倍,如果cpu为2个,可将PARALLEL设为2,在导入时速度比PARALLEL为1要快
而对于导出的文件,如果PARALLEL设为2,导出文件只有一个,导出速度提高不多,因为导出都是到同一个文件,会争抢资源。
所以可以设置导出文件为两个,如下所示:
expdpgwm/gwmdirectory=d_testdumpfile=gwmfile1.dp,gwmfile2.dpparallel=2
19.PARFILE
指定导出参数文件的名称
XX文库-让每个人平等地提升自我PARFILE=[directory_path]file_name
XX文库-让每个人平等地提升自我20.QUERY
用于指定过滤导出数据的where条件
QUERY=[schema.][table_name:
]query_clause
Schema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.
Expdpscott/tigerdirectory=dumpdumpfile=a.dmpTables=empquery=’WHEREdeptno=20’
21.SCHEMAS
该方案用于指定执行方案模式导出,默认为当前用户方案.
22.STATUS
指定显示导出作用进程的详细状态,默认值为0
23.TABLES
指定表模式导出
TABLES=[schema_name.]table_name[:
partition_name][,…]
Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.
24.TABLESPACES
指定要导出表空间列表
25.TRANSPORT_FULL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实例 使用 expdpimpdp 导入 导出 数据库