教你怎样用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_loader
default directory bdump
access 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 2009
Starting ORACLE instance (normal)
Cannot determine all dependent dynamic libraries for /proc/self/exe
Unable to find dynamic library libocr10.so in search paths
RPATH = /ade/aime1_build2101/oracle/has/lib/:/ade/aime1_build2101/oracle/lib/:/a
de/aime1_build2101/oracle/has/lib/:
LD_LIBRARY_PATH is not set!
The default library directories are /lib and /usr/lib
Unable to find dynamic library libocrb10.so in search paths
Unable to find dynamic library libocrutl10.so in search paths
9 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 status
ORA-205 signalled during: ALTER DATABASE  MOUNT...
ORA-00301: error in adding log file '/home/oracle/oracle/oradata/testdb/redo01.l
og' - file cannot be created
ORA-27040: file create error
ORA-1501 signalled during: CREATE DATABASE db2
ORA-00200: control file could not be created
TEXT
--------------------------------------------------------------------------------
ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2
.dbf'
ORA-27038: created file already exists
ORA-1501 signalled during: CREATE DATABASE db2
ORA-00200: control file could not be created
ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2
.dbf'
ORA-27038: created file already exists
ORA-1501 signalled during: CREATE DATABASE db2

--假如,你的报警日志文件只包含今天的信息(可以通过备份并清除告警日志内容实现),则通过外部表可以查到当天产生了哪些错误。

(0)

相关推荐

  • CentOS6.2上安装Oracle10g报ins_emdb.mk错误处理方法

    在CentOS6.2操作系统上,安装Oracle10g时,报如下错误: 根据提示查看日志,并没发现帮助信息,如下所示: 复制代码 代码如下: [root@hyl ~]# tail -f /u01/app/oracle/oraInventory/logs/installActions2014-09-20_02-43-00PM.log INFO: make[1]: Leaving directory `/u01/app/oracle/product/10.2.0/db_1/sysman/lib' I

  • win7安装oracle10g 提示程序异常终止 发生未知错误

    oracle 10g 在win7下安装,选择高级选项,提示程序异常终止,发生未知错误 修改Oracle 10G\database\stage\prereq\db\refhost.xml 在 </SYSTEM> <CERTIFIED_SYSTEMS>后面添加 <!--Microsoft Windows 7--> <OPERATING_SYSTEM> <VERSION VALUE="6.1"/> </OPERATING_SY

  • 在oracle 数据库中查看一个sql语句的执行时间和SP2-0027错误

    进入sqlplus SQL> set timing on SQL> SQL> select count(*) from comm_human_role; COUNT(*) ---------- 866 Elapsed: 00:00:00.05 以上数字输出分别是:Hours:Minutes:Seconds.Milliseconds 即用了0.05秒的时间执行,相当于50毫秒. 时间如果是这样的表示:00: 03: 235.78 总共用的时间为235.78秒, 不到4分钟,所以显示的是3分

  • Oracle数据库TNS常见错误的解决方法汇总

    TNS是Oracle Net的一部分,是专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,就必须配置TNS.本文主要讲述了Oracle数据库TNS常见错误的解决方法如下: 1.ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏.若是前者,使用命令net start OracleOraHome10gTNSListener(名字可能有出入)即可;如果是后者,则使用"Net Configuration Assistant"

  • oracle 10g OEM常规错误(Unknown host specified)解决

    重装了笔记本上的oracle,安装完成后,可以正常使用OEM控制台,但是注销后重新登录或者重启系统后登录,或者笔记本使用网络环境发生了变化,都有可能遇到问题.这些遇到问题的解决办法使用过,但是很久没折腾就忘记了,今天把这些问题和解决方法记录在此. 1.网络环境变化导致无法启动 这个问题的现象是无法启动OEM.使用命令行如下: 复制代码 代码如下: C:/Users/Administrator>set ORACLE_SID=TEST C:/Users/Administrator>emctl st

  • oracle 11g配置 解决启动连接数据库出现的ora错误

    按照网上方法并结合实践,整理了一下(以后忘记了可以看看),oracle登录问题的解决办法: 常见的登录连接oracle数据库时遇到的问题ora-12560,01034,27101,00119,00132等,可以按照以下步骤检查和解决. Oracle11g数据库监听,数据库启动  1.添加监听程序(服务器端) 打开net manager 添加监听 添加监听位置(网络地址) 添加数据库服务(oracle主目录可以不填) 2.添加服务命名  3.测试 利用服务器端sqlplus工具E:\app\204

  • oracle 11g导出数据时报ORA 1455错误的处理方法

    由于导出的该用户的表可能存在空数据表,那么可能就会出现此其异常. 首先: 查看: SQL>show parameter deferred_segment_creation; 如果为TRUE,则将该参数改为FALSE: 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 然后: 可以针对数据表.索引.物化视图等手工分配Extent SQL>Select 'alter table '||table_n

  • Oracle AS关键字 提示错误

    今天运行程序时,在Oracle中输入SQL语句:select * from USERS as u ,程序报错 输入select * from USERS  u 可以正常的查询出结果. 但是在SQL Server 2005 中输入''select * from USERS as u''相同的语句就没有错,查了原因如下:SQL2规范允许关键字AS出现在表的名字和表的别名之间,虽然这使得FROM子句更容易被读懂,但是在特定的SQL产品中它可能还不被支持. 我想Oracle还不支持这样的语法.

  • oracle错误代码大全(超详细)

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程:无法转换会话 ORA-00022: 无效的会话 ID:访问被拒绝 ORA-00023: 会话引用进程私用内存:无法分离会话 ORA-00024: 单一进程模式下不允许从多个进程注册 ORA-00025: 无法分配 ORA-00026:

  • plsql连接oracle数据库报ora 12154错误解决方法

    plsql连接oracle数据库报ora 12154错误 今天遇到一个问题,使用sqlplus能够连接到远程的数据库,但是使用plsql却连接不上,报错"ORA-12154: TNS: 无法解析指定的连接标识符" 解决方法如下: 1.先检查服务器端的监听服务是否打开,如果没有打开请启动其监听 客户端:tnsping <tns_name> 服务器Linux下: #>lsnrctl status 查看监听状态 #>lsnrctl start 启动监听 2.通过Sql

随机推荐