Oracle数据库10g的告警日志详解 (数据库10g告警日志)

2023年 8月 10日 50.6k 0

Oracle数据库是当前企业级应用最为广泛的数据库之一,无论是数据管理、数据仓库、数据分析,亦或是大数据、云计算等领域,都有Oracle的应用。

在使用Oracle数据库时,我们难免会遇到一些问题,比如应用程序连接不上、查询速度慢等等,这些问题可能源于多种原因,而Oracle数据库提供了告警日志,可以辅助我们排查问题,解决问题,保障Oracle数据库的正常运行。本文将详细讲述Oracle数据库10g的告警日志,包括告警日志的类型和常见告警信息的含义。

一、告警日志的类型

Oracle数据库10g的告警日志分为系统告警日志、监听器日志、数据库日志和备份日志。

1. 系统告警日志

系统告警日志包含了数据库实例内部的告警信息,如SGA内存分配、控制文件的刷新、实例关闭等。当Oracle数据库在运行过程中发现异常情况时,会自动将告警信息写入系统告警日志。

在Oracle 10g中,系统告警日志默认被记录在$ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log中。在数据库实例启动时,Oracle会自动创建该文件,并且每次启动Oracle实例后,均会自动刷新该文件。

2. 监听器日志

监听器日志指的是监听器进程中的告警信息,如监听器启动、连接事件和配置文件变更等。与系统告警日志一样,当监听器进程发现异常情况时,会自动将告警信息写入监听器日志。

在Oracle 10g中,监听器日志默认被记录在$ORACLE_BASE/network/log/listener.log中。

3. 数据库日志

数据库日志包括了数据库增量备份、归档日志、Flash恢复日志和重新应用的日志等,这些日志记录了数据库的变化过程,可以用于恢复数据库。

在Oracle 10g中,数据库日志默认被记录在$ORACLE_HOME/rdbms/log目录下的trace文件中。

4. 备份日志

备份日志包括了数据库备份过程中的告警信息,如备份文件被占用而导致备份失败,以及备份过程中的异常情况等。备份日志对于备份和恢复数据库至关重要。

在Oracle 10g中,备份日志默认被记录在$ORACLE_BASE/admin/$ORACLE_SID/backup目录下的trace文件中。

二、常见告警信息的含义

1. ORA-00020: maximum number of processes (%s) exceeded

这种告警信息表示Oracle实例中的进程数超过了更大值。可以通过修改参数processes增加更大进程数,解决该问题。

2. ORA-00024: 超时在等待裂开锁的资源,等待已取消

该告警信息表示等待某个资源的时间超过了超时时间。这种情况通常是由于锁冲突造成的,可以通过增加服务器上的锁资源来解决该问题。

3. ORA-00059: 更大数量的漂移表项(%s)超出

该告警信息表示Oracle实例中的漂移表项数目已达到更大值,阻止了新的连接请求。可以通过增加参数max_dispatchers和max_shared_servers以及连接池大小来解决该问题。

4. ORA-00600: internal error code, arguments: [string], [string], [string], [string], [string], [string], [string], [string]

该告警信息表示数据库内部出现了未知的错误,需要联系Oracle Support。通常该错误码建议提交至Oracle Support进行解决。

5. ORA-01578: ORACLE数据坝发生错误; 加载医用系统管理员

该告警信息表示Oracle数据坝出现了错误,可能是由于硬件故障或磁盘出现问题所引起的。需要重新启动实例并重建数据坝。

6. ORA-01653: 用户定义表空间%s不足,可用:%s需要:%s

该告警信息表示某个表空间中的可用空间已经不足。可以通过增加数据文件或定期清理数据来释放表空间。另外,建议增加表空间空间预留系数(例:4倍),以防止该问题再次发生。

Oracle数据库10g告警日志对于我们排查问题和维护数据库有着不可替代的作用。本文介绍了Oracle数据库10g告警日志的类型以及常见告警信息的含义,希望能够为读者们带来帮助。在使用Oracle数据库时,做好日志文件的监控和管理,及时处理告警信息,能够有效地保障数据库的正常运行,保障企业的数据安全。

