oracle日志

日志分类

redo log files联机日志或重做日志
archived log files归档日志  1184198alert log files  告警日志

 trace files  user_ _dump_ _dest  用户信息日志如跟踪会话日志
background dump_ dest进程日志还有其他一-些不常用的日志

 

v$database的log_mode 数据库归档模式
v$archived_log 控制文件中已经归档的日志文件信息
v$archive_dest 所有归档目标
v$archive_processes 已启动的归档进程状态
v$archive_redolog    已经备份的归档日志信息   
 

 

redo log files 重做日志分为在线重做日志和归档重做日志。
  online Redo log files--在线重做日志,又称联机重做日志,指Oracle以SQL脚本的形式实时记录数据库的数据更新,换句话说,实时保             存已执行的SQL脚本到在线日志文件中(按特定的格式)。
  Archive Redo log files--归档重做日志,简称归档日志,指当条件满足时,Oracle将在线重做日志以文件形式保存到硬盘(持久化)。
        重做日志文件是数据库中一种非常重要的日志文件,也是其一一个很有特色的功能。
        重做日志文件会记录对于数据库的任何操作,如利用DML语句或者DDL语句对数据进行更改,或者数据库管理员对数据库结构进行更改,都会在重做日志中进行记录。
        当数据被意外的删除或者修改,我们可以利用重新日志文件进行恢复;当出现例程失败或者介质失败的情况下,也可以利用日志文件实现例程恢复或者介质恢复。所以说,我们若能够管理好重做日志文件的话,对于保障数据         库数据的安全是非常重要的。

      联机重做日志有以下特性:
          1.记录所有对数据的改变
          2.提供恢复机制
          3.能够被分组

          4.至少需要两个日志组

 当前归档日志组写满后,Oracle会切换到下一日志组,继续写入,就这样循环切换;当处于归档模式下,切换至原已写满的日志组,若该日志组归档完毕则覆盖写入,若没有则只能使用日志缓冲区,等待归档完毕之后才能覆盖写入。当然,处于非归档模式下是直接覆盖写入的

 Oracle提供了2个视图用于维护在线重做日志:V$LOG 和  V$LOGFILE,我们可以通过这两个视图查看和修改在线日志

工作机制

1.联机重做日志文件是循环使用的.
2.当一个联机重做日志文件被写满了,LGWR将移到下个联机重做日志文件组.被称为日志切换,同时发生检查点,信息将被写入控制文件
3.redo log是二进制文件
4.日志文件的组织模式是组组下是成员至少两个组
5.组和组是平等的关系
6.实例同- -时刻只能向-一个组写日志
7.-个组写满了,写下一个组,这个过程叫WiTCH自动切换和手工切换
8.日志切换产生checkpoint有增量检测和完全检测两种
9.完全检测:一致性 SHUTDOWN时;alter system checkpoint,

结果为:所有的脏数据块写入文件,改写文件头的信息
参数log._ checkpoints_to_alert=true 决定检测点的信息写入报警日志,如果将日志文件转出到DUMP中

select * from v$log;
select to_char(first_time, 'yyyy-mm-dd') day2  from v$log_history group by day2,

alter session set events 'immediate trace name redohdr level n';增加|减少日志组的成员,
select to_number('fffffffffff','xxxxxxxxxxxxxxxxxx')from dual;

Redo写的触发条件:

1,每三秒钟超时(timeout):
当LGWR处于空闲状态时,它依赖于rdbms rpc message等待事件,处于休眠状态,直到三秒时间到,如果这个时候LGWRf发现有Redo信息需要写出的话,那么LGWR将执行写的操作,log file parallel write等待事件将会出现。
2.阀值的达到:
Redo log buffer 1/3满;
Redo log buffer拥有1MB的脏数据;

