oracle删除用户失败

数据库版本oracle10.2.0.1 ,用户无法删除

SQL> drop user mr cascade;

drop user mr cascade

ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist


打开跟踪:

alter session set events '10046 trace name context forever,level 12';

运行删除用户:drop user MR cascade

关闭跟踪:

alter session set events '10046 trace name context off';

在服务器端/oracle/admin/orcl/udump目录下可看到trace文件

用tkprof orcl2_ora_561298.trc 文件名 分析到文件,打开该文件可看到:

The following statement encountered a error during parse:

delete from system.aq$_internet_agent_privs WHERE db_username = NLS_UPPER(:1

Error encountered: ORA-00942

查metlink文档,其提供的解决方案如下:

Cause
The table system.aq$_internet_agent_privs is missing.

Solution
To implement the solution, execute the following steps:

1.Check if system.aq$_internet_agent_privs exist.

SQL> conn / as sysdba
SQL> desc system.aq$_internet_agent_privs

2.Make sure that the default tablespace of SYSTEM user is properly set to SYSTEM tablespace.

SQL> select default_tablespace from dba_users where username='SYSTEM';

DEFAULT_TABLESPACE
------------------------------
SYSTEM

3.If system.aq$_internet_agent_privs does not exist, run $ORACLE_HOME/rdbms/admin/catqueue.sql
script manually logged in as 'SYS AS SYSDBA'. This will create the system.aq$_internet_agent_privs
table

SQL> conn / as sysdba
SQL> @$ORACLE_HOME/rdbms/admin/catqueue.sql
SQL> exit

4.Confirm that system.aq$_internet_agent_privs is created properly:

SQL> desc system.aq$_internet_agent_privs

Name Null? Type
----------- -------- ------------
AGENT_NAME NOT NULL VARCHAR2(30)
DB_USERNAME NOT NULL VARCHAR2(30)

5.Then execute the DROP USER command again.

运行该脚本后,问题解决


但运行后发现exp有问题:报ora-01403 ora-06512

以下是解决办法:

$sqlplus "/as sysdba"
SQL> startup upgrade
SQL > @?/rdbms/admin/catalog.sql
SQL > @?/rdbms/admin/catproc.sql
SQL > @?/rdbms/admin/utlrp.sql
### Oracle 数据库删除失败的原因分析与解决方案 当尝试删除 Oracle 数据库时遇到失败,通常可能是由于以下几个方面的问题: #### 1. 存在活动会话或进程 如果存在未关闭的数据库连接或者正在运行的任务,则可能导致删除操作无法完成。建议先通过查询 `V$SESSION` 和 `V$PROCESS` 视图来确认是否有任何活跃的会话或后台进程仍在执行。 ```sql SELECT sid, serial#, username FROM v$session WHERE status='ACTIVE'; ``` 对于发现的每一个活动会话,可以考虑终止这些会话以确保后续的操作顺利进行[^1]。 #### 2. 文件权限不足 操作系统级别的文件访问权限设置不当也会阻碍数据库及其组件的成功移除。特别是涉及到关键路径下的文件夹(如 C:\Oracle),以及注册表项中的条目。应验证当前用户是否具有足够的权限去读取、写入甚至删除目标位置的内容[^4]。 #### 3. 注册表残留数据 即使物理上的文件已经被清除,在 Windows 的注册表里仍可能存在指向旧版本 Oracle 安装的信息。这不仅影响新安装过程也可能干扰到彻底卸载旧版软件的工作。因此有必要清理掉那些不再有效的键值对。 #### 4. 日志记录障碍 某些情况下,系统试图向特定的日志文件追加信息却遭遇了异常状况——比如磁盘空间已满或是该文件正被另一个程序锁定占用着。针对此类情形应当检查并释放必要的存储资源;同时排查是否存在竞争条件阻止正常写入行为的发生。 为了有效处理上述提到的各种潜在因素所引发的问题,推荐采取如下措施: - 彻底断开所有客户端应用程序同服务器端之间的网络通信链路; - 使用管理员身份启动命令提示符窗口来进行接下来的手动干预工作; - 执行官方文档中给出的标准流程逐步解除依赖关系直至最终实现完全卸载目的为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值