相关问题拓展阅读:

  • Oracle数据库打不开了,看数据库告警日志是ORA-00600:[2667]错误
  • 如何查看数据库alert日志文件
  • 每天G的nginx日志,需要怎么分析

Oracle数据库打不开了,看数据库告警日志是ORA-00600:[2667]错误

套Power AIX上的9.2.0.1系统在数据库打开过程中遇到ORA-00600:内部错误,详细日志如下:

Wed Mar 9 19:03:

RESETLOGS is being done without consistancy checks. This may result

in a corrupted database. The database should be recreated.

RESETLOGS after incomplete recovery UNTIL CHANGE

Resetting resetlogs activation ID(0x)

Wed Mar 9 19:03:

LGWR: Primary database is in CLUSTER CONSISTENT mode

Assigning activation ID(0x88307c28)

Thread 1 opened at log sequence 1

Current log# 3 seq# 1 mem# 0: /s01/maclean/oradata/PROD/redo03.log

Successful open of redo thread 1.

Wed Mar 9 19:03:

ON: enabling cache recovery

Wed Mar 9 19:03:

Errors in file /s01/maclean/admin/PROD/udump/PROD_ora_585914.trc:

ORA-07445: exception encountered: core dump      

Wed Mar 9 19:03:

Errors in file /s01/maclean/admin/PROD/bdump/PROD_pmon_602286.trc:

ORA-07445: exception encountered: core dump      

Wed Mar 9 19:03:

Errors in file /s01/maclean/admin/PROD/bdump/PROD_lgwr_548884.trc:

ORA-00600: internal error code, arguments: , , , , , , , 

LGWR: terminating instance due to error 600

相关启桥的初始化参数

fast_start_mttr_target = 300

_allow_resetlogs_corruption= TRUE

undo_management = AUTO

undo_tablespace = UNDOTBS1

以上可以看到lgwr关键进程在数据库open后几秒后遭遇了ORA-00600:内部错误后终止了实例。

该数据库在之前因为丢失当前日志文搜旁念件进行了已经实施了一系列的非常规恢复操作,包括设置一系列的underscore参数:

Before I provide the steps to fix the oraerror, I want to tell you that this database is opened with the unsupported parameter

“allow_resetlogs_corruption”.

*************************************************************************

* By forcing open the database using this parameter, there is a strong *

* likelihood of logical corruption, possibly affecting the data *

* dictionary. Oracle does not guarantee that all of the data will be *

* accessible nor will it support a database that has been opened by *

* this method and that the database users will be allowed 世困to continue *

* work. All this does is provide a way to get at the contents of the *

* database for extraction, usually by export. It is up to you to *

* determine the amount of lost data and to correct any logical *

* corruption issues. *

* *

*************************************************************************

2) The steps to get rid of the oraare as follows:

+ Change UNDO_MANAGEMENT=AUTO to

UNDO_MANAGEMENT=MANUAL

+ Remove or comment out UNDO_TABLESPACE and UNDO_RETENTION.

+ Add

_CORRUPTED_ROLLBACK_SEGMENTS =(comma separated list of Automatic Undo segments)

Example:

_CORRUPTED_ROLLBACK_SEGMENTS = (_SYSU1$, _SYSU2$, _SYSU3$, _SYSU4$,

_SYSU5$, _SYSU6$, _SYSU7$, _SYSU8$, _SYSU9$, _SYSU10$)

Note, sometimes the alert log will tell you what Automatic Undo segments are in use. 

Search the alert log for SYSS. If the alert log does not contain that information then use _SYSU1$ 

through _SYSU10$ as shown in the example above.

In UNIX you can issue this command to get the undo segment names:

$ strings system01.dbf | grep _SYSU | cut -d $ -f 1 | sort -u

From the output of the strings command above, add a $ to end of each _SYSU undo segment name.

++ Startup mount the database as follows:

SQL > startup mount

SQL > recover database;

SQl > alter database open;

