Oracle日志查看

合集下载

探讨面向Oracle的远程日志查询系统

探讨面向Oracle的远程日志查询系统
电脑 编 程技 巧 与 维 护
探讨面 向 O al 的远程 日志查询系统 rc e
孙 航
( 山东广播电视大学 ,济南 2 0 1) 5 0 4
摘 要 : 分 析 了数 据 库 日志 查 询 系统 的 需求 ,剖 析 了 O al数 据库 管理 系统 的 结构 ,详 细 设 计 了远 程 日志 查 询 系 rc e


| r
L志 数 巴 日源 据
图 2 系统 的 体 系 结构 示 意 图
归纳起来 ,研究 的远程 日志查 询系统 的体 系结 构特点主 要有 3 : ()体系结构可以实现单源 1志读取 ,也可以实 点 1 3
3 系统 设计
31 体 系 结构 .
现都多数据库的 日志 的并发读取 ; () 系统 中 E志读取是独 2 t 制
数据库服务器中 ,当每次启动一数据库 时就分配 系统全局 区
(ytm Goa A e ,S A Ss lbl ra G )来 启 动 一 个 或 多 个 O al 程 。 e rc e进
信 } 息 日

读取结果
信息源 日志的 读 取 与 查 询
日志分析在 物理布局上的分离 ,它们之 间通过 网络传输进行
通 信 。 系统 的体 系结 构 如 图 2 示 。 所
S A (yt Goa Ae ) G Ss m l l ra e b
决策分析所需要 的大量历史信息 ,所 以,传统数据库虽然在联
机事务处理 (L P O T )中获得 了较大成功 ,却无法满足管理人员 的决策分析的需求。而且传统数据库现存的 日志读取分析器都 不能很好地满足集成环境 中数据变化检测的需要 ,集成系统要 应付巨大的记录量和数据变化量 ,并且需要长期稳定地运行 , 因此要求既要有效地检测数据变化 ,又要尽量减少检测的资源

日志数据查询步骤

日志数据查询步骤

关于A2数据表PC_RPT_SEQU_SCHEME_DETAILS使用logmnr的步骤说明1 确定oracle10中的SUPPLEMENTAL LOG DATA PRIMARY KEY和UNIQUE INDEX 参数是否设置。

SQL> SELECT SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE;SUP SUP--- ---NO NO如果是NO,请执行以下步骤:SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;数据库已更改。

SQL> SELECT SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE;SUP SUP--- ---YES YES2 进行日志分析第一步先将2011年6月16日15点00分前所有的归档日志文件加载SQL> execdbms_logmnr.add_logfile('d:\arc\ARC00019.001',dbms_logmnr.new);--(第一个日志文件)SQL> exec dmbs_logmnr.add_logfile('e:\oracle\oradata\test\redo02.log',dbms_logmnr.addfile);--(第二个以后的所有日志文件)第二步日志分析exec dbms_logmnr.start_logmnr( DictFileName => ' e:\oracle\ora92\logminer\dictionary.ora', StartTime => to_date('2007-4-17 08:00:00','YYYY-MM-DD HH24:MI:SS') , EndTime =>to_date('2004-4-17 10:59:59','YYYY-MM-DD HH24:MI:SS '));第三步查看分析结果V$LOGMNR_DICTIONARY-------查询使用的数据字典文件V$LOGMNR_PARAMETERS-------查询当前LogMiner设定的参数V$LOGMNR_LOGS-------查询分析的日志文件 V$LOGMNR_CONTENTS-------日志文件的内容。

使用Oracle的外部表查询警告日志文件

使用Oracle的外部表查询警告日志文件

使用Oracle的外部表查询警告日志文件从Oracle9i开始,Oracle的外部表技术(Oracle External Tables)被极大的增强,通过外部表访问外部数据增强了Oracle数据库和外部数据源进行数据交互的能力,对于数据仓库和ETL来说,这些增强极大的方便了数据访问。

对于DBA来说,最常见一个例子是可以使用外部表来访问警告日志文件或其他跟踪文件.以下一个例子用来说明外部表的用途。

