oracle 10.2.0.1数据库expdp导出数据报错,提示SYS.DBMS_INTERNAL_LOGSTDBY package
不能被调用
查看package状态显示无效,重新编译包报错,提示依赖的table或view不存在
进一步查看编译此包所依赖的对象有哪些是不存在的,查询如下:
根据以上查询结果,显示对象LOGSTDBY$SKIP_SUPPORT不存在,
在数据库里确认此表确实不存在。查找mos发现此表可以重建,建表语句 如下:
create table system.logstdby$skip_support (
action number not null, /* number as seen in sys.audit_actions */
/* reserving actions 0 & -1 for internal skip schema list */
name varchar2(30) not null, /* action to skip or schema */
spare1 number, /* Future expansion */
spare2 number, /* Future expansion */
spare3 varchar2(2000) /* Future expansion */
) tablespace SYSAUX;
重建LOGSTDBY$SKIP_SUPPORT此表后,
再次编译SYS.DBMS_INTERNAL_LOGSTDBY包,
成功编译。最后测试expdp导出成功 。
但为什么内部表LOGSTDBY$SKIP_SUPPORT不存在,
具体原因未知。
处理过程中还发现一个oracle bug,MOS文档ID 465737.1
Example:
大概的意思是,一个普通用户默认表空间为users,当赋予这个用户dba权限再回收后,这个用户就没有了使用表空间users的权限,需要再次授权resource权限才可以使用users表空间(grant resource to xxxx )。