• ORA-38301:can not perform DDL/DML over objects in Recycle Bin


       一个智障操作,drop一个用户,下面的东西比较多,删得比较慢,然后shell突然关了。

      就导致了,删不掉,又不能创建新的用户。出版本要得比较急,就先创建新的用户测试去了。

      今天要弄个东西,又想起这个事情,就处理一下。

      然后发现,报了如下的错:

    SQL> drop user user cascade;
    drop user bto cascade
    *
    ERROR at line 1:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-38301: can not perform DDL/DML over objects in Recycle Bin

       不能再Recycle Bin 的对象上中执行DDL/DML操作

       意思很明显啊,用户在回收站里面了,不能再删除了。

    oracle Recycle Bin:

    在Oracle10g中,引入了一个回收站(Recycle Bin)的概念。回收站,从原理上来说就是一个数据字典表,放置用户Drop掉的数据库对象信息。
    被用户Drop的对象并没有被Oracle删除,仍然会占用空间。除非是用户手工进行Purge或者因为存储空间不够而被Oracle清掉。
    有了回收站,能够减少很多不必要的麻烦。常常看到开发人员误删除表,我们可以充分利用10g的闪回(FLASHBACK)功能来避免类似的人为操作。
    不能对已经放到回收站(Recycle Bin)中的对象执行DDL/DML语句。

    处理:

      清空Recycle bin 中的表空间:    

    purge tablespace tablespace_name;

    搞定。

    拓展一下:

    清空recycle bin中的表空间:

    purge tablespace tablespace_name

    清空某个表空间内的某个用户的对象:

    pruge tablespace tablespace_name user user_name

    清除当前用户的对象:

    purge recyclebin

     清除所有用户的对象:

    purge dba_recyclebin

    或者,使用sql developer:

  • 相关阅读:
    如何在 Linux 中更改 swappiness
    logrotate机制&原理
    Linux命令 – ln 软连接与硬链接区别介绍
    Python实现目录文件的全量和增量备份
    tr -d命令删除与字符无关的符号
    CentOS7搭建时间服务器-chrony
    linux(centos7.0以上版本)安装 mysql-5.7.24-linux-glibc2.12-x86_64.tar 版本的mysql
    运维相关指标数据采集并ES入仓
    Kubernetes容器集群管理环境
    C++调用IDL程序的做法(三)
  • 原文地址:https://www.cnblogs.com/Springmoon-venn/p/8932688.html
Copyright © 2020-2023  润新知