oracle11g SAP测试机归档日志暴增排查(二)

简介: oracle11g SAP测试机归档日志暴增排查(二)

 接上面一的内容,通过logminer可以知道是因为oracle11g设置awr快照引起的插入数据,所以要看这个插入是否正常。

     之前也发现SYSAUX表空间也没有多少了,应该这个原因引起产生大量的日志

6、查找SYSAUX表空间满的原因

    对于SYSAUX表空间而言,如果占用过大,那么一般情况下是由于AWR信息或对象统计信息没有及时清理引起的,具体原因可以通过如下的SQL语句查询:

SELECT OCCUPANT_NAME "Item",
       SPACE_USAGE_KBYTES / 1048576 "Space Used (GB)",
       SCHEMA_NAME "Schema",
       MOVE_PROCEDURE "Move Procedure"
  FROM V$SYSAUX_OCCUPANTS
 WHERE SPACE_USAGE_KBYTES > 1048576
 ORDER BY "Space Used (GB)" DESC;

   我这里查询出来的主要原因还是SM/AWR占用了大部分空间

   通过查询占用空间较大的表,即可得到占用空间较大的原因。

SQL> select min(snap_id),max(snap_id) from wrh$_active_session_history;

exec DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id =>19267,high_snap_id => 19300);

执行完成后

SQL> select min(snap_id),max(snap_id) from wrh$_active_session_history;

      通过这种方式清理的AWR信息,再次查看SYSAUX表空间的空间,发现空间并没有被回收,使用率还和之前一样,这是因为清理AWR操作是通过DELETE操作实现的,表的水位线并没有下降导致的。但是通过再次查询可发现 WRH$_LATCH表记录已经少了。但是表大小还是没有变化。

 

查出大于100M的表分区

select distinct 'truncate table '||segment_name||';',s.bytes
from dba_segments s
where s.segment_name like 'WRH$%'
and segment_type in ('TABLE PARTITION', 'TABLE')
and s.bytes/1024/1024>100
order by s.bytes desc

其中

truncate table WRH$_EVENT_HISTOGRAM;

218103808

这个有218M

首先查看表的分区情况以及大小

SQL> select segment_name,partition_name,bytes/1024/1024 mb from dba_segments where segment_name='WRH$_EVENT_HISTOGRAM';

SEGMENT_NAME

PARTITION_NAME MB


WRH$_EVENT_HISTOGRAM

WRH$_EVENT_HISTO_MXDB_MXSN .0625

WRH$_EVENT_HISTOGRAM

WRH$_EVENT__766916574_0 208

7、对分区表进行MOVE操作,回收空间

     7.1

alter table WRH$_EVENT_HISTOGRAM move partition WRH$_EVENT__766916574_0;
SQL> alter table WRH$_EVENT_HISTOGRAM move partition WRH$_EVENT__766916574_0;
alter table WRH$_EVENT_HISTOGRAM move partition WRH$_EVENT__766916574_0
*
ERROR at line 1:
ORA-01652: unable to extend temp segment by 128 in tablespace SYSAUX

      因为sysaux的空间不够,可以考虑增加一个文件1G的SYSAUX表空间,等空间有后可以考虑删除这个新增加的文件。

        7.2 alter table WRH$_EVENT_HISTOGRAM move partition WRH$_EVENT_HISTO_MXDB_MXSN ;

这样类似可以删除其它一些表

如truncate table WRH$_SQLSTAT;

truncate table WRH$_LATCH;

等空间有了后,可以考虑调整awr参数。

       执行完MOVE操作后,需要对索引进行重建。同理,对于分区索引,只能对分区的单个索引进行重建,而不能总体重建:

ALTER INDEX WRH$_ACTIVE_SESSION_HISTORY_PK REBUILD PARTITION 分区名称;

需要注意的是,可以在以上SQL后加上“UPDATE GLOBAL INDEXES”子句让全局索引不失效。

