数据库提示错误代码ora 01688

本文介绍ORA-01688错误的排查与解决方案,通过查询表空间占用情况,定位并释放SYSAUX表空间资源,提供具体SQL语句与存储过程清除表内数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库提示错误代码ora 01688的解决方案一:
使用sys用户登录数据库,查询表空间占用情况,
(报这个错时,用PL/SQL用实例的用户名密码登不上去;注意要用sys用户登陆,“Connect as” 为sysdba,以下操作都是在PL/SQL中执行的)

1、确定是哪个表空间用满了(查看表空间利用率):

SELECT c.ts#, c.name,  d.contents, d.extent_management, e.file_bytes, c.used,
       SUBSTR (c.used / e.file_bytes * 100, 1, 5)
  FROM (SELECT name, ts#, SUM(used) used
          FROM (SELECT a.allocated_space * (SELECT value  -- 查询db_block_size当前值
                                              FROM v$parameter
                                             WHERE name = 'db_block_size') / 1024/ 1024 used,
                        b.ts#, b.name
                  FROM v$filespace_usage a, v$tablespace b
         WHERE a.tablespace_id = b.ts#)
         GROUP BY name, ts#) c,
        dba_tablespaces d,
       (SELECT ts#, SUM(bytes) / 1024/ 1024 file_bytes
          FROM v$datafile
         GROUP BY ts#) e      
WHERE c.name = d.tablespace_name
   AND e.ts# = c.ts#
ORDER BY ts#

若占用最大的为SYSAUX,确认SYSAUX中占用最大的表名:
执行如下:

select segment_name, sum(bytes) / 1024 / 1024
  from dba_segments
where tablespace_name = 'SYSAUX'
group by segment_name
order by 2 desc

若占用最大的为SYS_LOB开头,则执行如下sql,查询最大表名


```sql
select table_name from dba_lobs where segment_name like 'SYS_LOB0000091620C00014$$';

若查询结果为:
执行如下,可以表名开头为CLI_SWP
使用存储过程,清除表内数据

```sql
begin
    dbms_audit_mgmt.clean_audit_trail(
       audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
        use_last_arch_timestamp  =>  FALSE);
    end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值