归档—监控ORACLE数据库告警日志
ORACLE数据库监控配置规范方案

ORACLE数据库配置规范和监控清单2015年12月目录一、常规参数配置 (3)1.1 数据库最大连接数 (3)1.2 归档配置 (3)1.3 最大文件数设置 (4)1.4 关闭回收站 (4)1.5 控制文件配置 (5)1.6 白名单设置 (5)1.7 闪回区设置 (6)1.8 在线日志组 (6)1.9 控制文件记录保留数 (7)二、常用监控项 (8)2.1 数据库在用连接数 (8)2.2 监控数据库文件数 (8)2.3 表空间使用率 (8)2.4 闪回区使用率 (9)2.5 数据库等待事件 (10)2.6 告警日志监控 (10)2.7 灾备DataGuard同步监控 (10)2.8 AWR采样报告分析 (10)一、常规参数配置1.1数据库最大连接数参数:processes说明:数据库用户最大连接数通过processes参数进行配置,默认值为 300,该值表示能够同时连接到数据库的最大会话数,当连接数达到最大值,后续新增连接均会被拒绝。
修改命令:alter system set processes=1000 scope=spfile;生效方式:需重启实例生效。
1.2归档配置参数:archive log list说明:数据库开启归档,任何生产环境均应在归档方式下运行,从而达到可通过备份进行数据恢复要求,提高系统安全性修改命令:数据库启动至mount状态,执行 alter database archivelog;生效方式:重启数据库设置生效1.3最大文件数设置参数:db_files说明:该参数用于控制在扩容表空间时,数据文件能够达到的最大数量,默认值为 200修改命令:alter system set db_files=800 scope=spfile;生效方式:重启数据库生效1.4关闭回收站参数:recyclebin说明:如果回收站未关闭,则如果表对象被删除,将进入回收站,并不会释放占用的存储修改命令:alter system set recyclebin=’off’ scope=spfile;生效方式:重启实例生效1.5控制文件配置参数:control_files说明:该参数用于指定在DB启动时,读取的控制文件来源,如果有多个控制文件,每个控制文件完全一致,生产系统建议至少为两组冗余,防止出现控制文件损坏后必须进行控制文件手工重建风险。
oracle警告日志 (20页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==oracle警告日志篇一:oracle 11g的警告日志和监听日志删除oracle 11g的警告日志和监听日志oracle 11g的监听日志和警告日志都是在/u01/oracle/diag/tnsls/oracle/listener目录和/u01/oracle/diag/rdbms/db1/db1目录下都有以下分别简称listener目录和db1目录。
这两目录下都有如下目录:alert cdump hm incident incpkg ir lck metadata stage sweep trace其中警告日志在alert目录下,监听日志在trace目录下。
listener目录下产生的日志文件比较大,是主要清理的对象,而db1目录下产生的文件比较小,基本不需要清除。
在listener目录下监听日志是一个名为listener.log的文件,而警告日志log.xml,这个日志每到11M左右就会分割成一个log_XXXX.xml的日志,逐渐累加。
而在db1目录下两个日志的方式刚好相反,监听日志分割成很多个以.trc .trm的文件,而警告日志只有一个log.xml的文件。
不知道oracle在搞什么鬼,也不知道原理是什么。
希望有了解的朋友给予指点。
删除监听日志的方法如下:切换到oracle用户su oracle$lsctl set log_status off$mv listener.log /backup/$lsctl set log_status on监听日志启动后就会自动创建一个全新的listener.log文件,备份好的文件可以删除。
如果不执行上述的命令直接删除listener.log,系统是不会创建的。
警告日志可以用以下命令移动或者删除find . -mtime +10 -exec mv {} /backup/alert_log/ \;oracle 11g删除alert 日志(ADRCI 命令)alert 的日志有时候非常大, log.xml log[0-9].xml 文件。
查询oracle归档日志是否开启,Oracle开启归档日志以及关闭归档日志

查询oracle归档⽇志是否开启,Oracle开启归档⽇志以及关闭归档⽇志racle数据库可以运⾏在2种模式下:归档模式(archivelog)和⾮归档模式(noarchivelog)归档模式可以提⾼Oracle数据库的可恢复性,⽣产数据库都应该运⾏在此模式下,归档模式应该和相应的备份策略相结合,只有归档模式没有相应的备份策略只会带来⿇烦。
本⽂简单介绍如何启⽤和关闭数据库的归档模式。
1.归档⽇志开启准备⼯作:1.进⼊dos窗⼝—>>> 菜单键+R,进⼊ 运⾏ 界⾯,输⼊cmd2.登录 sqlplus,—>> ⽅法: sqlplus/nolog,切忌:不要输⼊sqlplus/noarchivelog; 加上 分隔符 ;,这样进⼊的sqlplus的命令参数帮助3.登⼊管理员—>> ⽅法: conn/as sysdba;4.开启归档⽇志4.1 shutdown immediate; –关闭数据库4.2 startup mount; – 打开数据库4.3 alter database archivelog;—开启归档⽇志4.4 alter database open;–开启数据库4.5 archive log list; – 查看归档⽇志是否开启开启状态:数据库⽇志模式 存档模式⾃动存档 启⽤存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机⽇志序列 49下⼀个存档⽇志序列 51当前⽇志序列 515.关闭归档⽇志5.1 shutdown immediate;5.2 startup mount;5.3 alter database noarchivelog;5.4 alter database open;5.5 archive log list ;–查看归档⽇志是否关闭数据库⽇志模式 ⾮存档模式⾃动存档 禁⽤存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机⽇志序列 49当前⽇志序列 51归档⽇志开启语句:Microsoft Windows [版本 6.1.7601]版权所有 (c) 2009 Microsoft Corporation。
Oracle的告警日志的查看与监控

Oracle的告警⽇志的查看与监控Oracle的数据库⽇志⼤致可以分为三⼤类告警⽇志、跟踪⽇志、重做⽇志今天主要来谈谈告警⽇志告警⽇志(记录报错信息)⼀般命名为alert_<SID>.log,数据库告警⽇志是按时间顺序记录message和错误信息。
告警⽇志具体记录的内容1:所有的内部错误(ORA-600)信息,块损坏错误(ORA-1578)信息,以及死锁错误(ORA-60)信息等。
2:管理操作,例如CREATE、ALTER、DROP语句等,以及数据库启动、关闭以及⽇志归档的⼀些信息。
2.1 涉及物理结构的所有操作:例如创建、删除、重命名数据⽂件与联机重做⽇志⽂件的ALTER DATABASE命令,此外还涉及重新分配数据⽂件⼤⼩以及将数据⽂件联机与脱机的操作。
2.2 表空间操作,例如DROP与CREATE命令,此外还包括为了进⾏⽤户管理的备份⽽将表空间置⼊和取出热备份模式的操作3:与共享服务器或调度进程相关功能的消息和错误信息。
4:物化视图的⾃动刷新过程中出现的错误。
5:动态参数的修改信息。
查看告警⽇志所在的路径SQL> show parameter background_dump_dest;如何监控告警⽇志1.通过外部表来查看告警⽇志⽂件的内容。
相当的⽅便。
然后也是使⽤定制SQL语句来查询错误信息依据⽇志所在路径创建逻辑⽬录create or replace directory alert_log as'/home/oracle/app/product/19.3.0/dbhome_1/rdbms/log';创建外部表关联这个⽬录,就可以直接通过表查看⽇志信息了create table alert_logs(text varchar2(2000))organization external(type oracle_loaderdefault directory alert_logaccess parameters(records delimited by newlinefieldsreject rows with all null fields)location('alert_CDB.log'))reject limit unlimited;检查是否存在数据库系统错误提⽰信息,查看有⽆“ORA-”,Error”,“Failed”等出错信息。
OracleOracle日志分类

Oracle-归档日志详解(运行模式、分类)一、Oracle日志分类分三大类:Alert log files--警报日志,Trace files--跟踪日志(用户和进程)和redo log 重做日志(记录数据库的更改)。
本文主要关注Oracle的重做日志。
重做日志分为在线重做日志和归档重做日志。
online Redo log files--在线重做日志,又称联机重做日志,指Oracle以SQL脚本的形式实时记录数据库的数据更新,换句话说,实时保存已执行的SQL脚本到在线日志文件中(按特定的格式)。
Archive Redo log files--归档重做日志,简称归档日志,指当条件满足时,Oracle将在线重做日志以文件形式保存到硬盘(持久化)。
重做日志的简单原理:在数据更新操作commit前,将更改的SQL脚本写入重做日志。
主要用于数据库的增量备份和增量恢复。
重做日志直接对应于硬盘的重做日志文件(有在线和归档二种),重做日志文件以组(Group)的形式组织,一个重做日志组包含一个或者多个日志文件。
二、关于在线重做日志(online redo log)在线重做日志的原理:对于在线重做日志,Oracle 11g默认对于每个数据库实例,建立3个在线日志组,每组一个日志文件,文件名称为REDO01.LOG,REDO02.LOG和REDO03.LOG。
(用户可以通过视图操作添加/修改/删除日志组和日志文件来自定义在线重做日志)每组内的日志文件的内容完全相同,且保存在不同的位置,用于磁盘日志镜像,以做多次备份提高安全性。
默认情况这3组通常只有一组处于活动状态,不断地同步写入已操作的脚本,当日志文件写满时(达到指定的空间配额),如果当前数据库处于归档模式,则将在线日志归档到硬盘,成为归档日志;若当前数据库处于非归档模式,则不进行归档操作,而当前在线日志的内容会被下一次重新写入覆盖而无法保存。
因此,通常数据库在运行时,是处于归档模式下的,以保存数据更新的日志。
第二章 Oracle 警告(Alert)和追踪(trace)文件

第二章
Oracle 警告(Alert)和追踪(trace)文件
Copyright © Sinobest Technology Holdings Ltd. 2006. All rights reserved.
1
ORACLE
学习目的
完成本章之后,我们可以掌握:
• •
描述警告日志文件的位置及作用 描述后端及用户进程追踪文件的位置及作用
Copyright © Sinobest Technology Holdings Ltd. 2006. All rights reserved.
8
ORACLE
控制用户文件的位置
Instance SGA
Shared pool
User process
Server process
<SID>_ora_<PID>.trc
Copyright © Sinobest Technology Holdings Ltd. 2006. All rights reserved.
3
ORACLE
警告日志文件(Alert Log File)
• •
警告日志文件包含按时间顺序的信息与错误 定期检查警告日志文件:
– 侦测系统内部错误 (ORA-600) 和有没有坏块
– 监控数据库的操作
– 看非默认的初始化参数
•
对警告日志文件定期清除或廋身
Copyright © Sinobest Technology Holdings Ltd. 2006. All rights reserved.
4
ORACLE
控制警告日志文件的位置
Instance SGA
Shared pool
Oracle-归档日志详解(运行模式、分类)

Oracle-归档⽇志详解(运⾏模式、分类)⼀、Oracle⽇志分类分三⼤类: Alert log files--警报⽇志,Trace files--跟踪⽇志(⽤户和进程)和redo log 重做⽇志(记录数据库的更改)。
本⽂主要关注Oracle的重做⽇志。
重做⽇志分为在线重做⽇志和归档重做⽇志。
online Redo log files--在线重做⽇志,⼜称联机重做⽇志,指Oracle以SQL脚本的形式实时记录数据库的数据更新,换句话说,实时保存已执⾏的SQL脚本到在线⽇志⽂件中(按特定的格式)。
Archive Redo log files--归档重做⽇志,简称归档⽇志,指当条件满⾜时,Oracle将在线重做⽇志以⽂件形式保存到硬盘(持久化)。
重做⽇志的简单原理:在数据更新操作commit前,将更改的SQL脚本写⼊重做⽇志。
主要⽤于数据库的增量备份和增量恢复。
重做⽇志直接对应于硬盘的重做⽇志⽂件(有在线和归档⼆种),重做⽇志⽂件以组(Group)的形式组织,⼀个重做⽇志组包含⼀个或者多个⽇志⽂件。
⼆、关于在线重做⽇志(online redo log)在线重做⽇志的原理:对于在线重做⽇志,Oracle 11g默认对于每个数据库实例,建⽴3个在线⽇志组,每组⼀个⽇志⽂件,⽂件名称为REDO01.LOG,REDO02.LOG和REDO03.LOG。
(⽤户可以通过视图操作添加/修改/删除⽇志组和⽇志⽂件来⾃定义在线重做⽇志)每组内的⽇志⽂件的内容完全相同,且保存在不同的位置,⽤于磁盘⽇志镜像,以做多次备份提⾼安全性。
默认情况这3组通常只有⼀组处于活动状态,不断地同步写⼊已操作的脚本,当⽇志⽂件写满时(达到指定的空间配额),如果当前数据库处于归档模式,则将在线⽇志归档到硬盘,成为归档⽇志;若当前数据库处于⾮归档模式,则不进⾏归档操作,⽽当前在线⽇志的内容会被下⼀次重新写⼊覆盖⽽⽆法保存。
因此,通常数据库在运⾏时,是处于归档模式下的,以保存数据更新的⽇志。
监控Oracle数据库的常用shell脚本

监控Oracle数据库的常⽤shell脚本本⽂介绍了8个常⽤的监控数据shell脚本。
⾸先回顾了⼀些DBA常⽤的Unix命令,以及解释了如何通过Unix Cron来定时执⾏DBA脚本。
⽹上也有好多类似的⽂章,但基本上都不能正常运⾏,花点时间重新整理了下,以后就能直接使⽤了。
⼀.同时⽂章还介绍了8个重要的脚本来监控Oracle数据库:1.检查实例的可⽤性2.检查监听器的可⽤性3.检查alert⽇志⽂件中的错误信息4.在存放log⽂件的地⽅满以前清空旧的log⽂件5.分析table和index以获得更好的性能6.检查表空间的使⽤情况7.找出⽆效的对象8.监控⽤户和事务⼆.DBA需要的Unix基本知识基本的UNIX命令,以下是⼀些常⽤的Unix命令:ps--显⽰进程grep--搜索⽂件中的某种⽂本模式mailx--读取或者发送mailcat--连接⽂件或者显⽰它们cut--选择显⽰的列awk--模式匹配语⾔df--显⽰剩余的磁盘空间以下是DBA如何使⽤这些命令的⼀些例⼦:1. 显⽰服务器上的可⽤实例:$ ps -ef| grep smonoracle 22086 1 0 02:32:24 ? 0:04 ora_smon_PPRD10oracle 5215 28972 0 08:10:19 pts/4 0:00 grep smon2. 显⽰服务器上的可⽤监听器:$ ps -ef grep listener grep -v grep(grep命令应该加上-i参数,即grep -i listener,该参数的作⽤是忽略⼤⼩写,因为有些时候listener是⼤写的,这时就会看不到结果)$ ps -ef|grep -i listeneroracle 9655 1 0 Mar 12 ? 0:01 /data/app/oracle/9.2.0/bin/tnslsnr LISTENER -inheritoracle 22610 1 0 02:45:02 ? 0:02 /data/app/oracle/10.2.0/bin/tnslsnr LISTENER -inheritoracle 5268 28972 0 08:13:02 pts/4 0:00 grep -i listener3. 查看Oracle存档⽬录的⽂件系统使⽤情况$ df -k | grep /data/dev/md/dsk/d50 104977675 88610542 15317357 86% /data4. 统计alter.log⽂件中的⾏数:$ cat alert_PPRD10.log | wc -l13124$ more alert_PPRD10.log | wc -l131245. 列出alert.log⽂件中的全部Oracle错误信息:$ grep ORA-* alert.logORA-00600: internal error code, arguments: [kcrrrfswda.1], [], [], [], [], []ORA-00600: internal error code, arguments: [1881], [25860496], [25857716], []6. CRONTAB基本⼀个crontab⽂件中包含有六个字段:分钟 0-59⼩时 0-23⽉中的第⼏天 1-31⽉份 1 - 12星期⼏ 0 - 6, with 0 = Sunday7. Unix命令或者Shell脚本要编辑⼀个crontab⽂件,输⼊: Crontab -e要查看⼀个crontab⽂件,输⼊: Crontab -l0 4 * * 5 /dba/admin/analyze_table.ksh30 3 * * 3,6 /dba/admin/hotbackup.ksh /dev/null 2>&1在上⾯的例⼦中,第⼀⾏显⽰了⼀个分析表的脚本在每个星期5的4:00am运⾏。
oracle数据库处理归档日志的步骤

一、了解归档日志归档日志是Oracle数据库中一种重要的日志记录方式,它记录了数据库中所有发生的修改操作,包括插入、更新、删除等。
归档日志的作用是用于数据库的恢复和回滚操作,确保数据库的完整性和可靠性。
二、启用归档模式1. 确认数据库当前日志模式在连接数据库后,可以使用以下SQL语句确认当前的数据库日志模式:```SELECT log_modeFROM v$database;```如果返回结果为ARCHIVELOG,则表示数据库已经处于归档模式;如果返回结果为NOARCHIVELOG,则表示数据库尚未启用归档模式。
2. 修改数据库为归档模式如果数据库尚未启用归档模式,可以使用以下步骤将数据库修改为归档模式:```SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;```通过以上步骤,数据库将被修改为归档模式,并可以开始处理归档日志。
三、配置归档参数1. 确认归档目标归档目标是指归档日志文件的存储位置。
可以使用以下SQL语句确认当前的归档目标:```SHOW PARAMETER LOG_ARCHIVE_DEST;```如果没有设置归档目标,需要通过以下SQL语句进行设置:```ALTER SYSTEM SETLOG_ARCHIVE_DEST_1='LOCATION=/archivelog';```其中,/archivelog为归档日志存储的路径,可以根据实际情况进行调整。
2. 确认归档模式归档模式是指数据库在何种情况下触发归档日志的记录。
可以使用以下SQL语句确认当前的归档模式:```SHOW PARAMETER LOG_ARCHIVE_START;```如果归档模式未启用,需要通过以下SQL语句进行设置:```ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE;```通过以上步骤,归档参数将被正确配置,数据库可以开始处理归档日志。
oracle_告警规则_解释说明

oracle 告警规则解释说明1. 引言1.1 概述本文将详细解释和说明Oracle告警规则。
Oracle是一种常用的关系型数据库管理系统,它具有强大的功能和广泛的应用范围。
在数据库运行过程中,可能会出现各种问题和异常情况,例如连接超时、CPU利用率高以及磁盘空间不足等问题。
为了能够及时发现和解决这些问题,Oracle提供了丰富的告警规则。
1.2 文章结构本文共分为五个部分,除引言外还包括告警规则概述、Oracle告警规则解释说明、实际应用案例分析以及结论与展望。
在“告警规则概述”部分,我们将介绍什么是告警规则,并探讨其作用以及常见的类型。
在“Oracle告警规则解释说明”部分,我们将详细解释告警规则的设置方法,并对各类常见告警规则进行逐一说明。
在“实际应用案例分析”部分,我们将通过三个案例来展示如何应用具体的告警规则进行优化和问题定位。
最后,在“结论与展望”部分中,我们将总结回顾重点内容,并对未来发展趋势进行展望。
1.3 目的本文的目的是帮助读者理解和掌握Oracle告警规则,以便能够在实际应用中灵活运用。
通过对告警规则的解释和说明,读者将了解到如何设置和调整告警规则,以及如何通过分析和处理告警信息来优化数据库性能、提高系统稳定性,并预防可能出现的数据丢失风险。
通过本文内容的学习,读者将能够系统地掌握Oracle告警规则相关知识,并在实际工作中更加高效地管理和维护Oracle数据库。
2. 告警规则概述2.1 什么是告警规则告警规则是指在特定的场景或条件下,通过监测系统状态或指标来判断当前系统是否存在异常情况,并及时发出相应的告警信息以提示用户或管理员进行处理。
在Oracle数据库中,告警规则用于监控数据库实例和相关资源的使用情况。
2.2 告警规则的作用告警规则在Oracle数据库中起到了非常重要的作用。
通过设置合适的告警规则,可以帮助管理员及时发现和解决数据库中可能出现的问题,提高数据库性能和可靠性。
教你怎样用Oracle方便地查看报警日志错误

教你怎样⽤Oracle⽅便地查看报警⽇志错误在⽹上查了⼏天的资料,尝试综合清除告警⽇志内容及建外部表的⽅式来解决这⼀问题。
⼀:备份并清除告警⽇志内容将每天的告警⽇志备份好,然后进⾏清除。
1:备份报警⽇志在$ORACLE_HOME/SID/bdump/ ⽬录下,按⽇期备份alert_ORACLE_你的实例名.LOG这个⽂件,如:alert_ORACLE_orcl_201408111639_bak.LOG。
2:清除⽇志内容打开报警⽇志⽂件,⽤true > ⽂件名可清除掉⾥⾯的内容具体⽰例:假如,我现在第⼀次进⾏该设置,我先把现有的告警⽇志进⾏备份,如:--备份⽂件名称:今天16点24分前的告警⽇志信息[oracle@rac2 bdump]$ cp alert_orcl2.log alert_orcl2_before_201408111624_bak.log-清空报警⽇志[oracle@rac2 bdump]$ true > alert_orcl2.log现在告警⽇志是空的。
切换下归档⽇志,检查报警⽇志⾥是否出现了新内容:SQL> alter system switch logfile;System altered.则现在alert_orcl2.log记录的是2014年8⽉11⽇16点24分后⾄你下次对报警⽇志进⾏备份,截取前的信息。
⼆:建外部表查看报警⽇志错误如果已建⽴了⼀个⽤户,并赋相应的权限,所以直接建⽴⽬录对象并建⽴外部表就可以了。
1.建⽴⽬录对象SQL> conn test / 123Connected.SQL> create directory bdump as '/oracle/u01/app/oracle/admin/db2/bdump';Directory created.2.建⽴外部表SQL> create table alert_log(text varchar2(400))organization external(type oracle_loaderdefault directory bdumpaccess parameters(records delimited by newline)location('alert_db2.log'));3.测试⾸先查看能否查到alert_db2.log的内容SQL> select * from alert_log where rownum < 10;TEXT--------------------------------------------------------------------------------Thu Jun 11 00:51:46 2009Starting ORACLE instance (normal)Cannot determine all dependent dynamic libraries for /proc/self/exeUnable to find dynamic library libocr10.so in search pathsRPATH = /ade/aime1_build2101/oracle/has/lib/:/ade/aime1_build2101/oracle/lib/:/ade/aime1_build2101/oracle/has/lib/:LD_LIBRARY_PATH is not set!The default library directories are /lib and /usr/libUnable to find dynamic library libocrb10.so in search pathsUnable to find dynamic library libocrutl10.so in search paths9 rows selected.测试成功然后我们测试查报警信息'ORA-%'SQL> select * from alert_log where text like 'ORA-%';TEXT--------------------------------------------------------------------------------ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2.dbf'ORA-27037: unable to obtain file statusORA-205 signalled during: ALTER DATABASE MOUNT...ORA-00301: error in adding log file '/home/oracle/oracle/oradata/testdb/redo01.log' - file cannot be createdORA-27040: file create errorORA-1501 signalled during: CREATE DATABASE db2ORA-00200: control file could not be createdTEXT--------------------------------------------------------------------------------ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2.dbf'ORA-27038: created file already existsORA-1501 signalled during: CREATE DATABASE db2ORA-00200: control file could not be createdORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2.dbf'ORA-27038: created file already existsORA-1501 signalled during: CREATE DATABASE db2--假如,你的报警⽇志⽂件只包含今天的信息(可以通过备份并清除告警⽇志内容实现),则通过外部表可以查到当天产⽣了哪些错误。
oracledb 告警规则 -回复

oracledb 告警规则-回复关于Oracle数据库告警规则Oracle数据库是一种非常常见和受欢迎的关系数据库管理系统。
它被广泛用于数据存储和管理,尤其是在企业级应用程序中。
然而,在使用Oracle数据库的过程中,我们可能会遇到一些问题,例如性能下降、故障等。
为了及时发现和解决这些问题,Oracle数据库提供了告警功能。
在本篇文章中,我们将重点介绍Oracle数据库的告警规则,包括如何配置和管理这些规则,以提高数据库的可用性和性能。
1. 了解Oracle数据库的告警功能Oracle数据库的告警功能旨在帮助管理员及时发现和解决数据库中的问题。
通过设置告警规则,数据库可以监控各种系统事件和性能指标,并在发生异常情况时提醒管理员采取相应的措施。
这可以帮助管理员提高数据库的可用性和性能,同时减少系统故障和维护时间。
2. 配置告警规则在Oracle数据库中,告警规则可以通过多种方式进行配置,包括使用Enterprise Manager、SQL语句、配置文件等。
管理员可以根据特定的需求设置不同的告警规则,以监控数据库的各个方面。
- 使用Enterprise Manager配置告警规则Oracle提供了一套图形化界面工具,称为Enterprise Manager,管理员可以使用它来配置和管理数据库的告警规则。
通过登录到Enterprise Manager控制台,管理员可以访问告警设置页面,并对不同的事件和指标进行配置。
例如,可以设置CPU利用率超过阈值、表空间使用率超过阈值等告警规则。
- 使用SQL语句配置告警规则如果不使用Enterprise Manager或者需要对大量的数据库进行批量配置,管理员可以使用SQL语句来配置告警规则。
Oracle提供了一些系统视图和存储过程,使得管理员可以通过执行SQL语句来添加、修改或删除告警规则。
例如,可以使用DBMS_SCHEDULER包中的相关过程来设置定期运行的任务,并在任务发生错误时触发告警。
监控Oracle数据库的常用shell脚本

文章介绍了DBA每天在监控Oracle数据库方面的职责,讲述了如何通过shell脚本来完成这些重复的监控工作。
本文首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本。
同时文章还介绍了8个重要的脚本来监控Oracle数据库:检查实例的可用性检查监听器的可用性检查alert日志文件中的错误信息在存放log文件的地方满以前清空旧的log文件分析table和index以获得更好的性能检查表空间的使用情况找出无效的对象监控用户和事务DBA需要的Unix基本知识基本的UNIX命令以下是一些常用的Unix命令:ps--显示进程grep--搜索文件中的某种文本模式mailx--读取或者发送mailcat--连接文件或者显示它们cut--选择显示的列awk--模式匹配语言df--显示剩余的磁盘空间以下是DBA如何使用这些命令的一些例子:显示服务器上的可用实例:$ ps -ef | grep smonoracle 21832 1 0 Feb 24 ? 19:05 ora_smon_oradb1oracle 898 1 0 Feb 15 ? 0:00 ora_smon_oradb2dliu 25199 19038 0 10:48:57 pts/6 0:00 grep smonoracle 27798 1 0 05:43:54 ? 0:00 ora_smon_oradb3oracle 28781 1 0 Mar 03 ? 0:01 ora_smon_oradb4、显示服务器上的可用监听器:$ ps -ef | grep listener | grep -v grep(译者注:grep命令应该加上-i参数,即grep -i listener,该参数的作用是忽略大小写,因为有些时候listener是大写的,这时就会看不到结果)oracle 23879 1 0 Feb 24 ? 33:36 /8.1.7/bin/tnslsnr listener_db1 -inheritoracle 27939 1 0 05:44:02 ? 0:00 /8.1.7/bin/tnslsnr listener_db2 -inheritoracle 23536 1 0 Feb 12 ? 4:19 /8.1.7/bin/tnslsnr listener_db3 -inheritoracle 28891 1 0 Mar 03 ? 0:01 /8.1.7/bin/tnslsnr listener_db4 -inherit 查看Oracle存档目录的文件系统使用情况$ df -k | grep oraarch/dev/vx/dsk/proddg/oraarch 71123968 4754872 65850768 7% /u09/oraarch 统计alter.log文件中的行数:$ cat alert.log | wc -l2984列出alert.log文件中的全部Oracle错误信息:$ grep ORA- alert.logORA-00600: internal error code, arguments: [kcrrrfswda.1], [], [], [], [], [] ORA-00600: internal error code, arguments: [1881], [25860496], [25857716], [] CRONTAB基本一个crontab文件中包含有六个字段:分钟 0-59小时 0-23月中的第几天 1-31月份 1 - 12星期几 0 - 6, with 0 = SundayUnix命令或者Shell脚本要编辑一个crontab文件,输入:Crontab -e要查看一个crontab文件,输入:Crontab -l0 4 * * 5 /dba/admin/analyze_table.ksh30 3 * * 3,6 /dba/admin/hotbackup.ksh /dev/null 2>&1在上面的例子中,第一行显示了一个分析表的脚本在每个星期5的4:00am运行。
Oracleg日志查看方法

Oracleg日志查看方法Oracle 11g的日志文件包括数据库日志(Redo Log)、归档日志(Archive Log)和警告日志(Alert Log)。
这些日志文件记录了数据库的运行状态、操作记录、错误信息等重要信息,对于数据库管理员来说非常重要。
下面将详细介绍Oracle 11g的日志查看方法。
1. 数据库日志(Redo Log):数据库日志是Oracle数据库中最重要的日志文件之一,它记录了数据库中所有修改操作的详细信息,包括插入、更新和删除操作。
数据库日志文件的默认位置是$ORACLE_HOME/oradata/<SID>/redo<file_number>.log。
查看数据库日志的方法如下:- 使用SQL*Plus登录到数据库。
-运行以下命令查看数据库日志的信息:```SELECT group#, thread#, sequence#, members, archivedFROM v$log;```这个命令将显示数据库日志的组号(group#)、线程号(thread#)、序列号(sequence#)、成员数(members)和是否已归档(archived)等信息。
-运行以下命令查看数据库日志的详细信息:```SELECT * FROM v$log;```这个命令将显示数据库日志的详细信息,包括日志组的状态、大小、成员的路径等。
2. 归档日志(Archive Log):归档日志是数据库日志的备份,它可以用于数据库的恢复和还原。
归档日志文件的默认位置是$ORACLE_HOME/dbs/arch<thread_number>_<sequence_number>.arc。
查看归档日志的方法如下:- 使用SQL*Plus登录到数据库。
-运行以下命令查看已归档的日志文件:```FROM v$archived_logWHERE status='A';```-运行以下命令查看归档日志的详细信息:```SELECT * FROM v$archived_log;```这个命令将显示归档日志的详细信息,包括日志文件的路径、大小、归档时间等。
【最新文档】oracle报警日志-word范文模板 (25页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==oracle报警日志篇一:使用外部表管理Oracle 告警日志使用外部表管理Oracle 告警日志--================================================--使用外部表管理Oracle告警日志(ALAERT_$SID.LOG)--================================================Oracle告警日志时DBA维护数据库经常需要关注的一部分内容。
然而告警日志以文本文件,按时间的先后顺序不断累积的形式来存储,久而久之,势必造成告警日志的过大,难于维护和查找相关的信息。
使用外表表方式来管理告警日志将大大简化维护工作量,也更直关的获取所需的信息。
有关外部表的使用请参考:Oracle 外部表一、告警日志的内容消息和错误的类型(Types of messages and errors)ORA-600内部错误(ORA-600 internal errors that need immediate support from Oracle's customer support )'ORA-1578块损坏错误(ORA-1578 block corruption errors that require recovery) ORA-1201X(作业队列错误(ORA-1201X job queue errors)实例启动关闭,恢复等信息(STARTUP & SHUTDOWN, and RECOVER statement execution messages)特定的DDL命令(Certain CREATE, ALTER, & DROP statements )影响表空间,数据文件及回滚段的命令(Statements that effect TABLESPACES, DATAFILES, and ROLLBACK SEGMENTS )可持续的命令被挂起(When a resumable statement is suspended )LGWR不能写入到日志文件(When log writer (LGWR) cannot write to a member of a group ) 归档进程启动信息(When new Archiver Process (ARCn) is started )调度进程的相关信息(Dispatcher information)动态参数的修改信息(The occurrence of someone changing a dynamic parameter)二、建立外部表1.查看后台日志路径sys@ORCL> show parameter %b%_dump_dest --此可以省略,在后面直接用脚本cre_ext_tb.sql实现NAME TYPE VALUE------------------------------------ -----------------------------------------background_dump_dest string /u01/oracle/admin/orcl/bdump2.创建用户并赋予特定的权限,并创建数据库目录sys@ORCL> create user usr1 identified by usr1--创建帐户usr12 temporary tablespace temp3 default tablespace users4 quota unlimited on users;sys@ORCL> grant connect,resource to usr1;--为帐户usr1授予connect,resource角色sys@ORCL> grant create any directory to usr1; --为帐户usr1授予创建目录的权限sys@ORCL> conn usr1/usr1 --使用usr1连接数据库3.下面使用脚本来完成对告警日志的跟踪及管理脚本描述cre_ext_tb.sql主要是创建了一个alert_log表用于存放告警日志的重要信息,一个外部表alert_log_disk使得查看告警日志可以直接在本地数据库中完成。
Oracle数据库的报警和跟踪文件

设置跟踪
对进程设置跟踪
SQL > EXECUTE dbms_system.set_sql_trace_in_session(8,12,TRUE);
DBMS_SYSTEM 包由 catproc.sql脚本创建 $ORACLE_HOME/rdbms/admin Unix %ORACLE_HOME%\rdbms\admin NT.
一个用户跟踪文件包含对于那个会话跟踪 一个用户跟踪文件包含对于那个会话跟踪 SQL语句的统计. SQL语句的统计. 一个会话跟踪文件对于SQL调试很有用. 一个会话跟踪文件对于SQL调试很有用. Oracle数据库在每个服务进程基础上建立 Oracle数据库在每个服务进程基础上建立 用户跟踪文件 用户跟踪文件
SQL> alter system set LOG_CHECKPOINTS_TO_ALERT=true scope=spfile;Байду номын сангаас
系统已更改。 SQL> show parameter LOG_CHECK
NAME TYPE VALUE ------------------------------------ ----------- -------------------log_checkpoint_interval integer 0 log_checkpoint_timeout integer 1800 log_checkpoints_to_alert boolean FALSE
用户跟踪文件
在会话或实例级,服务器过程跟踪是否可用 在会话或实例级,服务器过程跟踪是否可用 取决于: 取决于:
ALTER SESSION 命令 ALTER SESSION 命令 SET_SQL_TRACE_IN_SESSION 程序 SET_SQL_TRACE_IN_SESSION 程序 初始化参数 SQL_TRACE 初始化参数 SQL_TRACE
oracle12c警告日志位置

oracle12c警告⽇志位置 Oracle 12c环境下查询,alert⽇志并不在bdump⽬录下,看到⽹上和书上都写着可以通过初始化参数background_dump_dest来查看alter⽇志路径,还说警告⽇志⽂件的缺省位置是%Oracle_base%\admin\orcl\bdump,其实12c中,上述路径都不是真正存放警告⽇志的路径。
真实路径是要需要通过v$diag_info视图来查询,为什么呢? 因为在ORACLE 12c中,引⼊了ADR(Automatic Diagnostic Repository(⾃动诊断仓库):⼀个存放数据库诊断⽇志、跟踪⽂件的⽬录,关于ADR对应的⽬录位置可以通过查看v$diag_info系统视图。
其实11g中也有v$diag_inifo,说是可以直接通过show parameter background_dump_dest来查看警告⽇志路径,但我没有测试过。
下⾯我是我本机测试结果,数据库版本的是12.2.0.1 select name,value from v$diag_info;NAME VALUE--------------- --------------------------------------------------Diag Enabled TRUEADR Base D:\app\oracleADR Home D:\app\oracle\diag\rdbms\orcl\orclDiag Trace D:\app\oracle\diag\rdbms\orcl\orcl\traceDiag Alert D:\app\oracle\diag\rdbms\orcl\orcl\alertDiag Incident D:\app\oracle\diag\rdbms\orcl\orcl\incidentDiag Cdump D:\app\oracle\diag\rdbms\orcl\orcl\cdumpHealth Monitor D:\app\oracle\diag\rdbms\orcl\orcl\hmDefault Trace File D:\app\oracle\diag\rdbms\orcl\orcl\trace\orcl_ora_3392.trcActive Problem Count 1Active Incident Count 6 Diag Trace对应的⽬录为⽂本格式的告警⽇志⽂件所在的⽬录,⽽Diag Alert对应的⽬录为XML格式的警告⽇志(对应为log.xml),实际上,你也可以在trace⽬录下可以看到⼀个alter_orcl的⽂本⽂件,它也是警告⽇志⽂件,只是是⽂本型的。
【最新文档】oracle报警日志-word范文模板 (25页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==oracle报警日志篇一:使用外部表管理Oracle 告警日志使用外部表管理Oracle 告警日志--================================================--使用外部表管理Oracle告警日志(ALAERT_$SID.LOG)--================================================Oracle告警日志时DBA维护数据库经常需要关注的一部分内容。
然而告警日志以文本文件,按时间的先后顺序不断累积的形式来存储,久而久之,势必造成告警日志的过大,难于维护和查找相关的信息。
使用外表表方式来管理告警日志将大大简化维护工作量,也更直关的获取所需的信息。
有关外部表的使用请参考:Oracle 外部表一、告警日志的内容消息和错误的类型(Types of messages and errors)ORA-600内部错误(ORA-600 internal errors that need immediate support from Oracle's customer support )'ORA-1578块损坏错误(ORA-1578 block corruption errors that require recovery) ORA-1201X(作业队列错误(ORA-1201X job queue errors)实例启动关闭,恢复等信息(STARTUP & SHUTDOWN, and RECOVER statement execution messages)特定的DDL命令(Certain CREATE, ALTER, & DROP statements )影响表空间,数据文件及回滚段的命令(Statements that effect TABLESPACES, DATAFILES, and ROLLBACK SEGMENTS )可持续的命令被挂起(When a resumable statement is suspended )LGWR不能写入到日志文件(When log writer (LGWR) cannot write to a member of a group ) 归档进程启动信息(When new Archiver Process (ARCn) is started )调度进程的相关信息(Dispatcher information)动态参数的修改信息(The occurrence of someone changing a dynamic parameter)二、建立外部表1.查看后台日志路径sys@ORCL> show parameter %b%_dump_dest --此可以省略,在后面直接用脚本cre_ext_tb.sql实现NAME TYPE VALUE------------------------------------ -----------------------------------------background_dump_dest string /u01/oracle/admin/orcl/bdump2.创建用户并赋予特定的权限,并创建数据库目录sys@ORCL> create user usr1 identified by usr1--创建帐户usr12 temporary tablespace temp3 default tablespace users4 quota unlimited on users;sys@ORCL> grant connect,resource to usr1;--为帐户usr1授予connect,resource角色sys@ORCL> grant create any directory to usr1; --为帐户usr1授予创建目录的权限sys@ORCL> conn usr1/usr1 --使用usr1连接数据库3.下面使用脚本来完成对告警日志的跟踪及管理脚本描述cre_ext_tb.sql主要是创建了一个alert_log表用于存放告警日志的重要信息,一个外部表alert_log_disk使得查看告警日志可以直接在本地数据库中完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORACLE的告警日志里面包含许多有用的信息,尤其是一些ORACLE的ORA错误信息,所以有必要及时归档、监控数据库告警日志的ORA错误,及时提醒数据库管理员DBA处理这些错误信息,那么我们首先来看看告警日志的内容片断:Thread 1 advanced to log sequence 37749 (LGWR switch)Current log# 6 seq# 37749 mem# 0: /u01/oradata/SCM2/redo06.logThu Jun 27 15:02:30 2013Thread 1 advanced to log sequence 37750 (LGWR switch)Current log# 2 seq# 37750 mem# 0: /u01/oradata/SCM2/redo02.logThu Jun 27 15:13:43 2013Thread 1 advanced to log sequence 37751 (LGWR switch)Current log# 3 seq# 37751 mem# 0: /u01/oradata/SCM2/redo03.logThu Jun 27 15:25:30 2013Thread 1 advanced to log sequence 37752 (LGWR switch)Current log# 4 seq# 37752 mem# 0: /u01/oradata/SCM2/redo04.logThu Jun 27 15:32:20 2013ORA-00060: Deadlock detected. More info in file/u01/app/oracle/admin/SCM2/bdump/scm2_s001_14052.trc.Thu Jun 27 15:35:05 2013Thread 1 advanced to log sequence 37753 (LGWR switch)Current log# 5 seq# 37753 mem# 0: /u01/oradata/SCM2/redo05.logThu Jun 27 15:43:11 2013Thread 1 advanced to log sequence 37754 (LGWR switch)Current log# 1 seq# 37754 mem# 0: /u01/oradata/SCM2/redo01.logThu Jun 27 15:49:58 2013Thread 1 advanced to log sequence 37755 (LGWR switch)Current log# 6 seq# 37755 mem# 0: /u01/oradata/SCM2/redo06.logThu Jun 27 16:01:25 2013Thread 1 advanced to log sequence 37756 (LGWR switch)Current log# 2 seq# 37756 mem# 0: /u01/oradata/SCM2/redo02.logThu Jun 27 16:12:14 2013Thread 1 advanced to log sequence 37757 (LGWR switch)Current log# 3 seq# 37757 mem# 0: /u01/oradata/SCM2/redo03.logThu Jun 27 16:24:10 2013Thread 1 advanced to log sequence 37758 (LGWR switch)归档告警日志文件告警日志文件如果不加管理的话,那么文件会持续增长,有时候文件会变得非常大,不利于读写。
一般建议将告警日志按天归档,归档文件保留三个月(视情况而定),下面来看看将告警日志文件归档的两个Shell脚本:alert_log_archive.sh version 11.#*************************************************************************2.#FileName:alert_log_archive.sh3.#*************************************************************************4.#Author:Kerry5.#CreateDate:2013-07-026.# blogs :/kerrycode7.#Description:this script is made the alert log archived every day8.#*************************************************************************9.10.#!/bin/bash11.12.date=`date+%Y%m%d`13.14.alert_log_path="$ORACLE_BASE/admin/$ORACLE_SID/bdump"15.16.alert_log_file="alert_$ORACLE_SID.log"17.18.alert_arc_file="alert_$ORACLE_SID.log""."${date}19.20.cd ${alert_log_path};21.22.23.if[ ! -e "${alert_log_file}" ];then24.echo"the alert log didn't exits, please check file pathis correct!";25.exit;26.fi27.28.29.if[ -e ${alert_arc_file} ];then30.31.echo"the alert log file have been archived!"32.33.else34.35.cat ${alert_log_file}>> ${alert_arc_file}36.37.cat/dev/null> ${alert_log_file}38.39.fi其实脚本1和脚本差别不大,仅仅是mv与cat >>的区别1.2.#*************************************************************************3.#FileName:alert_log_archive.sh4.#*************************************************************************5.#Author:Kerry6.#CreateDate:2013-07-027.# blogs :/kerrycode8.#Description:this script is made the alert log archived every day9.#*************************************************************************10.11.#!/bin/bash12.13.date=`date+%Y%m%d`14.15.alert_log_path="$ORACLE_BASE/admin/$ORACLE_SID/bdump"16.17.alert_log_file="alert_$ORACLE_SID.log"18.19.alert_arc_file="alert_$ORACLE_SID.log""."${date}20.21.cd ${alert_log_path};22.23.24.if[ ! -e "${alert_log_file}" ];then25.echo"the alert log didn't exits, please check file pathis correct!";26.exit;27.fi28.29.30.if[ -e ${alert_arc_file} ];then31.32.echo"the alert log file have been archived!"33.34.else35.36.mv ${alert_log_file} ${alert_arc_file}37.38.cat/dev/null> ${alert_log_file}39.40.fi然后在crontab定时任务里面加上下面语句,每天23点59对告警日志进行归档。
[oracle@DB-Server scripts]$ crontab -l# the alert log archived every day Add by kerry 2013-07-0259 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>$1细心的朋友可能已经发现上面的脚本、配置错误了,我在部署测试的过程中,是指定二十分钟执行一次,但是等了四十分钟,发现定时任务一次都没有执行,手工执行上面脚本是完全没有问题的,最后仔细的检查一遍,居然发现悲剧的发现时自己一时粗心将&符号写成了$,真是很二的一个错误59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>$159 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1接下来测试发现脚本执行有问题,在crontab 里执行该shell脚本时,获取不到ORACLE的环境变量,这是因为crontab 环境变量问题,Crontab的环境默认情况下并不包含系统中当前用户的环境。
所以,你需要在shell脚本中添加必要的环境变量的设置,修改的脚本如下:1.#*************************************************************************2.#FileName:alert_log_archive.sh3.#*************************************************************************4.#Author:Kerry5.#CreateDate:2013-07-026.# blogs :/kerrycode7.#Description:this script is made the alert log archived every day8.#*************************************************************************9.10.#!/bin/bash11.12.#these solved the oracle variable problem.13.export ORACLE_SID=gps14.export ORACLE_BASE=/u01/app/oracle15.16.date=`date+%Y%m%d`17.18.alert_log_path="$ORACLE_BASE/admin/$ORACLE_SID/bdump"19.20.alert_log_file="alert_$ORACLE_SID.log"21.22.alert_arc_file="alert_$ORACLE_SID.log""."${date}23.24.cd ${alert_log_path};25.26.27.if[ ! -e "${alert_log_file}" ];then28.echo"the alert log didn't exits, please check file pathis correct!";29.exit;30.fi31.32.33.if[ -e ${alert_arc_file} ];then34.35.echo"the alert log file have been archived!"36.37.else38.39.cat ${alert_log_file}>> ${alert_arc_file}40.41.cat/dev/null> ${alert_log_file}42.43.fi1.#*************************************************************************2.#FileName:alert_log_archive.sh3.#*************************************************************************4.#Author:Kerry5.#CreateDate:2013-07-06.# blogs :/kerrycode7.#Description:this script is made the alert log archived every day8.#*************************************************************************9.10.#!/bin/bash11.12.#these solved the oracle variable problem.13.export ORACLE_SID=gps14.export ORACLE_BASE=/u01/app/oracle15.16.date=`date+%Y%m%d`17.18.alert_log_path="$ORACLE_BASE/admin/$ORACLE_SID/bdump"19.20.alert_log_file="alert_$ORACLE_SID.log"21.22.alert_arc_file="alert_$ORACLE_SID.log""."${date}23.24.cd ${alert_log_path};25.26.27.if[ ! -e "${alert_log_file}" ];then28.echo"the alert log didn't exits, please check file pathis correct!";29.exit;30.fi31.32.33.if[ -e ${alert_arc_file} ];then34.35.echo"the alert log file have been archived!"36.37.else38.39.mv ${alert_log_file} ${alert_arc_file}40.41.cat/dev/null> ${alert_log_file}42.43.fi监控告警日志文件接下来看看如何监控告警日志文件的ORA错误,这里是采用Perl结合Shell的方式,因为Shell获取错误的时间、行数等不如Perl操作字符串方便。