大家好,我继续来划个水,最近在用emp导出数据库时候总是有些数据表无法导出,导致数一直无法导出,然后就使用数据泵empdp进行导数据,刚接触数据泵是在本机上使用过自信满满啊,结果导入的时候各种报错,最终上网找各种方法,结果喵的把数据库给删了,数据还没导进去,但是最终还是解决了。详细方法如下。
一般使用emp\imp导入导出时正常使用即可,但是遇到有分表的情况或者数据量较大的情况会有无法导出的情况。使用imp导入时,使用登录用户导入,导入到的数据默认会保存到登录用户下。需要加入参数full=y,当存在表结构时,只导入数据需要加入参数data_only=y使用数据泵empdp/impdp导出、导入时,只能是保存到数据库所在的服务器上,以及导入的时候也需要在数据库所在的服务器中,使用empdp导出时默认的数据库用户为数据库所属的用户,假设数据库有两个用户一个root,一个oracle,那么导出的文件权限需要oracle用户才能进行使用。使用impdp导入时需要将对应的dmp文件保存到导入的数据库地址下,并且文件读写权限赋予数据库所属用户上。
使用数据泵操作步骤:
1、需要先在oracle端指定一个目录用于存放导出的dmp文件,需要保证内存要足够大, 不然导出空间不足的时候会自动停止报错,导致导出数据缺失。
–-查询 DMPDIR 设置导出的目录
select * from dba_directories where directory_name = ‘oracleDB’;
-–删除 DMPDIR
drop directory oracleDB
–-重建 DMPDIR
create directory oracleDB as ‘/oracle/dbbak’;
–-给DMPDIR授权