1、查询可作为expdp导出数据用的目录 SQL>select OWNER,DIRECTORY_NAME,DIRECTORY_PATH fromdba_ directories; 2、将目录权限赋于hr用户 SQL>grant read,write on directory DATA_PUMP_DIR to hr; 3、导出用户下的数据结构 expdp hr/hrDIRECTORY=DATA_PUMP_DIR CONTENT=METADATA_ONLY DUMPFILE=hr.dmp logfile=hr.log 注:当设置CONTENT为ALL时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义
——其中使用METADATA_ONLY导出数据表结构 同时注意高版本导出的dmp在低版本导入的问题,如果是使用impdp/empdp来进行导出和导入数据库的话,在高版本的数据库中导出dmp文件时需要在末尾增加要导入的数据库的版本号(低版本oracle)。如下 expdp hr/hrDIRECTORY=DATA_PUMP_DIR CONTENT=METADATA_ONLY DUMPFILE=hr.dmp logfile=hr.log version=11.2.0.4 4、在数据库创建还原用的表空间与用户 创建表空间 create tablespace HR datafile '+DATA/hr.dmp' size 1G autoextend on next50M maxsize unlimited extent management local autoallocate segment spacemanagement auto; 创建用户 create user hr identified by "hr"default tablespace HR temporarytablespace temp; 分配权限 grantconnect to hr; grantresource to hr; 5、将导出的数据的文件上传到数据库中指定还原的目录中以备还原使用(这里指定的的目录同样为DATA_PUMP_DIR,相应的路径可以通过第一步命令查询) 6、这里需要注意,在导入数据前,同样需要将目录的权限赋于用户,请参照第二步 7、导入数据结构 impdp hr/hr DIRECTORY=DATA_PUMP_DIRCONTENT=METADATA_ONLY DUMPFILE=hr.dmp logfile=hr.log 注:导入时,同样操作CONTENT参数,若是使用其他用户还原,则还需要添加remap_schema参数,其中值的格式为user1:user2是把user1下的表结构转义为user2用户下. impdp hr/hr DIRECTORY=DATA_PUMP_DIRCONTENT=METADATA_ONLY DUMPFILE=hr.dmp logfile=hr.log remap_schema= user1:user2 8、验证是否还原成功(方便查看,可使用PLSQL工具连接数据库查看)
|