ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 物化视图job无法执行

物化视图job无法执行

原创 Linux操作系统 作者:LDean 时间:2012-02-17 14:31:41 0 删除 编辑
之前把32位10.2.0.1升级到64位10.2.0.4,折腾了好久,过后一切正常,今天查了下job,发现刷新物化视图的job没有执行,next_date 已经是4000-1-1 broken也是Y了
手动执行
SQL> exec dbms_job.run(61);
BEGIN dbms_job.run(61); END;

*
第 1 行出现错误:
ORA-12011: 无法执行 1 作业
ORA-06512: 在 "SYS.DBMS_IJOB", line 406
ORA-06512: 在 "SYS.DBMS_JOB", line 275
ORA-06512: 在 line 1

单独执行对应的procedure没问题,查看alert,发现报错
Fri Feb 17 14:27:29 2012
Errors in file d:\oracle\product\10.2.0\admin\akbhdb\udump\akbhdb_ora_348.trc:
ORA-12012: 自动执行作业 61 出错
ORA-01031: 权限不足
ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2251
ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2457
ORA-06512: 在 "SYS.DBMS_IREFRESH", line 685
ORA-06512: 在 "SYS.DBMS_REFRESH", line 195
ORA-06512: 在 line 1
没升级之前都没有问题的,咋会这样
直接从权限考虑,开始赋予很多权限,都是不行,后来想到是物化视图,查询了对应物化视图有的权限
SQL> select distinct privilege from dba_sys_privs where privilege like '%MATERIALIZED%';

PRIVILEGE
----------------------------------------
DROP ANY MATERIALIZED VIEW
CREATE MATERIALIZED VIEW
ALTER ANY MATERIALIZED VIEW
CREATE ANY MATERIALIZED VIEW

直接把这4个都加上 grant 权限 to user;
再次运行job
SQL> exec dbms_job.run(61);

PL/SQL 过程已成功完成。
不甘心,开始挨个revoke
revoke DROP ANY MATERIALIZED VIEW from user;
并重复测试执行job,发现原来是ALTER ANY MATERIALIZED VIEW这个权限,这次总算安心了

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25680865/viewspace-716668/,如需转载,请注明出处,否则将追究法律责任。

下一篇: compare database
请登录后发表评论 登录
全部评论

注册时间:2011-06-11

  • 博文量
    17
  • 访问量
    35110