使用命令导入dmp文件impdp序:以前写过使用imp、exp的导入导出,现在与时俱进,高版本的oracle使用泵的导入导出更方便了,主要特点是快、压缩率高占用空间小。这里主要讲解linux环境下的使用,其实windows的环境下使用时一样的,下面一起讲解吧一、连接到linux这里使用Xshell工具,连接后如图:二、切换到oracle用户su–oracle注意“-”前后的空格三、连接到oracle格式:sqlplus[用户名/密码@url:端口/实例名]或/assysdbasqlplus/assysdba(连接到本机oracle)注意“/”前后的空格sqlplusSDP_CMS_HRB/SDP_CMS_HRB@10.9.219.24/orcl(在linux和oracle下通用)LinuxWindowsPs:如果再windows无法连接到oracle,请确定安装的客户端是否支持服务器上安装的oracle的版本。四、建用户createuserSDP_CMS_HRBidentifiedbySDP_CMS_HRB;见上一步windows的图,已经创建用户。五、建表空间这里拿到一个dmp文件有时候同事没有告诉表空间,需要自己查看,其实可以使用UE文本编辑软件打开查看,搜索tablespace,或者先不建表空间直接导入一次后看导入日志。格式:Createtablespace表空间名datafile表空间文件路径size32mautoextendonnext32mmaxsize1024mextentmanagementlocal;CreatetablespaceSDP_PORTALMS_HRBdatafile'/u01/oracle/oradata/orcl/SDP_PORTALMS_HRB.dbf'size32mautoextendonnext32mmaxsize1024mextentmanagementlocal;注意表空间文件路径是相对连接的服务器的路径,这里oracle是安装在linux,如果是安装在windows则路径是E:xx/orcl类似这样的。ps:查询表空间SELECT*FROMSYS.DBA_DATA_FILESDDwhereDD.TABLESPACE_NAMElike'SDP_%';如果已经存在,执行命令会提示已经存在,如下图,六、用户授权grantcreatesession,dbatoSDP_PORTALMS_HRB;七、建directory,目的是存放将要导入的dmp文件格式:createorreplacedirectorydirectory名as路径;createorreplacedirectoryhrb_dbas'/usr/local/dbfile/hrb_sdp/161008';注意这里提示路径新建完成了,实际没有建,linux需要自己使用mkdir命令新建,windows新建文件夹就不多说了,这里要重点说明的是linux新建后需要将所建的所有目录都chmod777目录名赋权,dmp、log名最好也赋权,否则会报一个不能打开读取的错误。建后目录路径后,需要将dmp文件复制到该路径下,如图:八、directory赋予读写权限Grantread,writeondirectoryHRB_DBtoSDP_PORTALMS_HRB;Ps:查看目录及权限SELECTprivilege,directory_name,DIRECTORY_PATHFROMuser_tab_privst,all_directoriesdWHEREt.table_name(+)=d.directory_nameORDERBY2,1;九、使用impdp泵导入格式:impdp用户名/密码[@10.9.217.3/orcl]schemas=与用户名对应directory=directory名(注意大写)dumpfile=dmp文件名[logfile=导入日志名]job_name=与用户名对应;如果是导入到本机的oracle,是可以省略[@10.9.217.3/orcl]的impdpSDP_PORTALMS_HRB/SDP_PORTALMS_HRB@10.9.217.3/orclschemas=SDP_PORTALMS_HRBdirectory=HRB_DBdumpfile=SDP_PORTALMS_HRB_161008.dmplogfile=SDP_PORTALMS_HRB_161008_imdp.logjob_name=SDP_PORTALMS_HRB;注意:这一步的命令如果在linux上,切换到oracle账户就可执行,如果是在windows则需要远程连接到oracle所在的windows后cmd执行。这里补充说明下,如果导入命令执行后,报错出现大批量的creationfailed或failedtocreatewitherror,则有可能是表空间没有建。以上在sql命令执行的连接到服务器切换到oracle账号后,连接到oracle执行或者在本机cmd连接oracle后执行都可以。只是最后一步需要在linux下的oracle账号执行,或远程连接windows后cmd下执行。最后补充一句,使用impdp是可以不用建用户的,但是必须使用dba用户,还要指定remap_schema。例如:(SDP_CMS_HRB赋予过dba权限)impdpSDP_CMS_HRB/SDP_CMS_HRB@10.9.217.3/orclschemas=SDP_USM_HRBremap_schema=SDP_USM_HRB:SDP_USM_HRBdirectory=HRB_DBdumpfile=SDP_USM_HRB_161008.dmplogfile=SDP_USM_HRB_161008_imdp.logjob_name=SDP_USM_HRB;