今天对生产机数据库使用impdf导入的时候,出现如下错误,错误指令为:
“ORA-39002,ORA-39070,ORA-29283,ORA-06512,ORA-29283”。
特此记录解决方案如下:
第一步,排查目录是否存在,权限是否oracle:oinstall。发现存在且权限正确。
第二步,数据库中检查并确认是否授权
执行语句如下:
sqlplus / as sysdba;
alter session set container=wmp;//如果需要修改容器,则执行
select sys_context ('USERENV', 'CON_NAME') from dual;//查询容器更改是否生效
create or replace directory DUMP_DIR as '/backup/zqw/dump';//创建目录
grant read,write on directory DUMP_DIR to enterprise,meta,wmsadmin,wmwhse1,wmwhse2,aacibus;//给用户授权
创建用户库并授权
create user meta PROFILE SCEUSER identified by WMmeta1 DEFAULT TABLESPACE SCE_COMMON TEMPORARY TABLESPACE SCE_COMMON_TMP;
grant create any table to meta;
grant dba to meta;
grant execute on DBMS_LOCK to meta;
grant select on DBA_OBJECTS to meta;
grant create any sequence to meta;
grant read,write on directory DUMP_DIR to meta;
第三步,发现重新执行导入语句还是报错,则需要更改’/backup/zqw/dump’目录权限,更改为777
impdp meta/WMmeta1@WMPSRV DIRECTORY=DUMP_DIR DUMPFILE=meta.DMP REMAP_SCHEMA=meta:meta remap_tablespace=SCE_COMMON:SCE_COMMON TRANSFORM=segment_attributes:n,OID:n EXCLUDE=STATISTICS logfile=imp_meta.log;
chmod -R 777 /backup/zqw/dump/ #更改目录权限777
chown -R oracle:oinstall /backup/zqw/dump/ #更改目录拥有者为oracle
最后,重新执行impdb命令发现导入成功。
PS:如果还是无法成功导入,如果是多机子服务器,采用虚拟服务名,则在另外一台服务器上创建相同的目录即可!
如果出现ORA-31640错误:
则首先检查权限、目录是否正确,注意wmwhse30.DMP大小写,如果不规范,则导入不成功!这里DMP一定要大写!,改了之后就能正常导入了!