首先需要创建一个Directory:[oracle@jumper oracle]$ sqlplus "/ as sysdba"SQL*Plus: Release 9.2.0.4.0 - Production on Sun Oct 15 21:42:28 2006Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning optionJServer Release 9.2.0.4.0 - ProductionSQL> create or replace directory bdump2 as '/opt/oracle/admin/eygle/bdump';Directory created.SQL> col DIRECTORY_PATH for a30SQL> col owner for a10SQL> select * from dba_directories;OWNER DIRECTORY_NAME DIRECTORY_PATH---------- ------------------------------ ------------------------------SYS BDUMP /opt/oracle/admin/eygle/bdump然后创建一个外部表:SQL> create table alert_log ( text varchar2(400) )2 organization external (3 type oracle_loader4 default directory BDUMP5 access parameters (6 records delimited by newline7 nobadfile8 nodiscardfile9 nologfile10 )11 location('alert_eygle.log')12 )13 reject limit unlimited14 /Table created.然后我们就可以通过外部表进行查询警告日志的内容:SQL> select * from alert_log where rownum < 51;TEXT----------------------------------------------------------------------------------------- Mon Jun 26 12:00:24 2006Starting ORACLE instance (normal)Mon Jun 26 12:00:25 2006WARNING: EINVAL creating segment of size 0x0000000008c00000 fix shm parameters in /etc/system or equivalentLICENSE_MAX_SESSION = 0LICENSE_SESSIONS_WARNING = 0SCN scheme 2Using log_archive_dest parameter default valueLICENSE_MAX_USERS = 0SYS auditing is disabledStarting up ORACLE RDBMS Version: 9.2.0.4.0.System parameters with non-default values:processes = 150timed_statistics = TRUEshared_pool_size = 104857600large_pool_size = 0java_pool_size = 0control_files = /opt/oracle/oradata/eygle/control01.ctldb_block_size = 8192db_cache_size = 16777216db_cache_advice = ONcompatible = 9.2.0.0.0db_file_multiblock_read_count= 16fast_start_mttr_target = 300log_checkpoints_to_alert = TRUEundo_management = AUTOundo_tablespace = UNDOTBS1undo_retention = 10800remote_login_passwordfile= EXCLUSIVEdb_domain =instance_name = eyglejob_queue_processes = 10hash_join_enabled = TRUEbackground_dump_dest = /opt/oracle/admin/eygle/bdumpuser_dump_dest = /opt/oracle/admin/eygle/udumpcore_dump_dest = /opt/oracle/admin/eygle/cdumpsort_area_size = 524288db_name = eygleopen_cursors = 500star_transformation_enabled= FALSEquery_rewrite_enabled = FALSEpga_aggregate_target = 52428800aq_tm_processes = 0PMON started with pid=2DBW0 started with pid=3LGWR started with pid=4CKPT started with pid=5SMON started with pid=6RECO started with pid=750 rows selected.SQL>如果我们需要查看数据库中曾经出现过的ORA-错误,那么可以执行如下查询: SQL> select * from alert_log where text like 'ORA-%';TEXT----------------------------------------------------------------------------------- ORA-1652: unable to extend temp segment by 128 in tablespace TEMP ORA-1113 signalled during: alter database open...ORA-1113 signalled during: alter database datafile 3 online...ORA-09968: scumnt: unable to lock fileORA-1102 signalled during: ALTER DATABASE MOUNT...ORA-1507 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/users01.dbf'ORA-27037: unable to obtain file statusORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/users01.dbf'TEXT----------------------------------------------------------------------------------- ORA-01157: cannot identify/lock data file 4 - see DBWR trace fileORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'ORA-27037: unable to obtain file statusORA-01157: cannot identify/lock data file 4 - see DBWR trace fileORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-01157: cannot identify/lock data file 4 - see DBWR trace fileORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'ORA-27037: unable to obtain file statusORA-01157: cannot identify/lock data file 4 - see DBWR trace fileORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'TEXT----------------------------------------------------------------------------------- ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1113 signalled during: alter database open...ORA-01157: cannot identify/lock data file 4 - see DBWR trace fileORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'ORA-27037: unable to obtain file statusORA-01157: cannot identify/lock data file 4 - see DBWR trace fileORA-1113 signalled during: alter database open...ORA-1122 signalled during: alter database open...ORA-283 signalled during: ALTER DATABASE RECOVER database ...ORA-1122 signalled during: alter database open...TEXT-----------------------------------------------------------------------------------ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1113 signalled during: ALTER DATABASE OPEN...ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1122 signalled during: ALTER DATABASE OPEN...ORA-1503 signalled during: CREATE CONTROLFILE REUSE DATABASE "EYGLE" NORESETL... ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1991 signalled during: ALTER DATABASE MOUNT...ORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'ORA-01115: IO error reading block from file 4 (block # 1)ORA-27069: skgfdisp: attempt to do I/O beyond the range of the fileORA-01122: database file 1 failed verification checkTEXT-----------------------------------------------------------------------------------ORA-01110: data file 1: '/opt/oracle/oradata/eygle/system01.dbf'ORA-01207: file is more recent than controlfile - old controlfileORA-1122 signalled during: alter database open...ORA-283 signalled during: ALTER DATABASE RECOVER database using backup cont... ORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'ORA-01115: IO error reading block from file 4 (block # 1)ORA-27069: skgfdisp: attempt to do I/O beyond the range of the fileORA-01194: file 1 needs more recovery to be consistentORA-1194 signalled during: alter database open resetlogs...ORA-283 signalled during: ALTER DATABASE RECOVER datafile 1 ...TEXT-----------------------------------------------------------------------------------ORA-283 signalled during: ALTER DATABASE RECOVER database using backup cont... ORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'ORA-01115: IO error reading block from file 4 (block # 1)ORA-27069: skgfdisp: attempt to do I/O beyond the range of the fileORA-01194: file 1 needs more recovery to be consistentORA-01110: data file 1: '/opt/oracle/oradata/eygle/system01.dbf'ORA-1194 signalled during: alter database open resetlogs...ORA-283 signalled during: ALTER DATABASE RECOVER datafile 1 ...ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1589 signalled during: ALTER DATABASE OPEN...ORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'TEXT-----------------------------------------------------------------------------------ORA-01115: IO error reading block from file 4 (block # 1)ORA-27069: skgfdisp: attempt to do I/O beyond the range of the fileORA-01194: file 1 needs more recovery to be consistentORA-01110: data file 1: '/opt/oracle/oradata/eygle/system01.dbf'ORA-1194 signalled during: alter database open resetlogs...ORA-1109 signalled during: alter database close...ORA-1503 signalled during: CREATE CONTROLFILE REUSE DATABASE "EYGLE" NORESETL... ORA-1507 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1113 signalled during: alter database open...ORA-00202: controlfile: '/opt/oracle/oradata/eygle/control01.ctl'ORA-27037: unable to obtain file statusTEXT----------------------------------------------------------------------------------- ORA-205 signalled during: ALTER DATABASE MOUNT...ORA-1507 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-01501: CREATE DATABASE failedORA-01526: error in opening file '?/rdbms/admin/sql.bsq'ORA-07391: sftopn: fopen errorORA-01526: error in opening file ''ORA-1092 signalled during: CREATE DATABASE eygleORA-1079 signalled during: ALTER DATABASE MOUNT...ORA-1507 signalled during: alter database open...ORA-214 signalled during: alter database mount...ORA-1507 signalled during: ALTER DATABASE CLOSE NORMAL...TEXT----------------------------------------------------------------------------------- ORA-214 signalled during: ALTER DATABASE MOUNT...ORA-214 signalled during: alter database mount...ORA-1113 signalled during: ALTER DATABASE OPEN...ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'ORA-27037: unable to obtain file statusORA-1113 signalled during: ALTER DATABASE OPEN...ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'ORA-27037: unable to obtain file statusORA-1113 signalled during: alter database open...TEXT-----------------------------------------------------------------------------------ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'ORA-27037: unable to obtain file statusORA-283 signalled during: ALTER DATABASE RECOVER database ...ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1100 signalled during: alter database mount...ORA-1178 signalled during: alter database create datafile '/opt/oracle/produc...ORA-1516 signalled during: alter database create datafile '/opt/oracle/oradat...ORA-1991 signalled during: ALTER DATABASE MOUNT...ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'TEXT-----------------------------------------------------------------------------------ORA-27037: unable to obtain file statusORA-283 signalled during: ALTER DATABASE RECOVER database ...ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'ORA-27037: unable to obtain file statusORA-283 signalled during: ALTER DATABASE RECOVER database using backup cont... ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1991 signalled during: ALTER DATABASE MOUNT...ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/users01.dbf'ORA-27037: unable to obtain file statusTEXT-----------------------------------------------------------------------------------ORA-283 signalled during: ALTER DATABASE RECOVER database ...ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/users01.dbf'ORA-27037: unable to obtain file statusORA-283 signalled during: ALTER DATABASE RECOVER database using backup cont... ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/users01.dbf'ORA-27037: unable to obtain file statusORA-283 signalled during: ALTER DATABASE RECOVER database using backup cont... ORA-279 signalled during: ALTER DATABASE RECOVER database using backup cont... ORA-308 signalled during: ALTER DATABASE RECOVER CONTINUE DEFAULT ...TEXT-----------------------------------------------------------------------------------ORA-308 signalled during: ALTER DATABASE RECOVER CONTINUE DEFAULT ...ORA-1547 signalled during: ALTER DATABASE RECOVER CANCEL ...ORA-1589 signalled during: alter database open...ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1503 signalled during: CREATE CONTROLFILE REUSE DATABASE "EYGLE" NORESETL... ORA-1178 signalled during: alter database create datafile '/opt/oracle/produc...ORA-1991 signalled during: ALTER DATABASE MOUNT...ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'ORA-27037: unable to obtain file statusORA-1157 signalled during: alter database open...TEXT-----------------------------------------------------------------------------------ORA-1113 signalled during: alter database open...ORA-1991 signalled during: ALTER DATABASE MOUNT...ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1031 signalled during: alter database open...ORA-3217 signalled during: ALTER TABLESPACE TEMP DEFAULT STORAGE (INITIAL 10M... ORA-1507 signalled during: alter database close...ORA-1507 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1507 signalled during: alter database close normal...ORA-1507 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1106 signalled during: alter database dismount...ORA-1531 signalled during: alter database open...TEXT-----------------------------------------------------------------------------------ORA-1531 signalled during: alter database open...ORA-1531 signalled during: alter database open...ORA-1531 signalled during: alter database open...ORA-1531 signalled during: alter database open...ORA-1109 signalled during: alter database close...ORA-1507 signalled during: alter database close...ORA-1507 signalled during: ALTER DATABASE CLOSE NORMAL...ORA-1185 signalled during: alter database add logfile group 6ORA-350 signalled during: alter database drop logfile group 3...163 rows selected.SQL>。

oracle数据库管理员操作日志

oracle数据库管理员操作日志

oracle数据库管理员操作日志
作为Oracle数据库管理员,操作日志是非常重要的工作之一。

数据库管理员需要定期记录数据库的操作日志,以便追踪和监控数据库的活动,保证数据库的安全性和稳定性。

操作日志记录了数据库管理人员和用户对数据库的操作,包括但不限于数据库的创建、修改、删除,用户的访问和权限变更,以及数据库的备份和恢复等操作。

在Oracle数据库中,可以通过以下几种方式记录操作日志:
1. Oracle数据库自带的日志功能,Oracle数据库提供了详细的日志记录功能,可以通过配置参数来开启日志记录,并设置日志的级别和格式。

管理员可以通过查看数据库的日志文件来了解数据库的操作情况。

2. 使用审计功能,Oracle数据库提供了审计功能,可以对数据库的操作进行审计,并记录到审计日志中。

管理员可以通过配置审计策略来监控数据库的操作,包括对特定对象的操作、特定用户的操作等。

3. 使用第三方工具,除了Oracle数据库自带的日志功能外,
还可以使用第三方的监控和日志记录工具来记录数据库的操作日志。

这些工具通常提供了更丰富的功能和更直观的界面,可以帮助管理
员更方便地管理和分析数据库的操作日志。

无论使用哪种方式记录操作日志,数据库管理员都需要定期对
日志进行分析和归档,以便及时发现潜在的问题并采取相应的措施。

此外,数据库管理员还需要遵守相关的法律法规和公司政策,确保
操作日志的安全和完整性,防止日志被篡改或删除。

操作日志对于
数据库的安全和稳定性至关重要,因此数据库管理员需要高度重视
操作日志的记录和管理工作。

Oracle归档日志文件

Oracle归档日志文件

Oracle归档⽇志⽂件今天数据群有⼈反应⽹站不能正常打开,经检查Oracle数据库远程连不上,提⽰信息:ORA-00257: archiver error. Connect internal only, until freed。

可能是archivelog满了。

以前学习SQL只关注CRUD,对⽇志了解甚少,此次宕机虽然对⽣成没有造成恶劣影响,但也是因为业务不熟悉所致,特花⼀天时间学习并记录Oracle⽇志归档功能。

.以下内容针对没有使⽤Oracle ASM磁盘组情况,使⽤了Oracle ASM磁盘组的情况以后分析。

Oracle⽇志操作模式分为两种:ARCHIVELOG、NOARCHIVELOG连接Oracle终端windows系统:sqlplusLinux系统:先登录ssh,切换到oracle⽤户,再启动sqlplus登录oracle查看当前⽇志操作模式通⽤⽅法:SELECT log_mode from v$database;sys⽤户:开启⽇志归档启⽤归档⽇志前要先停⽌数据库shutdown immediate;数据库以mount⽅式启动startup mount;改变⽇志模式启⽤数据库归档alter database archivelog;关闭归档alter database noarchivelog;打开数据库alter database open;查看归档⽇志信息archive log list;查看默认闪回归档存储路径show parameter db_recovery_file_dest;Oracle11g版本,ORACLE默认的⽇志归档路径为闪回恢复区($ORACLE_BASE/fast_recovery_area)。

对于这个路径,Oracle有⼀个限制,就是默认只有4G的空间,⽽且不只是归档⽇志的默认路径,也是备份⽂件和闪回⽇志的默认地址,这样的话归档⽇志锁使⽤的空间就达不到4G。

oracle日志位置

oracle日志位置
对应的就是它的位置。
audit日志:审计的信息,对应系统初始化参数文件参数audit_file_dest
对应的就是它的位置。
redo 日志:存放数据库的更改信息,select member from v$logfile;member就代表它的位置
归档日志:redo日志的历史备份,select * from v$parameter where name like 'log_archive_dest%'; 它的value的值就是位置
பைடு நூலகம்
show parameter spfile;查看当前系统加载的参数文件
因为spfile.ora文件为二进制文件,手动修改spfile.ora后,oracle无法识别,也就无法启动了。解决办法如下:
1。找到pfile文件:在10.0.2\admin\实例名\pfile\文件夹下有个init.ora.xxxxxxxxxxx 文件,该文件为带时间戳的pfile文件,将时间戳去掉,变成init.ora文件。
3。将新生成的文件spfileSID.ora拷贝到 "10.2.0\db_1\database\”,目录下覆盖原文件,如果存在initSID.ora文件请重命名。
4。在管理工具-服务中重新启动oracle系列服务,即可解决上述问题。
2。开始-运行-cmd
>sqlplus /nolog
sql>conn 用户名/密码 as sysdba
sql>startup pfile='10.0.2\admin\实例名\pfile\init.ora';
启动成功后
sql>create spfile='path/spfileSID.ora' from pfile='10.0.2\admin\实例名\pfile\init.ora';

ORACLE日志分析logmnr使用

ORACLE日志分析logmnr使用

ORACLE日志v$logmnr_contents分析一、产生日志命令:分析日志脚本文件logmnr.sql如下:SQL> @c:\logmnr.sql===================================================================== ========rem ********************开始执行日志分析脚本********************** rem 设置环境参数set echo offset termout off --//显示脚本中的命令的执行结果,缺省为onset trimout on --//去除标准输出每行的拖尾空格,缺省为offset trimspool on --//去除重定向(spool)输出每行的拖尾空格,缺省为off set heading off --//输出域标题,缺省为onset pagesize 0 --//输出每页行数,缺省为24,为了避免分页,可设定为0。

set verify off --//可以关闭和打开提示确认信息old 1和new 1的显示. set linesize 800 --//输出一行字符个数,缺省为80rem 字典信息文件路径为:show parameter utlrem 创建Logminer包:@D:\oracle\ora92\rdbms\admin\dbmslmd.sqlrem 创建字典信息文件exec dbms_logmnr_d.build(dictionary_filename=>'dic.ora',dictionary_location =>'D:\oracle\oradata\zfmi');rem 增加数据库对应的重做日志文件:execdbms_logmnr.add_logfile( logfilename=>'D:\oracle\oradata\zfmi\redo01. log', options=>dbms_logmnr.new);execdbms_logmnr.add_logfile( logfilename=>'D:\oracle\oradata\zfmi\redo02. log', options=>dbms_logmnr.addfile);execdbms_logmnr.add_logfile( logfilename=>'D:\oracle\oradata\zfmi\redo03. log', options=>dbms_logmnr.addfile);select db_name,filename from v$logmnr_logs;rem 结合字典信息文件,开始分析重做日志文件execdbms_logmnr.start_logmnr(dictfilename=>'D:\oracle\oradata\zfmi\dic.or a',starttime => to_date('2008-05-06 10:00:00','YYYY-MM-DDHH24:MI:SS'),endtime => to_date('2008-05-06 20:00:00','YYYY-MM-DD HH24:MI:SS'));rem 开始保存分析结果:spool c:\zfmiLog08-05-06_10.00.00to08-05-06_20.00.00.txt;select to_char(TIMESTAMP,'YYYY-MM-DD HH24:MI:SS'), SQL_REDO fromv$logmnr_contents where USERNAME='ZFMI' order by TIMESTAMP ;spool offrem 关闭分析器Logminer!dbms_logmnr.end_logmnr;rem ********************日志分析脚本执行完毕**********************===================================================================== ===========二、视图v$logmnr_contents字段分析一下内容根据oracle官方文档部分翻译:SQL> desc v$logmnr_contents;名称类型---------------------------------------------------------------------TIMESTAMP DATE //SQL执行时间COMMIT_TIMESTAMP DATE //事务提交时间SEG_OWNER VARCHAR2(32) //被修改对象创建者SEG_NAME VARCHAR2(256) //被修改对象的名字,如表名SEG_TYPE NUMBER //被修改对象类型SEG_TYPE_NAME VARCHAR2(32) //被修改对象类型名TABLE_SPACE VARCHAR2(32) //被修改对象所属表空间ROW_ID VARCHAR2(19) //被修改行的ROWID,如果SESSION# NUMBER //执行修改的SESSION号SERIAL# NUMBER //执行修改的SESSION序号USERNAME VARCHAR2(30) //执行事务的用户名SESSION_INFO VARCHAR2(4000) //执行修改的SESSION信息,例如:login_username= client_info=OS_username=SYSTEM Machine_name=ZFMISERVER OS_terminal=ZFMISERVER OS_process_id=1812 OS_program name=ORACLE.EXETX_NAME VARCHAR2(256) //执行的事务名,当该事务被命名时ROLLBACK NUMBER //回滚标记OPERATION VARCHAR2(32) //操作类型INSERTUPDATEDELETEDDLSTARTCOMMITROLLBACKLOB_WRITELOB_TRIMLOB_ERASESELECT_FOR_UPDATESEL_LOB_LOCATORMISSING_SCNINTERNALUNSUPPORTEDOPERATION_CODE NUMBER //操作类型代码0 = INTERNAL1 = INSERT2 = DELETE3 = UPDATE5 = DDL6 = START7 = COMMIT9 = SELECT_LOB_LOCATOR10 = LOB_WRITE11 = LOB_TRIM25 = SELECT_FOR_UPDATE28 = LOB_ERASE34 = MISSING_SCN36 = ROLLBACK255 = UNSUPPORTEDSQL_REDO VARCHAR2(4000) //重做日志SQLSQL_UNDO VARCHAR2(4000) //相反操作SQLSEQUENCE# NUMBER //重做日志的序号。

数据库日志查看方式

数据库日志查看方式

SQL Server在SQL Server 7.0和SQL Server2000中,可以用下面的命令查看事务日志:DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )参数:Dbid or dbname - 任一数据库的ID或名字type - 输出结果的类型:0 - 最少信息(operation, context, transaction id)1 - 更多信息(plus flags, tags, row length)2 - 非常详细的信息(plus object name, index name,page id, slot id)3 - 每种操作的全部信息4 - 每种操作的全部信息加上该事务的16进制信息默认type = 0要查看MSATER数据库的事务日志可以用以下命令:DBCC log (master)错误日志找到SQL server,点属性,点开advance选项卡,里面有个dump directory后面那个目录就是你的日志文件存放的目录这时你复制那个目录下来,在资源管理器中打开那个目录,里面的ERORRLOG就是日志文件啦,用记事本打开OracleOracle日志查看一.Oracle日志的路径:登录:sqlplus "/as sysdba"查看路径:SQL> select * from v$logfile;SQL> select * from v$logfile;(#日志文件路径)二.Oracle日志文件包含哪些内容:(日志的数量可能略有不同)control01.ctl example01.dbf redo02.log sysaux01.dbf undotbs01.dbfcontrol02.ctl redo03.log system01.dbf users01.dbfcontrol03.ctl redo01.log SHTTEST.dbf temp01.dbf三.Oracle日志的查看方法:SQL>select * from v$sql (#查看最近所作的操作)SQL>select * fromv $sqlarea(#查看最近所作的操作)Oracle 数据库的所有更改都记录在日志中,从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行,因为原始的日志信息我们根本无法看懂,Oracle8i 后续版本中自带了LogMiner,而LogMiner就是让我们看懂日志信息的工具,通过这个工具可以:查明数据库的逻辑更改,侦察并更正用户的误操作,执行事后审计,执行变化分析。

Oracle归档模式及归档日志的操作

Oracle归档模式及归档日志的操作

Oracle归档模式及归档日志的操作1归档模式及归档日志基本概念:1.1为什么要给Oracle做归档操作:Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。

当ORACLE数据库运行在ARCHIVELOG(归档模式)模式时,所有的事务重做日志都将保存.这意味着对数据库进行的所有事务都留有一个备份,尽管重做日志以循环方式工作,但在一个重做日志被覆盖前均将为其建立一个副本.在重做日志文件复制完成之前,ORACLE数据库将停止一切新的操作,在旧的事务记录完成之前ORACLE不对其进行覆盖.有了所有事务的副本,数据库就可以从所有类型的失败中恢复,包括用户错误或磁盘崩溃.这是一种最安全的数据库工作方式。

在实际开发中,归档模式是符合开发的,归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,数据库使用归档方式运行时才可以进行灾难性恢复。

1.2归档模式和非归档模式的区别:非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.1.3什么是归档日志:归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库。

2Linux系统开启归档模式:使用ssh登录到Linux系统:2.1切换到oracle用户,然后使用sqlplus /nolog登录到oracle数据上:su -oraclesqlplus /nolog2.2使用oracle系统管理员sysdba登录到数据库:conn /as sysdba2.3查看当前oracle的模式:select log_mode from v$database;如果当前模式为NOARCHIVELOG,就说明没有开启归档模式2.4关闭数据库,启动到mount状态:shutdown immediate;startup mount;2.5修改数据库为归档模式alter database archivelog; (此处的分号不可以省略)(如果是归档模式改为非归档,则执行:alter database noarchivelog;)2.6启动数据库:alter database open;2.7再次验证:执行select log_mode from v$database;可查看到oracle已经修改为归档模式了3Windows开启归档模式:3.1打开sqlplus工具:sqlplus工具路径:F:\Oracle\product\11.2.0\dbhome_1\BIN中的sqlplus.exe双击打开即可。

Oracle 显示归档日志信息

Oracle  显示归档日志信息

Oracle 显示归档日志信息
查询关于归档的信息有两种方法:一种是使用数据字典和动态性能视图;使用ARCHIVE LOG LIST命令。

在SQL*Plus中执行ARCHIVE LOG LIST命令,将显示当前数据库的归档信息。

例如:
SQL> connect /as sysdba
已连接。

SQL> archive log list;
数据库日志模式存档模式
自动存档启用
存档终点d:\oracledata\archive3
最早的联机日志序列68
下一个存档日志序列71
当前日志序列71
在上述信息中可以得知:
●数据库处于归档模式。

●自动归档功能被启用
●归档目标为本地目录D:\ORACLEDA TA\ARCHIVE3。

●已经归档的最早的重做日志序号为68。

●当前正在归档的重做日志序列号为71。

在表11-3中列出了各种包含归档信息的数据字典视图和动态性能视图。

表11-3 包含归档信息的视图
数据字典视图描述
V$DA TABASE 可以用于查询数据库是否处理归档模式
V$ARCHIVED_LOG 包含从控制文件中所有已经归档的日志信息
V$ARCHIVED_DEST 包含所有归档目标信息
V$ARCHIVE_PROCE
包含已启动的ARCn进程状态信息
SSES
包含所有已经备份的归档日志信息
V$BACKUP_REDOL
OG
V$LOG 包含所有重做日志组的信息,在其中可以查看日志组是否需要
归档。

Oracleg日志查看方法

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归档日志空间设置及查看归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间设置及查看归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间设置及查看归档空间不足引发的问题及解决方法【VIP专享】Oracle归档日志空间不足引发的问题及解决方法归档日志空间不足现的问题的现象1、软件正在操作,突然点击任何菜单无反应;2、打开登录界面后,输入用户名和密码长时间没反应;3、再次打开登录界面登录时,登录画面异常,同时输入用户名和密码后,出现需要提交license提示界面;以下系统管理员操作4、oracle登录操作系统,输入以下命令:[oracle@OASERVER ~]$sqlplussql>connect oa/oa //回车后出现报错5、打开EM时(IE中输入http://10.31.1.200:1158/em),报ORA-00257、ORA-01033等错误;6、oracle客户端工具(如:PLSQL Developer等)连接数据库时报ORA-00257、ORA-01033等错误;*************************************************************** ****************说明:因oracle归档日志还在开启,需定期检测归档日志占用空间大小,归归档日志达到一定比例时要及时清理,以防止归档日志问题导致的oracle服务停止现象,从而影响使用使用OA系统。

1、检测oracle是否可以正常归档oracle用户登录系统[oracle@OASERVER ~]$sqlplussql>connect / as sysdbasql>select * from v$logGROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME-------- ------- ---------- ---------- ---------- --- ------ ------------- ------------1 1 263 52428800 1 NO CURRENT 5924771 13-DEC-102 1 261 52428800 1 YES INACTIVE 5878129 12-DEC-103 1 262 52428800 1 YES INACTIVE 5899219 13-DEC-10说明:上面列表可看出ARC列可正常归档,如果全部为NO,oracle将无法进行归档,此时oracle实例会自动关闭。

Oracle归档日志空间设置及查看 归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间设置及查看 归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间不足引发的问题及解决方法归档日志空间不足现的问题的现象1、软件正在操作,突然点击任何菜单无反应;2、打开登录界面后,输入用户名和密码长时间没反应;3、再次打开登录界面登录时,登录画面异常,同时输入用户名和密码后,出现需要提交license提示界面;以下系统管理员操作4、oracle登录操作系统,输入以下命令:[oracle@OASERVER ~]$sqlplussql>connect oa/oa //回车后出现报错5、打开EM时(IE中输入http://10.31.1.200:1158/em),报ORA-00257、ORA-01033等错误;6、oracle客户端工具(如:PLSQL Developer等)连接数据库时报ORA-00257、ORA-01033等错误;*******************************************************************************说明:因oracle归档日志还在开启,需定期检测归档日志占用空间大小,归归档日志达到一定比例时要及时清理,以防止归档日志问题导致的oracle服务停止现象,从而影响使用使用OA系统。

1、检测oracle是否可以正常归档oracle用户登录系统[oracle@OASERVER ~]$sqlplussql>connect / as sysdbasql>select * from v$logGROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME-------- ------- ---------- ---------- ---------- --- ------ ------------- ------------1 1 263 52428800 1 NO CURRENT 5924771 13-DEC-102 1 261 52428800 1 YES INACTIVE 5878129 12-DEC-103 1 262 52428800 1 YES INACTIVE 5899219 13-DEC-10说明:上面列表可看出ARC列可正常归档,如果全部为NO,oracle将无法进行归档,此时oracle实例会自动关闭。

oracle数据库归档日志使用情况

oracle数据库归档日志使用情况

oracle数据库归档日志使用情况Oracle数据库归档日志使用情况概述:数据库归档日志是Oracle数据库中一个重要的组成部分,它用于记录数据库的所有变更操作,以便数据库在出现故障或需要恢复时能够通过日志进行数据的恢复。

本文将详细介绍Oracle数据库归档日志的使用情况,包括归档日志的作用、生成方式、存放位置以及管理方法等。

一、归档日志的作用数据库归档日志的主要作用是提供了数据的完整性和可恢复性。

当数据库发生故障,如硬件故障、数据库崩溃或意外删除数据等情况,通过归档日志可以使数据库回滚到故障前的状态或恢复数据至故障发生时的状态。

此外,归档日志还可以用于数据库的灾难恢复、数据库的克隆和备份等操作。

当数据库需要从远程站点进行恢复或克隆时,可以通过归档日志来还原数据库至远程站点的状态,实现数据的同步。

同时,归档日志还可以用于数据库的备份,确保备份是最新的,并且能够完全恢复数据库。

二、归档日志的生成方式Oracle数据库归档日志有两种生成模式,一种是归档模式,另一种是非归档模式。

1. 归档模式数据库处于归档模式时,它会自动将日志文件复制到指定的目录中,以便进行数据的归档和恢复。

在归档模式下,数据库的归档日志会自动生成,并且只有归档日志被才会被复制到指定的归档目录中。

归档模式是默认的数据库模式,它可以通过以下命令进行启用:ALTER DATABASE ARCHIVELOG;2. 非归档模式与归档模式相反,非归档模式下数据库不会自动进行归档操作,也就是说不会生成归档日志。

这种模式适用于对数据的可恢复性要求不高的情况,或者是为了降低数据库的I/O负载,减少磁盘空间的占用。

非归档模式可以通过以下命令进行启用:ALTER DATABASE NOARCHIVELOG;需要注意的是,一旦数据库启用了归档模式,就不能再切换到非归档模式。

因此,在启用归档模式前需要谨慎考虑数据库的需求和成本效益。

三、归档日志的存放位置归档日志的存放位置由参数log_archive_dest_n(n为1-10的整数)指定。

oracle日志分析

oracle日志分析

Oracle 重作日志文件(归档日志文件)中的具体内容,特别是,该工具可以分析出所有对于数据库操作的DML(insert、update、delete等)语句,9i 后可以分析DDL语句,另外还可分析得到一些必要的回滚SQL语句。

其中一个最重要的用途就是不用全部恢复数据库就可以恢复数据库的某个变化。

该工具特别适用于调试、审计或者回退某个特定的事务。

LogMiner 工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件。

总的说来,LogMiner 工具的主要用途有:1.跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。

2.回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。

3.优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式。

4. 确定数据库的逻辑损坏时间:准确定位操作执行的时间和SCN ==> 基于时间和SCN 的恢复5. 确定事务级要执行的精细逻辑恢复操作 //取得相应的UNDO 操作6. 执行后续审计 //DML DDL DCL 执行时间、用户注意事项:1. LogMiner 可以帮你确定在某段时间所发的各种DML,DDL操作的具体时间和SCN号,它所依据的是归档日志文件及联机日志文件。

2. 它只能在Oracle8i及以后的版本中使用,不过它可以分析Oracle8 的日志。

3. Oracle8i只能用于分析DML操作,到Oracle9i 则可以分析DDL操作了。

4. LogMiner 不支持索引组织表、Long、LOB及集合类型。

5. 不支持MTS的环境6. LogMiner 必须使用被分析数据库实例产生的字典文件,而不是安装LogMiner 的数据库产生的字典文件,另外必须保证安装LogMiner 数据库的字符集和被分析数据库的字符集相同。

如何查看Oracle日志

如何查看Oracle日志

如何查看Oracle⽇志Oracle⽇志查看⼀.Oracle⽇志的路径:登录:sqlplus "/as sysdba"查看路径:SQL> select * from v$logfile;SQL> select * from v$logfile;(#⽇志⽂件路径)⼆.Oracle⽇志⽂件包含哪些内容:(⽇志的数量可能略有不同)control01.ctl example01.dbf redo02.log sysaux01.dbf undotbs01.dbfcontrol02.ctl redo03.log system01.dbf users01.dbfcontrol03.ctl redo01.log SHTTEST.dbf temp01.dbf三.Oracle⽇志的查看⽅法:SQL>select * from v$sql (#查看最近所作的操作)SQL>select * fromv $sqlarea(#查看最近所作的操作)Oracle 数据库的所有更改都记录在⽇志中,从⽬前来看,分析Oracle⽇志的唯⼀⽅法就是使⽤Oracle公司提供的LogMiner来进⾏,因为原始的⽇志信息我们根本⽆法看懂,Oracle8i后续版本中⾃带了LogMiner,⽽LogMiner就是让我们看懂⽇志信息的⼯具,通过这个⼯具可以:查明数据库的逻辑更改,侦察并更正⽤户的误操作,执⾏事后审计,执⾏变化分析。

四.LogMiner的使⽤:1、创建数据字典⽂件(data-dictionary)1).⾸先在init.ora初始化参数⽂件中,添加⼀个参数UTL_FILE_DIR,该参数值为服务器中放置数据字典⽂件的⽬录。

如:UTL_FILE_DIR = ($ORACLE_HOME\logs) ,重新启动数据库,使新加的参数⽣效:SQL> shutdown;SQL>startup;2).然后创建数据字典⽂件SQL> connect /as sysdbaSQL> execute dbms_logmnr_d.build(dictionary_filename => 'dict.ora',dictionary_location => '/data1/oracle/logs');PL/SQL procedure successfully completed2、创建要分析的⽇志⽂件列表1).创建分析列表,即所要分析的⽇志SQL>execute dbms logmnr.add logfile(LogFileName => '/data1/oracle/oradata/akazamdb/redo01.log',Options => dbms_logmnr.new); PL/SQL procedure successfully completeds2).添加分析⽇志⽂件,⼀次添加1个为宜SQL>execute dbms_ logmnr.add_ logfile(LogFileName => '/data1/oracle/oradata/akazamdb/redo01.log',Options =>dbms_logmnr.ADDFILE);PL/SQL procedure successfully completed3、使⽤LogMiner进⾏⽇志分析(具体要查询什么内容可以⾃⼰修改)(1)⽆限制条件SQL> EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'/data1/oracle/logs/v816dict.ora ');(2)有限制条件通过对过程DBMS_ LOGMNR.START_LOGMNR中⼏个不同参数的设置,可以缩⼩要分析⽇志⽂件的范围。