参数_ log _io _size的设置很重要,一般为 log_buffer 的1/3大小
3.用户提交:
当一个transaction 提交的时候,在Redo stream 中将记录一-个 提交标志。在这些Redo被写到磁盘上之前,这个transaction是不能恢复的。所以,在transaction返回成功标志之前,必须等待LGWR写的完成。进程通知LGWR写,并且以log file sync事件开始休眠。超时为1秒
4.在DBWn写之前:
如果DBWR将要写出的数据的高RBA超过LGWR的on-diskRBA,则DBWR将通知LGWR执行写的操作,在Oracle8i之前,此时DBWR将等待Log file sync事件。从Oracle8i开始,DBWR把这些block(将要写出的block,这种block的高RBA超过了LGWR的on-diskRBA)放入defer队列中,同时通知LGVR执行Redo写出。
注:
logbufferspace等待事件说明logbuffer空间不够用了。

redo日志文件管理

 规划原则:分散放开到不同的硬盘,日志所在盘的IO要足够,IO读写都要快增加减少日志成员或组日志状态与监视处理日志异常[日志不一-致,日志丢失,日志损坏]
 增加减少日志成员或组:
alter database add logfle group < member(<dir>'

<dir>) size < ;alter database add logfile member dir' to group < D;alter database drop logfile ‘dir';
alter database drop logfile group 

redo日志文件的状态UNUSED:表示从未对联机重做日志文件组进行写入。这是刚添加的联机重做日志文件的状态
CURRENT:表示当前的联机重做日志文件组。这说明该联机重做日志文件组是活动的
ACTIVE:表示联机重做日志文件组是活动的,但是并非当前联机重做日志文件组。崩溃恢复需要该状态。它可用于块恢复。它可能已归档,也可能未归档
CLEARING:表示在执行ALTER DATABASE CLEAR LOGFILE命令后正在将该日志重建为一个空日志。日志清除后,其状态更改为
 CLEARING_ CURRENT:表示正在清除当前日志文件中的已关闭线程。如果切换时发生某些故障,如写入新日志标头时发生了输入/输出(I/O) 错误,则日志可能处于此状态。

 INACTIVE:表示例程恢复不再需要联机重做文件日志组。它可能已归档,也可能未归档。
注:处于active的日志文件组无法删除,因为这个日志文件组可能会在实例恢复的时候使用。
我们可以使用alter database checkpoint命令手动的创建一个检查点,来是active的日志文件组变成inactive的日志文件组,这一点在扩容日志文件组(先删除再添加)的时候会用到!
可以使用alter system switch logfile命令手动的切换日志文件组
另外在说一下active和inactive的一些区别,其实这两种状态的重做日志都是已经归档的,不同的只是,active状态的重做日志文件组是在实例恢复的时候被需要的,因为有一些事务虽然已经提交了,但是这些记录的更改还没有写到datafile中,如果这个时候实例一旦失败(断电或者其他的突发情况),在进行实例恢复的时候会需要这些active状态的日志文件组,每过一段时间,当系统负载不是很大的时候,Oracle会尝试将内存中的数据写入到datafile中,这个时候active的日志文件组就会变成inactive状态,我们可以使用alter database checkpoint强制来执行这个过程;而inactive是在实例恢复的时候不被需要的日志文件组。

V$logfile的status

INVALID:表明该文件不可访问STALE:表示文件内容不完全

stale表示文件内容不完全

deleted表示文件已经不再使用

空白表示文件在使用中

 要确定一个数据库例程的联机重做日志文件的合适数量,您必须测试不同的配置。在某些情况下,数据库例程可能只需要两个组。在其它情况下,数据库例程可能需要更多的组以保证各个组始终可供LGWR使用。例如,如果LGWR跟踪文件或警报文件中的消息表明LGWR经常不得不因为检查点操作尚未完成或者组尚未归档而等待,您就需要添加组。

      尽管Oracle服务器允许多元备份的组可以包含不同数量的成员,但应该尽量建立对称配置。不对称配置应只是非常情况( 如磁盘故障)的临时结果。

      联机重做日志文件的位置: .

      对联机重做日志文件进行多元备份时,请将组内的成员放置在不同磁盘上。这样,即使一个成员不可用而其它成员可用,该例程也不会关闭。将归档日志文件和联机重做日志文件分放在不同磁盘上,以减少ARCn和LGWR后台进程之间的争用。

      数据文件和联机重做日志文件应当放置在不同的磁盘上以减少LGWR和DBWn的争用,并降低发生介质故障时同时丢失数据文件和联机重做日志文件的风险。

      调整联机重做日弯文件的大小:

      联机重做日志文件最小为50 KB,最大文件大小视操作系统而定。不同组的成员可以有不同的大小:但是,大小不同的组不会带来任何好处。

      只有当需要更改联机重做日志组的成员大小时,才需要大小不同的组作为临时结果。在, 有不同的大小:但是,大小不同的组不会带来任何好处
 