8、调整AWR相关参数

       如果AWR信息占用过大,那么可以通过设置AWR的保留时间来减小AWR信息的存储空间。通过如下的SQL语句可以获取AWR的保留时间:

SELECT * FROM DBA_HIST_WR_CONTROL;

       通过如下的SQL语句可以设置AWR信息的保留时间为8天(8*24*60),每隔1小时收集一次AWR信息:

EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=>60, RETENTION=>8*24*60);

       需要注意的是,在Oracle 11g中,AWR默认保留8天,但原来设置成15天30分钟。

 9、统计信息的调整

     如果统计信息占用空间过大,那么可以修改统计信息的保留时间。统计信息默认保留31天,过期的统计信息会自动被删除。

SELECT DBMS_STATS.GET_STATS_HISTORY_RETENTION FROM DUAL;  --查询统计信息的保留时间

EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(7);  --设置统计信息的保留时间

若发现统计信息占用了SYSAUX上的大量空间,则可以考虑使用DBMS_STATS.PURGE_STATS过程实施清理。

 10、最后表空间也下来了,也没有出现大量日志了

 

附一些有用的SQL语句

以下的SQL语句对于诊断SYSAUX表空间的占用情况非常有用:

SELECT DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY FROM DUAL;
SELECT MIN(SAVTIME), MAX(SAVTIME) FROM WRI$_OPTSTAT_TAB_HISTORY;
SELECT MIN(SAVTIME), MAX(SAVTIME) FROM SYS.WRI$_OPTSTAT_IND_HISTORY;
SELECT MIN(SAVTIME), MAX(SAVTIME) FROM SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY;
SELECT MIN(SAVTIME), MAX(SAVTIME) FROM SYS.WRI$_OPTSTAT_HISTGRM_HISTORY;
SELECT MIN(SAVTIME), MAX(SAVTIME) FROM SYS.WRI$_OPTSTAT_AUX_HISTORY;
SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_TAB_HISTORY;
SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_IND_HISTORY;
SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY;
SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_HISTGRM_HISTORY;
SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_AUX_HISTORY;
SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_OPR;

以下SQL可以查询到无效的ASH信息:

SELECT COUNT(*)
  FROM SYS.WRH$_ACTIVE_SESSION_HISTORY A
 WHERE NOT EXISTS (SELECT 1
          FROM SYS.WRM$_SNAPSHOT B
         WHERE A.SNAP_ID = B.SNAP_ID
           AND A.DBID = B.DBID
           AND A.INSTANCE_NUMBER = B.INSTANCE_NUMBER);


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
Oracle 关系型数据库 MySQL
使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试
这篇文章是作者尚雷关于使用崖山YMP迁移Oracle/MySQL至YashanDB 23.2的验证测试分享。介绍了YMP的产品信息,包括架构、版本支持等,还详细阐述了外置库部署、YMP部署、访问YMP、数据源管理、任务管理(创建任务、迁移配置、离线迁移、校验初始化、一致性校验)及MySQL迁移的全过程。
|
监控 Oracle 关系型数据库
关系型数据库Oracle恢复测试
【7月更文挑战第20天】
509 7
|
存储 SQL Oracle
关系型数据库Oracle归档日志备份
【7月更文挑战第19天】
837 5
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之同步oracle表时,数据量约800万,检查点异常,该如何排查
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
运维 DataWorks Oracle
DataWorks产品使用合集之在标准模式下,当同步Oracle的表或视图时,是否需要在源端的测试和生产环境中都存在要同步的表或视图
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
262 3
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用合集之采集Oracle数据库时,归档日志大小暴增的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用合集之Oracle归档日志一天就达到了15GB并导致数据库崩溃,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之在读取Oracle归档日志时出现日志数量大幅增加的情况如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
345 1
|
Oracle 关系型数据库 Linux
SuSE linux server 11通过SAP来安装oracle11g
SuSE linux server 11通过SAP来安装oracle11g
552 0

推荐镜像

更多