暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

v$diag_alert_ext视图使用方法及其space preallocation特性说明

Oracle蓝莲花 2021-04-15
921

1.v$diag_alert_ext功能说明:

1.1在oracle 12c版本中V$DIAG_ALERT_EXT显示当前容器(PDB)的自动诊断存储库(ADR)中基于xml的警报日志的内容,Oracle将警报日志和监听日志存储在服务器上

对应alert和listener文件中,传统的DBA将编写shell脚本来搜索这些文件,以查找重要的错误消息,或者通过adrci工具从11gR2开始,我们可以使用

v$diag_alert_ext视图和x$dbgalertext固化视图从alert.log日志以及listener.log中检索数据,而不用再从OS操作系统层面定位问题。


1.2例如我们提交如下查询,别着急,一会我们来封装具体的问题定位代码

1.3以下为该动态性能视图关键字段的简要说明:

1.3.1ORIGINATING_TIMESTAMP 消息生成的日期和时间

1.3.2NORMALIZED_TIMESTAMP 消息发出的日期和时间,规范化为时钟漂移到Oracle Enterprise Manager存储库的时间

1.3.3ORGANIZATION_ID 编写源组件的组织的ID,通常是组织的域

1.3.4HOST_ADDRESS mesaage原始主机的其他网络地址的IP

1.3.5MESSAGE_TYPE 消息类型,指示需要不同类型的响应。可能的值有:

1:未知——本质上是NULL类型

2:INCIDENT_ERROR -这个程序遇到了一个错误,由于一些内部或意想不到的原因,它必须报告给Oracle supper 

3:错误-某种类型的错误已经发生

4:警告:一个行动发生或条件被发现,应该审查和可能需要行动

5:通知:报告一个正常的动作或事件。这可能是一个用户操作,比如“登录完成”

6:跟踪:诊断跟踪的输出

1.3.6MESSAGE_LEVEL消息所属级别。较低的级别值意味着错误的严重程度较高。可能的值有:

1:关键:关键错误

2:严重:严重错误

8:重要:重要的信息

16:正常:正常的信息

1.3.7SUPPLEMENTAL_DETAILS 特定于特定程序的补充数据和完成诊断所需的错误消息。类似于DETAILED_LOCATION中引用的额外细节,可以在消息本身中提供

1.3.8SUPPLEMENTAL_ATTRIBUTES 特定于消息的补充属性。此字段包含事件类型错误消息的影响

1.4以下,我们看具体的代码封装:

1.4.1:对应于此数据库实例的监听日志。注意,如果监听程序支持同

一个操作系统多个数据库实例,则不会区分或过滤

1.4.2Oracle数据库警告日志问题排查脚本:

具体内容不打印了,都是常规报错信息

......

/

1.4.3下面的脚本通过PL/SQL打印出一个格式化的文件内容

代码逻辑介绍:首先数据库中动态创建一个目录,运行utl_file以获取跟踪文件,并在完成时删除该目录。请在运行之前仔细检查这段代码。

脚本实际用途可能不高,一般不会利用dbms_output.putline结果进行分析,只是提供一种参考意见。

注意:该脚本非600团队原创脚本,我们在原有脚本内容做了部分改动,借鉴了整体代码编程框架逻辑。

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

2.在警报日志中可以看到文件扩展名消息。也没有显式的文件大小调整DDL,如下内容显示:

注:1.在一个具有大量DML (insert/update/delete)的繁忙系统中,警报日志可能会被许多这样的文件扩展消息的内容提示

2.这些文件扩展信息是诊断增强的结果,通过未发布的方式在警报日志中记录自动数据文件大小调整操作,并以以下形式发送消息:

" NN文件从x字节自动扩展到y字节" 这在诊断可能受到文件大小调整影响的问题时非常有用。

3.bug 18603375引入了一个新的隐藏参数参数“_disable_file_resize_logging”以阻止这些消息被写入到警报日志中

4.同时我们可以设置alter system set "_disable_file_resize_logging"=TRUE关闭此提示,该隐含参数默认为FALSE

5.Bug 17596398 -在警告日志中报告数据文件大小调整操作的增强

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

3.space preallocation特性简单介绍:

3.1 11g以后oracle引入了预分配space preallocation的新特性,该新特性主要涉及三个部分内容:

3.1.1表空间的预分配和扩展

3.1.2数据段segment的预分配和扩展

3.1.3LOB chunk的预分配和扩展

3.2对于表空间预分配 space preallocation特性会基于过去6个小时内的表空间使用情况,每隔10分钟分析一次,基于以下的数据分析:

3.4LOB chunk的使用情况 会每10分钟记录在内存中,也会定期flush到AWR中,基于以下的数据分析

注:1.这些预分配和扩展任务主要由SMCO(Space Management Coordinator Process)和其小工进程W00n(slave )一起完成。 SMCO和W00n是基于任务task驱动的后台任务

Framework。这个后台任务体系是基于实例的,而非基于数据库的。每一个实例instance有其自己的后台任务服务体系,运行和处理在本实例发起的任务。RAC的不同实例

之间不会交互来负责此种任务的负载


2.Task coordinator ( SMCO ) ,SMCO充当调度进程以便管理任务队列和slave进程池。其主要任务是在几个task queue之间移动任务,清理过期任务,

基于任务需要来动态分配新的slave(W00n)进程,并监控slave进程。 一个实例只有一个SMCO进程,且SMCO进程不是fatal进程,kill了一般也没事

3.对于由于SMCO 或W00n在完成space preallocation过程中遇到的问题时,可以考虑禁用该特性

alter system set "_enable_spacebg"=false;

alter system set "_enable_space_preallocation"=0

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

4.关于smco空间管理协调进程的启动和使用

4.1oracle官方给出如下解释说明;

注:1.SMCO协调以下空间管理任务。它执行主动的空间分配和空间回收。它动态地生成从进程(Wnnn)来实现任务,比较显著的就是表空间预读取 预分配功能

2.要使SMCO自动扩展数据文件,应该将数据文件的autoextend设置为ON。在表空间中,扩展被平均分配到所有数据文件中,这些数据文件还没有达到它们的

最大大小,并且仍然限制在10%以内

3.SMCO过程提供的特性称为“表空间级空间(区段)预分配”。设置“_enable_space_preallocation”=0即可关闭,例如ALTER SYSTEM SET "_ENABLE_SPACE_PREALLOCATION" = 0;

4.该特性可以通过设置“_enable_space_preallocation”=3(默认值)随时再次打开,例如ALTER SYSTEM SET "_ENABLE_SPACE_PREALLOCATION" = 3;

5.

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

                    《点亮梦想,拒绝平庸》

                  600团队(QQ群:851604218)

文章转载自Oracle蓝莲花,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论