-添加新的重做日志文件组,group 4 可以缺省,大小最好10M到50M之间
select * from v$logfile;
alter database add logfile group 4
'F:\APP\HANLIN\ORADATA\ORCL\REDO04.LOG'  size 20M;
多个成员
alter database add logfile group 6
('F:\APP\HANLIN\ORADATA\ORCL\REDO06_A.LOG',
'F:\APP\HANLIN\ORADATA\ORCL\REDO06_B.LOG')size 20M;
————————————————
下面语句只修改数据字典和控制文件,不删除实际文件
alter database drop logfile group 4;
下面语句清空重做日志文件
alter database clear logfile group 4;alter database add logfile member 
'F:\APP\HANLIN\ORADATA\ORCL\REDO04_B.LOG' to group 4;
删除日志成员(只修改数据字典和控制文件,不删除实际文件)
alter database drop logfile member 
'F:\APP\HANLIN\ORADATA\ORCL\REDO04_B.LOG' 
更改重做日志文件的位置或名称的步骤:
shutdown;
复制日志文件,修改日志文件名称
startup mount;
--举例两个成员的路径和名称修改
alter database rename file 
'成员1j旧路径\新文件名','成员2旧路径\新文件名'
to
''成员1新路径\新文件名,'成员2新路径\新文件名';
alter database open;

 

 

alter system set 1og_ archive_ dest_ 2 =’SERVICE=standby1' ;alter system set 1og_ _archive_ format =’arch_ _%t_ _%s_ _%r. arc' ;

co1 dest_ name format a20;col destination format a30;

select dest_ _name, status, archiver, destination, 1og_ _sequence, reopen_ _secs, transmit_ _mode, processfrom vSarchive_ dest;

selectname, sequence#, registrar, standby_ dest, archived, status from v$archived_ 1og;

v$archived_ 1ogvSarchive_ destv$1og_ historyv$database

vSarchive_ processes

      -->从控制文件中获得归档的相关信息-->归档路径及状态

      -->控制文件中日志的历史信息-->查看数据库是否处于归档状态-->归档相关的后台进程信息

select * from v$logfile;

select member, bytes/1024/1024 from v$1og a, v$logfile bwhere a. group#=b. group#

select NAME, STATUS from v$archived_ 1og;

 