oracle获取日志

oracle获取日志

1日志获取方法1.1Oracle数据库日志针对Oracle数据库出现的各种问题,为了全方位的定位问题,当遇到oracle数据库异常时,需要获取如下日志信息。

1.1.1b dump/udump日志获取$ORACLE_BASE/admin/$SID/bdump, $ORACLE_BASE/admin/$SID/udump 当天的日志。

如:今天是6月16日,/u01/app/oracle/admin/test/bdump目录下:-rw-r----- 1 oracle oinstall 205370 Jun 13 10:59 alert_test1.log -rw-r----- 1 oracle oinstall 8153 Jun 13 10:59 test1_lgwr_16208.trc-rw-r----- 1 oracle oinstall 2791 Jun 13 23:20 test1_m000_25387.trc-rw-r----- 1 oracle oinstall 2791 Jun 14 23:21 test1_m000_20972.trc-rw-r----- 1 oracle oinstall 2790 Jun 15 23:22 test1_m000_14356.trc-rw-r----- 1 oracle oinstall 166589 Jun 16 10:23 test1_lmd0_16196.trc/u01/app/oracle/admin/test/udump 目录下当天的日志文件。

1.1.2C rs日志crs log目录下crs的相关日志信息,如:/u01/app/oracle/product/10.2.0/crs/log/hp101drwxr-x--- 2 oracle oinstall 96 May 15 14:21 admindrwxr-x--- 2 oracle oinstall 96 May 15 14:22 evmddrwxr-x--- 2 root oinstall 96 May 15 14:22 crsddrwxr-x--- 5 oracle oinstall 8192 May 15 14:38 cssddrwxrwxr-t 5 oracle oinstall 8192 May 21 17:17 racg-rw-rw-r-- 1 root oinstall 7750 Jun 3 16:46 alerthp101.log drwxr-x--- 2 oracle oinstall 114688 Jun 16 14:06 client这些目录下当天的日志文件。

