1 :官方教程
2 :dba-oracle讲解
3 :WIKI redo log
4 :操作联机重做日志文件和组
几乎所有的发生在oracl e的内部变化都记录在on line redo log file中,oracle使用这些redo log groups去恢复数据库,因此它们是非常的重要。
联机重做日志文件的主要工作是:
备份数据,
1:记录所有的数据改变
2:提供了一种恢复机制
3:一定是被组织成组的
4:至少有两组联机重做日志文件
每一个redo log 是被分配到组中, oralce一次值写一个onlineredo log 组,一旦这个组中的联机重做日志被填满,oracle将转换写到下一个联机重做日志组中因此o racle在多个组之间写是一个循环操作。
每一个联机重做日志文件被分配一个唯一的序列号(sequenc e number)。除非重建数据库,否则联机重做日志文件的序列号不会出现重复。
我们可以有多个联机重组偶日志文件在一个组中,这意味着每一个联机重做日志组包含至少两个联机重做日志文件,在组中的每一个文件成为一个mem ber,每一个 member应该被分配在不同的磁盘,为了包含这些组文件丢失,oracle往组里面的me mber中并发的写信息,一个组的联机重做日志文件是一模一样的,通过LGWR进程向所有 onlineredo log file 组中写信息。
组中的每一个m ember具有相同的大小,oracle数据在往 redo log file 组中写信息的时候首先分配一个 log sequenc e numbers,多路复用:一个组里至少两个 member,避免了redo log files 的单点故障,redo log files中一个组中包含多个 member,每个组都有一个编号。
当数据库创建的时候联机重做日志文件即被创建,数据库不能缺少联机重做日志文件,如果一个组中的所有的membe r 丢失了,数据库也就损坏了,因此保存和备份这些文件是非常重要的,有两种重做日志,第一种:联机重做日志第二种:归档日志。
什么时候LGW R写 redo log file?
1:当一个事务co mmit的时候
2:每三秒钟写
3:当 redo log buffer变成 1/3满的时候要写
4:当 redo log buffer的大小操作 1M 的信息要执行写操作
5:在DBWn 一个check points执行前写。
DBWn 这个进程的作用查(把redo log files的信息回写到 datafil es中)
一定是先写重做日志,再写到数据文件中。
联机重做日子文件如何工作:
循环使用,理解 log switch的定义。(就是切换不同的组进行写),log switch引发了checkpo ints 把内存中脏数据回写到数据库文件中叫一个checkp oints
强迫日志切换(LOG Switche s)和 checkpo intsV$log;这个视图是与联机重做日志文件的视图。
1 :通过v$logfile查数据库的 redo log file 和组;
SQL> col memberformata50;
SQL> selectgroup#,type,memberfrom v$logfile;
GROUP# TYPE MEMBER
---------- ------- --------------------------------------------------
3 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO03.LOG
2 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO02.LOG
1 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO01.LOG
2 :手动切换日志的命令
例如:如下例子第一次查询组号为 2 的组的stat us 是 current,如下执行了 alter systemswitchlogfile命令后再次进行查询oracle当前写的组号3,表示进行了 log switch日志组切换操作,这是通过手工的方式进行切换。
SQL> selectgroup#,thread#,sequenc e#,statusfrom v$log;
GROUP# THREAD# SEQUENC E# STATUS
---------- ---------- ---------- ----------------
1 1 44
2 INACTIV E
2 1 44
3 CURRENT
3 1 441 INACTIV E
SQL> alter systemswitch logfile;
系统已更改。
SQL> selectgroup#,thread#,sequenc e#,statusfrom v$log;
GROUP# THREAD# SEQUENC E# STATUS
-
--------- ---------- ---------- ----------------
1 1 44
2 INACTIV E
2 1 44
3 ACTIVE
3 1 44
4 CURRENT
3 :控制check points的行为(联机重做日志文件的数据信息定时写到数据文件中)
到refere nce 这个参数:fast_st art_mt tr_tar get 指定快速恢复的最大值,最大时间数,规定DBWn进程在多长时间内必须把re do log file中信息写到数据文件中,这个参数影响性能的一个重要值,因为它能触动I/O写
SQL> show paramet er fast_st art_mt tr_tar get;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------ fast_st art_mt tr_tar get integer 0
意味着规定DBWn进程在多长时间内必须把re do log file中信息写到数据文件中,如果需要修改这个时间用:
SQL> alter systemset fast_st art_mt tr_tar get = 60 scope = both;
系统已更改。
SQL> show paramet er fast_st art_mt tr_tar get;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------ fast_st art_mt tr_tar get integer 60
经过以上 alter systemset fast_st art_mt tr_tar get =100 scope = both; 表明已经修改,定DBWn进程在60秒内必须把redo log file中信息写到数据文件
4 :手工回写联机重做日志信息到数据文件中
需要手工执行如下命令:
SQL> alter systemcheckpo int;
系统已更改。
SQL>
关于对组和member的操作参见click me
5 :增加 online redo log 的组可以使用如下命令
如下操作增加了的 redo log 组组号为4
SQL> selectgroup#,type,memberfrom v$logfile;
GROUP# TYPE MEMBER
---------- ------- --------------------------------------------------
3 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO03.LOG
2 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO02.LOG
1 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO01.LOG
SQL>alter databas e add logfile group 4 ('D:\APP\TOPWQP\ORADATA\ORCL\REDO04.LO G') size 52429312;
数据库已更改。
SQL> selectgroup#,type,memberfrom v$logfile;
GROUP# TYPE MEMBER
---------- ------- --------------------------------------------------
3 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO03.LOG
2 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO02.LOG
1 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO01.LOG
4 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO04.LOG
6 :给某个redo log 组增加 member命令
SQL> ALTER DATABAS E ADD LOGFILE MEMBER'D:\APP\TOPWQP\ORADATA\ORCL\REDO05.LOG' T O GROUP 4;
数据库已更改。
SQL> selectgroup#,type,memberfrom v$logfile;
GROUP# TYPE MEMBER
---------- ------- --------------------------------------------------
3 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO03.LOG
2 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO02.LOG
1 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO01.LOG
4 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO04.LOG
oracle 时间转换
4 ONLINE D:\APP\TOPWQP\ORADATA\ORCL\REDO05.LOG
如上所示:组号为 4 的 redo log 文件有两个 member分别为:
这是两个组号为 4 的两个memb er 这两个的 log 文件的大小和内容完全一样。可以把两个 member放在不同的磁盘上 disk 上。
D:\APP\TOPWQP\ORADATA\ORCL\REDO04.LOG
D:\APP\TOPWQP\ORADATA\ORCL\REDO05.LOG
如图:下图显示了 group 和 member的概念以及显示了在不同的磁盘 disk上。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论