简单来说,学习Oracle数据库就两个目标:
保证数据库数据的一致性;
提高数据库的性能(这个和日志没关系)。
 
日志的功能:
    只是保证数据库数据的一致性;
 
1、Oracle日志原理
    史记讲解法
    日志记录方式
2、实际日志产生过程
3、归档模式

    alter database archivelog
ARCHIVE LOG LIST
SELECT log_mode FROM v$database
alter database noarchivelog
ALTER SYSTEM ARCHIVE LOG CURRENT
ALTER SYSTEM ARCHIVE LOG ALL
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;
alter system set log_archive_dest = '/u01/app/oracle/archivelog1' scope = spfile;
alter system set log_archive_duplex_dest = '/u01/app/oracle/archivelog2' scope = spfile;
alter system set log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3';
alter system set log_archive_dest_2 = 'SERVICE=standby1';
alter system set log_archive_format = 'arch_%t_%s_%r.arc'; col dest_name format a20;
col destination format a30;
select dest_name,status,archiver,destination,log_sequence,reopen_secs,transmit_mode,process
from v$archive_dest; select name,sequence#,registrar,standby_dest,archived,status from v$archived_log; v$archived_log -->从控制文件中获得归档的相关信息
v$archive_dest -->归档路径及状态
v$log_history -->控制文件中日志的历史信息
v$database -->查看数据库是否处于归档状态
v$archive_processes -->归档相关的后台进程信息 select * from v$logfile;
select member,bytes/1024/1024 from v$log a,v$logfile b
where a.group#=b.group#
select NAME,STATUS from v$archived_log;

4、如何确保已经提交的事务不会丢失

5、Write-Ahead-Log:日志写入优先

6、LGWR绕过OS缓存直接写入磁盘,但是绕不过存储的写缓存
7、Log buffer大小设置

    9i以前,一般是3M
在10g中ORACLE会自动调整它的值,他遵循这样一个原则,'Fixed SGA Size'+ 'Redo Buffers'是granule size 的整数倍
select * from v$sgainfo where name in ('Fixed SGA Size','Redo Buffers','Granule Size');
--在10.2.0.3 中Log Buffer 默认值是14M,在10.2.0.4中,默认值是15M
select * from v$version where rownum<2;

8、LGWR触发条件:Write-Ahead-Log:日志写入优先

    1.用户提交
2.有1/3重做日志缓冲区未被写入磁盘
3.有大于1M的重做日志缓冲区未被写入磁盘
4.每隔3秒钟
5.DBWR需要写入的数据的SCN大于LGWR记录的SCN,DBWR触发LGWR写入

9、LOG优化建议

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

10、REDO LOG 切换的时间应该尽可能的不低于10-20 分钟

select to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') f_time,SEQUENCE# from v$log_history

11、日志相关的一些操作

alter database add logfile group 5 '/opt/oracle/oradata/dbtest/redo05_1.log' SIZE 10M
alter database add logfile member '/opt/oracle/oradata/dbtest/redo04_3.log' to group 4
alter database drop logfile group 5
alter database drop logfile ('/opt/oracle/oradata/dbtest/redo05_1.log','/opt/oracle/oradata/dbtest/redo05_2.log')