Log buffer大小设置

      9i以前,- -般是3M

      在10g中ORACLE会自动调整它的值,他遵循这样一个原则,’Fixed SGA Size' +’Redo Buffers' 是granule size的整数倍;select * from vSsgainfo where. name in (' Fixed SGA Size' ,’Redo Buffers' ,’Granule Size’ ) ;--在10.2.0.3中Log Buffer 默认值是14M,在10.2.0. 4中,默认值是15Mselect * from vSversion where rownum<2;8、LGWR触发条件:Write- Ahead-Log: 日志写入优先

      1.用户提交

      2.有1/3重做日志缓冲区未被写入磁盘

      3.有大于1M的重做日志缓冲区未被写入磁盘4.每隔3秒钟

      5. DBWR需要写入的数据的SCN大于LGWR记录的SCN,DBWR触 发LGWR写入9、L0G优化建议

      在OLTP 系统上,REDO LOG文件的写操作主要是小型的,比较频繁,一般的写大小在几K,而每秒钟产生的写I0次数会达到几十次,数百次甚至_上千次。因此REDO LOG文件适合存放于IOPS 较高的转速较快的磁盘上,I0PS仅能达到数百次的SATA盘不适合存放REDO LOG文件。另外由于REDO LOG文件的写入是串行的,因此对于REDO LOG文件所做的底层条带化处理,对于REDO LOG写性能的提升是十分有限的。10、REDO LOG切换的时间应该尽可能的不低于10-20分钟

select to_ char (FIRST _TIME,’ yyy-mm-dd hh24:mi:ss' ) f. _time, SEQUENCE# from vS1og_ history11、日志相关的一-些操作

alter database add logfile group 5_ ’/opt/ orac1e/ oradata/ dbtest/redo05_ 1. 1og’ SIZE 10Malter database add 1ogfile member' / opt/ oracle/ oradata/ dbtest/redo04_ 3. 1og’to group 4alter database drop logfile group 5

alter database drop logfile (' /opt/oracle/ oradata/ dbtest/redo05_ 1. 1og' ,’/opt/ oracle/ oradata/ dbtest/redo05_ 2. 1og' )\\

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL:分库分表知识点盘点

本篇内容包括&#xff1a;数据库瓶颈、分库分表以及分库分表相关问题 一、数据库瓶颈 不管是IO瓶颈&#xff0c;还是CPU瓶颈&#xff0c;最终都会导致数据库的活跃连接数增加&#xff0c;进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是&#xff0c;可用…

oracle的sga

sga SGA的管理 ■有三种方式&#xff1a; ●8i:SGA的总大小由所有内存组件大小之和决定&#xff0c;不能直接定义SCA大小。对内部组件大小的修改必须在数据库重起 后 才能生为&#xff0c;所以叫做SGA的静态管理。 ●9i&#xff…

MySQL:主从相关知识点盘点

本篇内容包括&#xff1a;MySQL 主从复制简介、主从复制的原理以及主从搭建 一、MySQL 主从复制简介 在实际的生产中&#xff0c;为了解决Mysql的单点故障已经提高MySQL的整体服务性能&#xff0c;一般都会采用**「主从复制」**。 比如&#xff1a;在复杂的业务系统中&#x…

oracle导出expdp

expdp/impdp 是 oracle 10g 版本后推出的服务器端工具--数据泵&#xff0c;作用是为了将数据库中的逻辑对象&#xff0c;比如表、用户、全库、表空间进 行导入&#xff0c;导出 命令解析 ATTACH ATTACH [[schema_name.]job_name] schema_name 表示用户名,job_name 表示导出的作…

oracle检查点

检 查 点 概述 ■l当修改数据时&#xff0c;需要首先将数据读入内存中&#xff08;Buffer Cache&#xff09;&#xff0c;修改数据的同时&#xff0c;Oracle会记录重做信息&#xff08;Redo&#xff09;用于恢复。因 为有了重做信息的存在&#xff0c;Oracle不需要在提交时…

文献翻译:Java theory and practice: Fixing the Java Memory Model, Part 2

Java theory and practice: Fixing the Java Memory Model, Part 2 译&#xff1a;Java 理论与实践&#xff1a;修复 Java 内存模型&#xff0c;第 2 部分 翻译自&#xff1a;http://www.ibm.com/developerworks/library/j-jtp03304/&#xff08;原文写于2004年3月&#xff0…

常用系统函数oracle

单行函数日期函数ADD_MONTHS(date, n):用于从一个日期值增加或减少一些月份 MONTHS_BETWEEN(date1, date2):判断两个日期之间相差的月份 LAST_DAY(date): 函数返回包含日期的月份的最后一天 ROUND(date[,fmt]): 将日期d按照fmt指定的格式舍入&#xff0c;fmt为字符串 TRU…

oracle游标

游标&#xff08;cursor &#xff09;是一个私有的SQL工作区域,是一个指向上下文区的句柄或指针&#xff0c;位于内存中的 "临时表"。 游标是SQL的一个内存工作区&#xff0c;由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某…

系统学习SpringFramework:Spring IOC

本篇内容包括&#xff1a;IOC 和 DI 的概念、Spring 容器&#xff0c;即 BenaFactory 与 AplicationConext 等 IOC 相关内容。 一、IOC 和 DI 的概念 1、IOC IoC&#xff08;Inversion of control &#xff09;即“控制反转”&#xff0c;它是一种设计思想而非一个技术实现。…

rowid

ROWID的格式rowidOOOOOOFFFBBBBBBRRR说明数据对象号相对文件号数据块号行号 上述表格是Oracle 9i及以上版本数据库中的rowid格式: 6位对象号3位相对文件号6位数据块号3位行号&#xff0c;是一个18位的64进制值。这个18位的64进制值在数据库内却是以10个bytes合计80个bit的二进制…

系统学习SpringFramework:循环依赖与三级缓存

本篇内容包括&#xff1a;Spring 中的循环依赖问题&#xff08;包括 Spring 中的循环依赖问题和Spring 中的循环依赖的 5 种场景的介绍&#xff09;、Spring 三级缓存介绍、4 个 Spring 无法自动解决的循环以来场景以及其对应的手动解决方式。 一、Spring 中的循环依赖问题 1、…

深入理解Java虚拟机:Java类的加载机制

本篇内容包括&#xff1a;Java 类的加载机制&#xff08;Jvm 结构组成、Java 类的加载&#xff09;、类的生命周期&#xff08;加载-验证-准备-解析-初始化-使用-卸载&#xff09;、类加载器 以及 双亲委派模型。 一、Java 类的加载机制 1、 Jvm 结构组成 Jvm 整体组成可分为…

新版谷歌浏览器开启Flash支持

浏览器地址栏中输入chrome://version查看Chrome浏览器、Flash插件的版本信息。 Chrome 69.0-70.0版本Chrome 71.0-74.0及以后版本谷歌浏览器地址栏中输入【chrome://flags/#enable-ephemeral-flash-permission】&#xff0c;将【Enable Ephemeral Flash Permissions】从【Defau…

深入理解Java虚拟机:Java垃圾回收机制

本篇内容包括&#xff1a;JAVA 垃圾回收机制概述、有哪些内存需要回收、如何回收&#xff08;标记-清除、标记-整理&#xff08;标记-清除-压缩&#xff09;、复制&#xff08;标记-复制-清除&#xff09;、分代收集等算法&#xff09; 以及 何时进行垃圾回收等内容&#xff01…

深入理解Java虚拟机:Java垃圾回收器

本篇内容包括&#xff1a;7 种 Jvm 垃圾回收器的介绍、对比 以及 对应的 Jvm 参数设置&#xff0c;这 7 种包括了&#xff1a;Serial、ParNew 以及 Parallel Scavenge 三种新生代回收器 和 &#xff1a;Serial Old、Parallel Old 以及 CMS 三种老年代回收器&#xff0c;此外还有…

网络协议:什么是网络分层的七四五

本篇内容包括&#xff1a;网络分层七层、五层、四层网络协议概念的介绍&#xff0c;IOS 体系结构的介绍与构成、TCP/IP体系结构的简介及与IOS体系的关系 以及五层体系结构的介绍。 一、七层、五层、四层网络协议概念 1、关于网络协议 网络协议&#xff0c;即是指计算机网络中…

网络协议:一文搞懂Socket套接字

本篇内容包括&#xff1a;Socket 套接字的简介、Socket 套接字的分类、Java 中的 Socket 即 java.net.ServerSocket、java.net.Socket 的使用&#xff0c;以及Java 使用套接字 Scoket 编程的Demo。 一、Socket 简介 TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、…

网络协议:透彻解析HTTP协议

本篇内容包括&#xff1a;HTTP 协议定义及其特点概述、关于 URL 定义及分类概述、Request 请求、Response 响应 以及 浏览器访问一个网站的全过程 等内容… 一、HTTP 协议概述 HTTP&#xff08;HyperText Transfer Protocol&#xff09; 即 超文本传输协议&#xff0c;它是一种…

Redis系列:Redis的概述与安装

Redis(Remote Dictionary Server) 是一个使用 C 语言编写的&#xff0c;开源的&#xff08;BSD许可&#xff09;高性能非关系型&#xff08;NoSQL&#xff09;的键值对数据库。 本篇内容包括&#xff1a;Redis 简介&#xff08;为什么快&#xff1f;为什么单线程&#xff1f;优…