<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>记忆在这里化作永恒 &#187; redo logfile</title>
	<atom:link href="http://www.onlyring.net/tag/redo-logfile/feed" rel="self" type="application/rss+xml" />
	<link>http://www.onlyring.net</link>
	<description>记录工作，记录生活，记录一切值得留下的东西...</description>
	<lastBuildDate>Tue, 10 May 2011 04:21:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>重做日志管理(SG 9iR2)-2</title>
		<link>http://www.onlyring.net/2008/04/16/oracle-rdbms/zhongzuorizhiguanlisg9ir2-2.html</link>
		<comments>http://www.onlyring.net/2008/04/16/oracle-rdbms/zhongzuorizhiguanlisg9ir2-2.html#comments</comments>
		<pubDate>Wed, 16 Apr 2008 19:11:42 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Oracle RDBMS]]></category>
		<category><![CDATA[redo logfile]]></category>

		<guid isPermaLink="false">http://www.onlyring.net/2008/04/16/oracle-rdbms/zhongzuorizhiguanlisg9ir2-2.html</guid>
		<description><![CDATA[<p> 9.获取日志组和日志成员的信息
  V$LOG
  V$LOGFILE
  这两个视图都存在STATUS这个列，下面主要讲一下这两个列存在的一些状态以及这些状态所表示的含义。
 
 (1) V$LOG status 列
     *UNUSED
      日志组从来没有被使用过，一般会出现在，loggroup刚刚被添加，或者刚刚使用了resetlogs打开数据库，或者使用clear logfile后。
     *CURRENT
      当前正在被使用的日志组，这也意味着这个日志组是active状态。
     *ACTIVE
      日志组处于active，crash recovery需要用到，还没有完成checkpoint。可能在block recovery中需要用到。
      日志组可能已经被归档也可能没有。
 [...]]]></description>
		<wfw:commentRss>http://www.onlyring.net/2008/04/16/oracle-rdbms/zhongzuorizhiguanlisg9ir2-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>重做日志管理(SG 9iR2)-1</title>
		<link>http://www.onlyring.net/2008/04/16/oracle-rdbms/zhongzuorizhiguanlisg9ir2-1.html</link>
		<comments>http://www.onlyring.net/2008/04/16/oracle-rdbms/zhongzuorizhiguanlisg9ir2-1.html#comments</comments>
		<pubDate>Wed, 16 Apr 2008 18:37:30 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Oracle RDBMS]]></category>
		<category><![CDATA[redo logfile]]></category>

		<guid isPermaLink="false">http://www.onlyring.net/2008/04/16/uncategorized/zhongzuorizhiguanlisg9ir2-1.html</guid>
		<description><![CDATA[<p>1.基本日志结构
重做日志记录所有对数据库所作的数据修改。当数据库系统或者介质失败时，给数据库提供一种恢复机制。
.重做日志以日志组的形式管理。
.ORACLE数据库最少要有两个日志组
.每个日志组里面的日志文件称为日志成员。
.重做日志组和其成员的数量由参数MAXLOGFILES和MAXLOGMENGERS控制

2.重做日志的工作机制
ORACLE数据库将对数据库所做的修改(DML)写入redo log buffer,重做日志条目由LGWR再从redo log buffer中被写入
在线重做日志(online redo log)中。LOGWR在以下四种情况下会将redo log buffer中的数据写入online redo log中：
.当一个事务被递交(commit)
.当redo log buffer达到三分之一
.当redo log buffer中的数据达到1Mb
.DBWn写data buffer中的数据到DATAFILE</p>
<p>重做日志以循环方式被使用，每个重组日志组由一个叫重做日志序列号的的数据唯一标识，当重做日志被重用的时候，
这个序列号也同时被更新。
(1)日志切换(log switches)
日志切换就是当一个重组日志组满后，使用下一个重组日志组的一个动作。
(2)检查点(checkpoints)
当检查点发生时，数据库会做以下事情：
.由重做日志保护的数据库缓冲区中的脏数据由DBWn写入datafile中，被写的buffer数量由参数F
FAST_START_MTTR_TARGET决定。
.检查点后台进程CKPT更新素有数据文件和控制文件的文件头信息标志检查点完成。
(3)checkpoit的时间
什么时候会发生checkpoint呢？
.日志切换(log switch)
.数据库以normal,transactional,immediate方式关闭
.由参数FAST_START_MTTR_TARGET的设定引发
.DBA手工检查点
.ALTER TABLESPACE [OFFLINE NORMAL&#124;READ ONLY&#124;BEGIN BACKUP]
当LOG_CHECKPOINTS_TO_ALERT初时候参数被设置为TRUE(默认为FLASE)，检查点相关信息会被记录到later_SID.log中。</p>
<p>3.强制日志切换(log switch)和检查点(checkpoint)
日志切换和检查点是有数据库自动完成的，但DBA可以用下面的方法强制数据库进行日志切换和检查点。</p>
<p>用ALTER SYSTEM SWITCH LOGFILE强制日志切换</p>
<p>强制检查点可以用下面两种方法：
(1)ALTER SYSTEM CHECKPOINT
(2)设置FAST_START_MTTR_TARGET
参数FAST_START_MTTR_TARGET从9i开始引入，这个参数是FAST_START_IO_TARGET和LOG_CHECKPOINT_TIMEOUT
的替代参数。如果设置了FAST_START_MTTR_TARGET参数，那么FAST_START_IO_TARGET和LOG_CHECKPOINT_TIMEOUT
就不需要使用了。例如参数FAST_START_MTTR_TARGET=600，则指示数据库实例恢复不能超过600s,ORACLE数据库
会自动调整其他参数来达到这个标准。当然这个调整就涉及到检查点发生频率的调整，为了使得数据库在规定时间
内完成实例恢复，这里的检查点发生就不能太长，因为当进行实例恢复时，数据库是以检查点为单位向前查找恢复的。
如果检查点时间太长那么要恢复的数据就会比较多。</p>
<p>4.添加重组日志组及成员
添加日志组语法：</p>

?View Code SQLALTER DATABASE &#91;database&#93;
ADD LOGFILE &#91;GROUP integer&#93; filespec
&#91;, &#91;GROUP integer&#93; filespec&#93;...&#93;

<p>如：</p>

?View Code SQLALTER DATABASE ADD LOGFILE GROUP 4
&#40;'D:\ORACLE\PRODUCT\10.2.0\ORADATA\10GDB\REDO04.LOG'&#41;
SIZE 10M;
&#160;
select group#,sequence#,members,status,bytes/1024/1024  from v$log;
&#160;
    [...]]]></description>
		<wfw:commentRss>http://www.onlyring.net/2008/04/16/oracle-rdbms/zhongzuorizhiguanlisg9ir2-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

