Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选

首页 / 数据库 / MySQL / Oracle 脚本:修复 status 为 unusable 的 index

有配置工具使用时, 经常会出现以下错误: ORA-01502: index "xxx.xxxxx" or partition of such index is in unusable state,解决方法为——以 DBA 登录,并运行以下脚本即可
  1. -- 请以 DBA 权限登录,并执行   
  2. -- 将所有 UNUSABLE 状态的 index 修复, rebuild 一下即可   
  3. declare  
  4.   -- 指向所有 UNUSABLE 状态的 index 的游标   
  5.   cursor c is   
  6.     select index_name, owner   
  7.     from dba_indexes   
  8.     where status="UNUSABLE";  
  9.     
  10.   owner dba_indexes.owner%type;  
  11.   index_name dba_indexes.index_name%type;  
  12. begin  
  13.   open c;  
  14.   loop   
  15.        fetch c into index_name, owner;   
  16.        exit when c%notfound;  
  17.          
  18.        execute immediate "alter index " || owner || "." || index_name || " rebuild";  
  19.   end loop;  
  20.   close c;  
  21. end;  
思考1: 为什么正常的操作会导致某个 index 出现 unusable 的情况?思考2:怎样在不登录 DBA 的情况下解决这个问题?(我试了一下从 user_indexes 表里可以拿到当前用户所有的 index, 但是无法编辑)Oracle 脚本:清空当前用户下所有表的数据Oracle 脚本:列出指定表的所有字段相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数