• Drop user 报ORA-00600 [KTSSDRP1]


    一客户删除一个数据库用户THH时报错:

    说明在获取seg$时没有找到相应的条目,先来解释下这个600错误的参数含义:

    Arg [a] Tablespace number

    Arg [b] File number

    Arg [c] Block number

     

    无法删除整个用户,那就先尝试删除用户下的每个对象,最终确认是删除THH用户下的某张表时报错,手工删除该表报相同的错误。

    SQL> drop table thh.HIS_2014123118;

    drop table thh.HIS_2014123118

    *

    ERROR at line 1:

    ORA-00600: internal error code, arguments: [ktssdrp1], [119], [117],[4081466], [], [], [], [], [], [], [], []

     

    定位到具体的对象就好办了,说明是该对象的数据字典不一致了,运行了最新的hcheck4.sql脚本检查数据字典,当前数据库的数据字典的确存在一些异常,但是却没有报出该对象相关的异常信息。

     

    既然无法通过常规的命令来删除该对象,那就只能手动修改基表了:

    SQL> select object_id, data_object_id from dba_objects where object_name='M1';

     

    OBJECT_ID DATA_OBJECT_ID

    ---------- --------------

    4084913 4084913

     

    SQL>

    SQL> delete from tab$ where obj#=4084913;

     

    1 row deleted.

     

    SQL> commit;

     

    Commit complete.

     

    SQL> update obj$ set type#=10 where obj#=4084913;

     

    1 row updated.

     

    SQL> commit;

     

    Commit complete.

     

    SQL> alter system flush buffer_cache;

     

    System altered.

     

    SQL> alter system flush shared_pool;

     

    System altered.

     

    最终,成功删除用户:

    SQL> drop user thh cascade;

     

    User dropped.

     

    SQL>

     

  • 相关阅读:
    Python字符编码补充
    shell脚本自动部署及监控
    【Linux】应用程序内存段布局
    【Linux】Core dump故障分析
    【Linux】GDB程序调试
    【Linux】小应用 大智慧
    【嵌入式】安装Linux系统到开发板
    【读书笔记】高效演讲
    【Linux】GCC编译
    【Linux】Linux 找回Root用户密码
  • 原文地址:https://www.cnblogs.com/missyou-shiyh/p/8267468.html
Copyright © 2020-2023  润新知