之前把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,发现报错
单独执行对应的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
直接把这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这个权限,这次总算安心了
revoke DROP ANY MATERIALIZED VIEW from user;
并重复测试执行job,发现原来是ALTER ANY MATERIALIZED VIEW这个权限,这次总算安心了
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25680865/viewspace-716668/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25680865/viewspace-716668/