oracle归档日志查看方法

oracle归档日志查看方法

oracle归档日志查看方法环境:AIX6.1Oracle 11g RAC故障:数据库频繁出现归档日志空间不够,导致数据库无法登陆的故障。

一查发现原因是归档日志切换频繁,操作系统空间不够。

确定原因:[aix01@oracle]/oracle>df -g1.Filesystem GB blocks Free %Used Iused %Iused Mounted on2./dev/hd4 0.50 0.28 44% 13674 17% /3./dev/hd2 3.00 0.67 78% 49208 23% /usr4./dev/hd9var 1.00 0.37 63% 9285 10% /var5./dev/hd3 2.00 1.03 49% 2407 1% /tmp6./dev/fwdump 1.00 0.99 2% 30 1% /var/adm/ras/platform7./dev/hd1 0.25 0.18 28% 465 2% /home8./dev/hd11admin 0.25 0.25 1% 5 1% /admin9./proc -----/proc10./dev/hd10opt 0.50 0.28 44% 10241 14% /opt11./dev/livedump 0.25 0.25 1% 12 1% /var/adm/ras/livedump12./dev/oraclelv 30.00 11.29 63% 161681 6% /oracle13./dev/installlv 15.00 3.38 78% 6478 1% /install14./dev/crslv 10.00 3.35 67% 7807 1% /crs15./dev/wmsapplv 30.00 17.49 42% 15537 1% /wmprod16./dev/archivelv 29.25 29.25 1% 4 1% /arch117./dev/backuplv 400.00 107.13 74% 306 1% /sysbackup18.aix02:arch2 30.25 0.64 99% 3 1% /arch2可以看到,/arch2里文件系统空间已经达到99%,/arch2是用来存放归档日志的文件系统,进而导致数据库出错。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle日志查看
Oracle数据库的就业前景已经无须多言了,DBA毫无疑问是我们时代最幸福的岗位之一。