*._corrupted_rollback_segments= (_SYSU730$, _SYSU731$, _SYSU732$, _SYSU733$, _SYSU734$, 

_SYSU735$, _SYSU736$, _SYSU737$, _SYSU738$, _SYSU739$, _SYSU744$, _SYSU740$, _SYSU741$, 

_SYSU742$, _SYSU743$, _SYSU744$, _SYSU745$, _SYSU746$, _SYSU747$, _SYSU748$, _SYSU749$, _SYSU74t$, 

_SYSU75$, _SYSU750$, _SYSU751$, _SYSU752$, _SYSU753$, _SYSU754$, _SYSU755$, _SYSU756$, _SYSU757$, 

_SYSU758$, _SYSU759$, _SYSU76$, _SYSU760$, _SYSU761$, _SYSU762$, _SYSU763$, _SYSU764$, _SYSU765$, 

_SYSU766$, _SYSU767$, _SYSU768$)

如何查看数据库alert日志文件

查看数据陪大库的alert日志文件可以通过sq实现。

1、从X$DBGALERTEXT 视图中读取alert目录内容:

SQL> select message_text from X$DBGALERTEXT where rownum select lpad(‘ ‘,lvl,’ ‘)||logical_file file_name

from X$DBGDIREXT

where rownum  渗颂select * from v$version; 

BANNER 

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Prod 

PL/SQL Release 10.2.0.1.0 – Production 

CORE 10.2.0.1.0 Production 

TNS for Linux: Version 10.2.0.1.0 – Production 

NLSRTL Version 10.2.0.1.0 – Production 

SQL>

2、查看预警日志文件(alert_sid.log)的位置 

SQL> show parameter dump 

NAME TYPE VALUE 

background_core_dump string partial 

background_dump_dest string /u01/oracle/admin/bdump 

core_dump_dest string /u01/oracle/admin/cdump 

max_dump_file_size string

shadow_core_dump string partial 

user_dump_dest string /u01/oracle/admin/udump

3、创建目录alert 

注意:directory不是实体,只是一个指向,指向os中一个路径 

SQL> create or replace directory alert as ‘/u01/oracle/admin/bdump’; 

Directory created. 

SQL>

4、创建外部表alert 

SQL> create table alert 

1 (log varchar2(1000)) 

2 organization external 

3 (type oracle_loader 

4 default directory alert 

5 access parameters 

6 (records delimited by newline) 

7 location (‘alert_PROD.log’)) 

8 reject limit unlimited; 

Table created.

5、查看alert中的内容 

SQL> select * from alert where rownum

6、看看数据库有哪些 可爱的ORA- 错误吧 

SQL> select * from alert where log like ‘%ORA-%’; 

LOG

ORA-959 signalled during: alter database default tablespace users… 

ORA-959 signalled during: drop tablespace uses… 

ORAsignalled during: drop tablespace users… 

ORA-1549 signalled during: drop tablespace users… 

ORA-1505 signalled during: alter database add logfile group 1 

ORA-1184 signalled during: alter database add logfile group 1 

ORA-1013 signalled during: alter tablespace tts read only… 

ORA-1013 signalled during: alter tablespace tts read only… 

ORA-1013 signalled during: alter tablespace users read only… 

ORA-1539 signalled during: alter tablespace users read only…

每天G的nginx日志,需要怎么分析

Linux系统下Nginx 日志可以查看系统运行记录和出错说明,对Nginx 日志的分析可以了解系统运行的状态。那么Linux系统Nginx日志怎么分析呢?

  Nginx 日志相关配置有 2 个地方:access_log 和 log_format 。

  默认的格式册搏:

  access_log /data/logs/nginx-access.log;

  log_format old ‘$remote_addr [$time_local] $status $request_time $body_bytes_sent ’

  ‘“$request” “$http_referer” “$http_user_agent”’;

  相信大部分用过 Nginx 的人对默认 Nginx 日志格式配置都很熟悉,对日志的内容也很熟悉。但是默认配置备稿和格式虽然可读,但是难以计算。

  Nginx 日志刷盘相关策略可配置:

  比如,设置 buffer,buffer 满 32k 才刷盘;假如 buffer 不满 5s 钟强仿姿孝制刷盘的配置如下:

  access_log /data/logs/nginx-access.log buffer=32k flush=5s;

  这决定了是否实时看到日志以及日志对磁盘 IO 的影响。

  Nginx 日志能够记录的变量还有很多没出现在默认配置中:

关于数据库10g告警日志的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论