相克军_Oracle体系_随堂笔记006-日志原理的更多相关文章

  1. 相克军_Oracle体系_随堂笔记015-网络原理及配置

    oracle网络没有负载, 没有负载的就不容易出问题.相对很简单的.   1.监听的动态注册: PMON 注册监听,或者 alter system register; 强制PMON抓紧注册. 都属于动 ...

  2. 相克军_Oracle体系_随堂笔记002-基础

    1.常见的Oracle生产库环境: 图2-1可以说是标准的生产库环境,处处体现了冗余,有效防止了单点故障.这就是HA(高可用) 而且冗在某种条件下还可以去掉,平常实现同时运行提供服务,如果一台坏掉,另 ...

  3. 相克军_Oracle体系_随堂笔记001-概述

    一.Oracle官方支持 1.在线官方文档 http://docs.oracle.com/ 2.metalink.oracle.com,如今已经改成:http://support.oracle.com ...

  4. 相克军_Oracle体系_随堂笔记003-体系概述

    1.进程结构图 对Oracle生产库来讲,服务器进程(可以简单理解是前台进程)的数量远远大于后台进程.因为一个用户进程对应了一个服务器进程. 而且后台进程一般出问题几率不大,所以学习重点也是服务器进程 ...

  5. 相克军_Oracle体系_随堂笔记004-shared pool

    本章主要阐述SGA中的shared pool. Shared pool { 1.free 2.library cache(缓存sql语句及其执行计划) 3.row cache(数据字典缓存) }   ...

  6. 相克军_Oracle体系_随堂笔记005-Database buffer cache

    本章主要阐述SGA中的Database buffer cache. Buffer cache { 1.pin (读写瞬间的状态) 2.clean 3.dirty 4.unused } --Databa ...

  7. 相克军_Oracle体系_随堂笔记007-PGA

    实际工作中,Oracle中有两个很重要:Server Process 和 PGA.   PGA内存作用和构成   1.PGA作用 2.PGA构成 1)private SQL area   2)Sess ...

  8. 相克军_Oracle体系_随堂笔记008-存储结构

    控制文件.数据文件.日志文件    放在存储上.   参数文件:数据库启动时读取,并不关闭,但是启动过后丢了也没事.一般放在服务器上. $ORACLE_HOME/dbs下   备份文件{     控制 ...

  9. 相克军_Oracle体系_随堂笔记009-检查点队列

    1.检查点队列 checkpoint queue RBA 日志块地址 redo block address LRBA 第一次被脏的地址 HRBA 最近一次被脏的地址 on disk rba 重做日志( ...

随机推荐

  1. css3新属性object-fit,对页面img处理

    1.http://my.xueh5.com/xh5639998239/detail-3661.html 针对其进行深度讲解推荐 http://www.zhangxinxu.com/wordpress/ ...

  2. 《微软互联网信息服务(IIS) 最佳实践》已上市,欢迎选购!

    本书内容涵盖了IIS6.0~IIS 10.0 的全部主流IIS 版本,是多年微软技术支持经验的结晶.祝您顺利排除Web 服务器的疑难杂症! 本书由微软亚太区全球技术支持中心IIS 方面的顶尖专家金鑫作 ...

  3. 微信中一些常用的js事件积累

    1.网页图片集左右滑动查看图片,如下样例: jjs效果 var pictures = []; angular.forEach(pitctures,function(k,i){         pict ...

  4. (DNS被劫持所导致的)QQ音乐与视频网页打开很慢的解决方法

    这周开始发现一个很让人抓狂的现象,QQ音乐网页(http://y.qq.com)与QQ视频(http://v.qq.com/)网页打开超慢,甚至是无法打开,严重影响了业余的音乐视频生活. 以QQ视频为 ...

  5. Repository 仓储,你的归宿究竟在哪?(二)-这样的应用层代码,你能接受吗?

    写在前面 关于"Repository 仓储,你的归宿究竟在哪?"这个系列,本来是想写个上下篇,但是现在觉得,很有多东西需要明确,我也不知道接下来会写多少篇,所以上一篇的标题就改成了 ...

  6. Rxjava入门

    简介 RxJava是一个开源的Rx框架ReactiveX的java版本. ReactiveX的主要目的是通过一系列Observable组合异步或事件代码.其中使用的是观察者模式. 可以吧Reactiv ...

  7. 【原】Python用例:将指定文件或目录打包成zip文件

    #This Demo is used to compress files to .zip file #Base on Windows import os import time #The files ...

  8. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

  9. 如何用注解简化SSH框架

    一.简化代码第一步,删除映射文件,给实体类加上注解 @Entity //声明当前类为hibernate映射到数据库中的实体类 @Table(name="news") //声明tab ...

  10. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...