尚观致力于Oracle技术的普及,以OCP、OCM认证帮助求职者实现就业竞争力的成倍增长。

今天跟大家分享一篇由尚观整理,oracle日志查看的技术文档:
一.Oracle日志的路径:
登录:sqlplus "/as sysdba"
查看路径:SQL> select * from v$logfile;
SQL> select * from v$logfile;(#日志文件路径)
二.Oracle日志文件包含哪些内容:(日志的数量可能略有不同)
control01.ctl example01.dbf redo02.log sysaux01.dbf undotbs01.dbf
control02.ctl redo03.log system01.dbf users01.dbf
control03.ctl redo01.log SHTTEST.dbf temp01.dbf 三.Oracle日志的查看方法:
SQL>select * from v$sql (#查看最近所作的操作)
SQL>select * fromv $sqlarea(#查看最近所作的操作)
Oracle 数据库的所有更改都记录在日志中,从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行,因为原始的日志信息我们根本无法看懂,Oracle8i后续版本中自带了LogMiner,而LogMiner就是让我们看懂日志信息的工具,通过这个工具可以:查明数据库的逻辑更改,侦察并更正用户的误操作,执行事后审计,执行变化分析。

四.LogMiner的使用:
1、创建数据字典文件(data-dictionary)
1).首先在init.ora初始化参数文件中,添加一个参数UTL_,该参数值为服务器中放置数据字典文件的目录。

如:UTL_ = ($ORACLE_HOME\logs) ,重新启动数据库,使新加的参数生效:
SQL> shutdown;
SQL>startup;
2).然后创建数据字典文件
SQL> connect /as sysdba
SQL> execute dbms_logmnr_d.build(dictionary_ => 'dict.ora',dictionary_location => '/data1/oracle/logs');
PL/SQL procedure successfully completed
2、创建要分析的日志文件列表
1).创建分析列表,即所要分析的日志
SQL>execute dbmslogmnr.addlog => '/data1/oracle/oradata/akazamdb/redo01.log',Options
=>dbms_logmnr.new);
PL/SQL procedure successfully completeds
2).添加分析日志文件,一次添加1个为宜
SQL>execute dbms_ logmnr.add_ log => '/data1/oracle/oradata/akazamdb/redo01.log',Options
=>dbms_logmnr.ADDFILE);
PL/SQL procedure successfully completed
3、使用LogMiner进行日志分析(具体要查询什么内容可以自己修改)
(1)无限制条件
SQL> EXECUTE dbms_logmnr.start_logmnr(
Dict>'/data1/oracle/logs/v816dict.ora ');
(2)有限制条件
通过对过程DBMS_ LOGMNR.START_LOGMNR中几个不同参数的设置,可以缩小要分析日志文件的范围。

