IMP-00013 问题及解决方法

简介: 昨天在生产上出现了一个问题,客户的dba发现,使用临时用户导出了一个dump之后,无法导入测试环境,报错是常见的IMP-00013: only a DBA can import a file exported by another DBA  这个问题一般碰到的处理方法就是在给目标环境的用户赋予dba权限,或者细粒度一些,赋予imp_full_database的权限,就能解决。
昨天在生产上出现了一个问题,客户的dba发现,使用临时用户导出了一个dump之后,无法导入测试环境,报错是常见的
IMP-00013: only a DBA can import a file exported by another DBA 
这个问题一般碰到的处理方法就是在给目标环境的用户赋予dba权限,或者细粒度一些,赋予imp_full_database的权限,就能解决。

我检查了一下目标环境,是11g的库
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export file created by EXPORT:V11.02.00 via conventional path
IMP-00013: only a DBA can import a file exported by another DBA
IMP-00000: Import terminated unsuccessfully

SQL> show parameter insta
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
active_instance_count                integer
cluster_database_instances           integer     1
instance_groups                      string
instance_name                        string      TEST02
instance_number                      integer     0
instance_type                        string      RDBMS
open_links_per_instance              integer     4
parallel_instance_group              string
parallel_server_instances            integer     1
SQL> select * from dba_sys_privs where grantee = 'TESTAPP';
GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
TESTAPP                      ON COMMIT REFRESH                        NO
TESTAPP                      CREATE TABLE                             NO
TESTAPP                      CREATE TYPE                              NO
TESTAPP                      GLOBAL QUERY REWRITE                     NO
TESTAPP                      QUERY REWRITE                            NO
TESTAPP                      CREATE ANY SYNONYM                       NO
TESTAPP                      UNLIMITED TABLESPACE                     NO

7 rows selected.
--查看用户的role,已经有dba了。
SQL> select * from dba_role_privs where grantee ='TESTAPP';
GRANTEE                        GRANTED_ROLE                   ADM DEF
------------------------------ ------------------------------ --- ---
TESTAPP                      TIGER_ROLE                     NO  YES
TESTAPP                      TESTAPP_SEL                  YES NO
TESTAPP                      TESTAPP_ALL                  YES NO
TESTAPP                      DBA                            NO  NO

dba权限已经存在,为了尽快解决,尝试revoke,再赋予一次dba权限(需要注意,revoke dba权限可能导致quota unlimited on tablespace的权限丢失)
再次尝试导入,竟然还是同样的错误。


查看其它的dba用户,发现default字段是YES,查看metalink   ID 949279.1,里面也给出了类似问题的解决方法。
SQL> select * from dba_role_privs where grantee ='N1';


GRANTEE                        GRANTED_ROLE                   ADM DEF
------------------------------ ------------------------------ --- ---
N1                             DBA                            NO  YES

CAUSE

The granted roles are not activated (DEFAULT_ROLE is NO).

SOLUTION

First activate the roles with: 

SQL> alter user usr001 default role all; 

再次尝试。
SQL> ALTER USER TESTAPP DEFAULT ROLE ALL;
User altered.

激活后,再次验证,发现dba权限已经default了。

SQL> select * from dba_sys_privs where grantee = 'TESTAPP';


GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
TESTAPP                      ON COMMIT REFRESH                        NO
TESTAPP                      CREATE TABLE                             NO
TESTAPP                      CREATE TYPE                              NO
TESTAPP                      GLOBAL QUERY REWRITE                     NO
TESTAPP                      QUERY REWRITE                            NO
TESTAPP                      CREATE ANY SYNONYM                       NO
TESTAPP                      UNLIMITED TABLESPACE                     NO
7 rows selected.

SQL> select * from dba_role_privs where grantee ='TESTAPP';


GRANTEE                        GRANTED_ROLE                   ADM DEF
------------------------------ ------------------------------ --- ---
TESTAPP                      TIGER_ROLE                     NO  YES
TESTAPP                      TESTAPP_SEL                  YES YES
TESTAPP                      TESTAPP_ALL                  YES YES
TESTAPP                      DBA                            NO   YES

再次导入,就没有碰到问题。





目录
相关文章
|
数据库 C++
VS error C2471: 无法更新程序数据库vc90.pdb的解决办法
VS error C2471: 无法更新程序数据库vc90.pdb的解决办法
277 0
|
Oracle 关系型数据库
ORACLE exp/imp导入报错IMP-00009&IMP-00028&IMP-00015
    2017年8月14日,一实施同事使用imp导入exp导出的dmp文件时,遇到报错IMP-00009&IMP,具体报错如图所示: 出现报错的原因可能是dmp文件本身不完整,如果仍要导入数据,可以对imp命令加上commit=yes进行控制,可行的imp导入命令...
2685 0
|
Oracle 关系型数据库 数据库
oracle数据库impdp导入dmp文件功能演示,imp导入IMP-00038: Could not convert to environment character sets handle问题解决
oracle数据库impdp导入dmp文件功能演示,imp导入IMP-00038: Could not convert to environment character sets handle问题解决
767 0
|
Oracle 关系型数据库 数据库
|
运维 Oracle 关系型数据库
|
运维 Oracle 关系型数据库
【故障处理】IMP-00010错误 12C的dmp文件导入11G
【故障处理】IMP-00010错误 12C的dmp文件导入11G 1  BLOG文档结构图   2  前言部分 2.
1730 0
|
SQL 数据库
IMP-00009: 导出文件异常结束
今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009: 导出文件异常结束” 错误,google一下,发现可能有如下原因导致 imp的数据太大,没有写buffer和commit 两个数据库字符集不同 从低版本exp的dmp文件,向高版本imp 导出的dmp文件出错 ...
1707 0
|
Oracle 关系型数据库 数据库
Oracle 11G R2 用exp无法导出空表解决方法
Oracle 11G在用EXPORT导出时空表不能导出 11G R2中有个新特性当表无数据时不分配segment以节省空间 解决方法 一、 insert一行再rollback就产生segment了。
1147 0