前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​Oracle日志分析和工具介绍

​Oracle日志分析和工具介绍

原创
作者头像
炒香菇的书呆子
修改2023-12-13 08:04:08
3550
修改2023-12-13 08:04:08
举报

随着数据库规模的增长和复杂性的增加,管理和维护Oracle数据库变得越来越具有挑战性。

其中,日志分析是数据库管理和维护的重要部分之一,它可以帮助数据库管理员(DBA)识别和解决各种性能、安全和可用性问题。

本文将介绍Oracle日志分析的基本概念、方法和工具,并通过示例代码演示如何进行日志分析。

一、Oracle日志类型


Oracle数据库提供了多种类型的日志,以帮助DBA监控和诊断数据库的运行状况。其中,最常见的日志类型包括:

  1. 警告日志(Alert Log):记录数据库运行期间发生的重要事件、错误和警告信息。 Alert Log是数据库管理系统(DBMS)中的一个重要组件,用于记录数据库运行期间发生的重要事件、错误、警告和信息性消息。 通常存放在<ORACLE_BASE>/diag/rdbms/<dbname>/<instance_name>/alert目录下 2. 追踪文件(Trace Files):记录数据库进程的详细跟踪信息,用于诊断和调试问题。 3. 重做日志(Redo Log):记录数据库的变化,用于数据恢复和备份。 默认情况下,重做日志文件存储在数据目录下的datadir文件夹中 4. 归档日志(Archived Redo Log):是重做日志的归档版本,用于数据备份和恢复。 路径在数据库安装存放目录 日志举例
代码语言:shell
复制
alter database backup controlfile to '/usr/openv/rman/ora12_arch_wjcdb1.cf'
Completed: alter database backup controlfile to '/usr/openv/rman/ora12_arch_wjcdb1.cf'
Tue Dec 12 14:58:27 2023
Thread 1 advanced to log sequence 291654 (LGWR switch)
  Current log# 6 seq# 291654 mem# 0: +SYSDG/WJCDB/ONLINELOG/group06_1
  Current log# 6 seq# 291654 mem# 1: +DATADG/WJCDB/ONLINELOG/group06_1
Tue Dec 12 14:58:31 2023
Archived Log entry 576970 added for thread 1 sequence 291653 ID 0xac7254c8 dest 1:
Tue Dec 12 15:03:09 2023
Thread 1 advanced to log sequence 291655 (LGWR switch)
  Current log# 1 seq# 291655 mem# 0: +SYSDG/WJCDB/ONLINELOG/group01_1
  Current log# 1 seq# 291655 mem# 1: +DATADG/WJCDB/ONLINELOG/group01_1
Tue Dec 12 15:03:11 2023
Archived Log entry 576972 added for thread 1 sequence 291654 ID 0xac7254c8 dest 1:
Tue Dec 12 15:26:25 2023
Thread 1 advanced to log sequence 291656 (LGWR switch)
  Current log# 14 seq# 291656 mem# 0: +SYSDG/WJCDB/ONLINELOG/group14_1
  Current log# 14 seq# 291656 mem# 1: +DATADG/WJCDB/ONLINELOG/group14_1

二、日志分析工具


Oracle提供了多种工具来分析日志,其中最常用的工具包括:

  1. LogMiner:用于分析重做日志和归档日志,提取数据变化和历史信息。
  2. Oracle Enterprise Manager(OEM):提供了一个集成的日志分析和管理平台,支持各种日志类型的分析和报告。
  3. Automatic Diagnostic Repository(ADR):用于收集、分析和报告数据库问题的诊断信息。

三、日志分析示例:使用LogMiner分析重做日志


  1. 开启数据库归档日志
代码语言:shell
复制
.--关闭所有节点
shutdown immediate;

--启动一个节点至mount状态
startup mount;

--修改数据库为archivelog mode
alter database archivelog;

--查看数据库归档状态
archive log list;

--打开当前实例数据库
alter database open;

--启动其他节点数据库
startup;

打开数据库最小附加日志

在生成LogMiner分析的日志文件之前,必须启用附加日志记录。

启用附加日志记录时,需要在重做流中记录附加信息,以使重做日志文件中的信息更加详细。所以必须至少启用最少的补充日志记录

执行以下SQL:

代码语言:shell
复制
SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;

创建测试数据

创建数据

代码语言:shell
复制
--使用普通用户shuaige创建测试数据
--创建测试表
SHUAIGE@orcl> 
CREATE TABLE shuaige.test_tab
(
    ID number(32),
    NAME1 varchar2(30),
    NAME2 varchar2(30),
    NAME3 varchar2(30),
    ins_time date DEFAULT SYSDATE
)
tablespace shuaige_dat;

Table created.

--添加表注释
SHUAIGE@orcl> COMMENT ON TABLE shuaige.test_tab IS '测试表';

Comment created.

--添加主键和索引
SHUAIGE@orcl> 
alter table test_tab add constraint shuaige.pk_test_tab primary key(ID)
using index
  3  tablespace shuaige_dat;

Table altered.

--创建更新数据时间触发器
SHUAIGE@orcl> 
CREATE TRIGGER shuaige.test_tab_trigger
    before  INSERT OR UPDATE ON shuaige.test_tab
FOR EACH ROW
BEGIN
    IF UPDATING then
        :NEW.INS_TIME := SYSDATE;
    END IF;
END;
  9  /

Trigger created.

--批量插入数据
SHUAIGE@orcl> 
begin
  for i in 1 .. 10 loop
    INSERT INTO "SHUAIGE"."TEST_TAB" ("ID", "NAME1", "NAME2", "NAME3")
    VALUES (i, 'name1_'|| i, 'name2_' || i, 'name3_' || i);
  end loop;
end;
/

SHUAIGE@orcl> commit;

Commit complete.

启动LogMiner

代码语言:shell
复制
SYS@orcl> 
EXECUTE DBMS_LOGMNR.START_LOGMNR(-
   OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

PL/SQL procedure successfully completed.

格式化输出SQL

代码语言:shell
复制
EXECUTE DBMS_LOGMNR.START_LOGMNR(-
   OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + -
              DBMS_LOGMNR.COMMITTED_DATA_ONLY + -
              DBMS_LOGMNR.PRINT_PRETTY_SQL);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档