通过设置起始时间和终止时间参数我们可以限制只分析某一时间范围的日志。

如下面的例子,我们仅仅分析2007年9月18日的日志:
SQL> EXECUTE dbms_logmnr.start_logmnr(
Dict => ' /data1/oracle/logs/ v816dict.ora ',
StartTime =>to_date('2007-9-18 00:00:00','YYYY-MM-DD HH24:MI:SS')
EndTime =>to_date(''2007-9-18 23:59:59','YYYY-MM-DD HH24:MI:SS '));
也可以通过设置起始SCN和截至SCN来限制要分析日志的范围:SQL> EXECUTE dbms_logmnr.start_logmnr(
Dict => ' /data1/oracle/logs/ v816dict.ora ',
StartScn => 20,
EndScn => 50);
4、观察分析结果(v$logmnr_contents)
到现在为止,我们已经分析得到了重作日志文件中的内容。

动态性能视图v$logmnr_contents包含LogMiner分析得到的所有的信息。

SELECT sql_redo FROM v$logmnr_contents;
如果我们仅仅想知道某个用户对于某张表的操作,可以通过下面的SQL查询得到,该查询可以得到用户DB_ZGXT对表SB_DJJL所作的一切工作。

SQL> SELECT sql_redo FROM v$logmnr_contents WHERE username='DB_ZGXT' AND tablename='SB_DJJL';
需要强调一点的是,视图v$logmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在。

这是因为所有的LogMiner存储都在PGA内存中,所有其他的进程是看不到它的,同时随着进程的结束,分析结果也随之消失。

最后,使用过程DBMS_LOGMNR.END_LOGMNR终止日志分析事务,此时PGA内存区域被清除,分析结果也随之不再存在。

5、查看LogMiner工具分析结果
SQL> select * from dict t where t.table_name like '%LOGMNR%';-看所有与logmnr相关的视图
GV$LOGMNR_LOGS 是分析日志列表视图
分析结果在GV$LOGMNR_CONTENTS 视图中,可按以下语句查询:select
scn,timestamp,log_id,seg_owner,seg_type,table_space,data_bl
k#,data_obj#,data_objd#,
session#,serial#,username,session_info,sql_redo,sql_undo
from logmnr3 t where t.sql_redo like 'create%';
如果不能正常查询GV$LOGMNR_CONTENTS视图,并报以下错误,ORA-01306: 在从v$logmnr_contents 中选择之前必须调用dbms_logmnr.start_logmnr() 。

可采用如下方法:
create table logmnr3 as select * from GV$LOGMNR_CONTENTS。

相关文档
最新文档