精华内容
下载资源
问答
  • redo log

    2016-11-02 16:13:00
    1.redo log相关数据字典 v$log:display the redo log file information from the control file v$logfile:identifies redo log group# and members and memeber status v$log_history:contains log history ...

    1.redo log相关数据字典

    v$log:display the redo log file information from the control file

    v$logfile:identifies redo log group# and members and memeber status

    v$log_history:contains log history information

    2.v$log

    Column        Datatype        Description
    GROUP# NUMBER Log group number
    THREAD# NUMBER Log thread number
    SEQUENCE# NUMBER Log sequence number
    BYTES NUMBER Size of the log (in bytes)
    MEMBERS NUMBER Number of members in the log group
    ARCHIVED VARCHAR2(3) Archive status (YES) or (NO)
    STATUS VARCHAR2(16) Log status:
    • UNUSED - Online redo log has never been written to. This is the state of a redo log that was just added, or just after a RESETLOGS, when it is not the current redo log.

    • CURRENT - Current redo log. This implies that the redo log is active. The redo log could be open or closed.

    • ACTIVE - Log is active but is not the current log. It is needed for crash recovery. It may be in use for block recovery. It may or may not be archived.

    • CLEARING - Log is being re-created as an empty log after an ALTER DATABASE CLEAR LOGFILE statement. After the log is cleared, the status changes to UNUSED.

    • CLEARING_CURRENT - Current log is being cleared of a closed thread. The log can stay in this status if there is some failure in the switch such as an I/O error writing the new log header.

    • INACTIVE - Log is no longer needed for instance recovery. It may be in use for media recovery. It may or may not be archived.

    FIRST_CHANGE# NUMBER Lowest system change number (SCN) in the log
    FIRST_TIME DATE Time of the first SCN in the log

    3.V$LOGFILE 

     

    ColumnDatatypeDescription
    GROUP# NUMBER Redo log group identifier number
    STATUS VARCHAR2(7) Status of the log member:
    • INVALID - File is inaccessible

    • STALE - File's contents are incomplete

    • DELETED - File is no longer used

    • null - File is in use

    TYPE VARCHAR2(7) Type of the logfile:
    • ONLINE

    • STANDBY

    MEMBER VARCHAR2(513) Redo log member name
    IS_RECOVERY_DEST_FILE VARCHAR2(3) Indicates whether the file was created in the flash recovery area (YES) or not (NO)

     

     

    转载于:https://www.cnblogs.com/dayulsh/p/6023310.html

    展开全文
  • redolog

    2018-01-19 20:58:00
    redolog记录的是,硬盘上的页,和内存中的页之间不一致的地方。再细一点说,硬盘上的数据,是之前的结果。而内存中的数据,是现在的结果。 redolog 硬盘,内存,是三角关系,两者确定第三者,所以要二次写,所以...

    redolog记录的是,硬盘上的页,和内存中的页之间不一致的地方。再细一点说,硬盘上的数据,是之前的结果。而内存中的数据,是现在的结果。

    redolog 硬盘,内存,是三角关系,两者确定第三者,所以要二次写,所以事务提交之前要刷新redolog到硬盘,不然发生故障,事务提交了,内存和硬盘之前的数据再次发生新的不一致了,而redolog却没记录这种不一致,那么事务就没有了持久性。

    所以redolog不能用来回滚,因为redolog记录的只是把某个数据修改为什么样子了,没有记录之前的数据

     

    转载于:https://www.cnblogs.com/chuliang/p/8318799.html

    展开全文
  • Redo Log

    2012-01-10 16:12:17
    redo log的concept手册上的内容 Redo entries record data that you can use to reconstruct all changes madeto the database, including the rollback ... Therefore, the online redolog also protects rollbac

    redo log的concept手册上的内容

    Redo entries record data that you can use to reconstruct all changes madeto the database, including the rollback segments. Therefore, the online redolog also protects rollback data. When you recover the database using redo data,Oracle reads the change vectors in the redo records and applies the changes tothe relevant blocks.

     Redo records can also be written to an online redo log file before thecorresponding transaction is committed. If the redo log buffer fills, oranother transaction commits, LGWR flushes all of the redo log entries in theredo log buffer to an online redo log file, even though some redo records maynot be committed. If necessary, Oracle can roll back these changes.

    Online redo log files that are required for instance recovery are called active online redo log files.Online redo log files that are not required for instance recovery are calledinactive.

    当数据库处于归档状态下的时候,当在线重做日志满的时候,要等到ARCn将日志归档之后才可以被重新使用或者覆盖的写;

    当数据非归档模式的时候,当最后一个重做日志文件满的时候,会去写第一个active的文件。

    Log switch是oracle写完一个在线重做日志文件之后去写另一个的时候的点。通常情况下日志切换时发生在当前的在线重做日志文件被写满的完成的时候而去继续写另一个现在重做日志文件的时候。然后你也可以指定日志切换,不论当前日志是否写满,你可以强制手动的的进行日志切换。

    在每一次日志切换发生并且LGWR开始写它的时候,oracle都会发配给在线重做日志文件一个logsequence number。

    每一个在线重做日志文件和归档日志文件都由它的日志序列号标示着。当需要恢复的时候,oracle会以logsequence number升序的方式应用日志文件。

    创建在线重做日志文件组

    The following statement adds a new group of redo logs to the database:
    
    ALTER DATABASE
      ADD LOGFILE ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo') SIZE 500K;
    
    You can also specify the number that identifies the group using the GROUP option:
    
    ALTER DATABASE 
    ADD LOGFILE GROUP 10 ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo')
    SIZE 500K;
    

    创建在线日志成员

    添加一个新的重做日志文件成员到重做日志文件组2

    ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;

    注意文件的名字是必须指定的,但是大小不需要,初始的大小由组内已经存在的成员的大小决定。

     

    重命名在线重做日志成员的步骤

    1.    关闭数据库

    2.    拷贝

    3.    Startup mount

    4.    重新命名在线日志成员

    ALTER DATABASE
    
    RENAME FILE'/diska/logs/log1a.rdo', '/diska/logs/log2a.rdo'
    
     TO'/diskc/logs/log1c.rdo', '/diskc/logs/log2c.rdo';
     5.   打开数据库

     删除log group

    在删除日志组之前,有以下3点需要注意:

    一个实例至少需要2个在线重做日志文件组,无论每个组里有多少成员;

    只有在重做日志文件组是inactive的情况下才可以删除,如果你需要删除当前组,那么你需要强制进行日志切换;

    如果是归档模式的话,确保在你删除之前已经进行了归档,可以查看v$log来查看是否发生了。

    The following statement drops redo log group number 3:

    ALTER DATABASE DROP LOGFILE GROUP 3;
    如果你没有使用oracle管理文件的特性,那么你需要在确保一切正确的情况下手动删除物理文件;如果使用的是oracle管理文件的特性的话,那么oracle会自动删除文件。

     

    删除日志组成员和删除日志组一样要注意离线归档等;

    The following statement drops the redo log /oracle/dbs/log3c.rdo:

    ALTERDATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';

    Clearing an Online Redo Log File

     

    The following statement clears the log files in redo log groupnumber 3:

     

    ALTER DATABASE CLEAR LOGFILE GROUP 3;

     

    This statement overcomes two situations where dropping redo logsis not possible:

         * If there are onlytwo log groups

        * The corrupt redo logfile belongs to the current group

     

    If the corrupt redo log file has not been archived, use theUNARCHIVED keyword in the statement.

     ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;

     This statement clears the corrupted redo logs and avoidsarchiving them. The cleared redo logs are available for use even though theywere not archived.

     If you clear a log file that is needed for recovery of a backup,then you can no longer recover from that backup. Oracle writes a message in thealert log describing the backups from which you cannot recover.



    展开全文
  • Oracle DG下修改redo log和standby redo log日志大小.txt
  • Redo log

    千次阅读 2019-05-10 10:07:03
    文章目录1 作用2 特征3 redo file group4 查看日志信息的三个视图4.1 v$log4.2 v$logfile4.3 v$archived_log(归档模式下查看)5 工作原理6 添加日志组7 添加成员文件8 修改现有的日志文件大小9 日志成员文件的迁移...

    1 作用

    重做日志文件用来记录数据库所有发生过的更改信息(修改、添加、删除等)以及由Oracle内部行为(创建数据表、索引等)而引起的数据库变化信息,在数据库恢复时,可以从该日志文件中读取原始记录。在数据库运行期间,当用户执行commit命令时,数据库首先将每笔操作的原始记录写入日志文件中,写入日志文件后,才把新的记录传递给应用程序,所以,在日志文件上可以随时读取原始记录以恢复某些数据。
    实例恢复 instance recovery

    2 特征

    1)日志条目+记录数据库中块的变化(DML、DDL):由LGWR写入
    2)用于数据块的 recover
    3)以组的方式管理 redo file,最少两组 redo,循环使用
    4)和数据文件存放到不同的磁盘上,需读写速度快的磁盘(比如采用 RAID10)
    5)日志的 block 和数据文件的 block 不一样

    3 redo file group

    在这里插入图片描述
    三组循环使用,每组就一个文件。如果有文件坏了,风险会变大,所以会增加第二个member。一个组里的所有文件的内容是同步的。所以部署在不同的磁盘上。
    在生产环境中,安全规划是最好一个日志组两个日志成员(在不同路径);根据生产压力来决定组数和日志大小;一般50M比较小,可以根据生产压力适当调大。

    4 查看日志信息的三个视图

    4.1 v$log

    查看组信息

    SQL> select group#,sequence#,bytes/1024/1024 size_M,blocksize,members,status from v$log;
    
        GROUP#  SEQUENCE#	  SIZE_M  BLOCKSIZE    MEMBERS STATUS
    ---------- ---------- ---------- ---------- ---------- ----------------
    	 1	   10	      50	512	     1 INACTIVE
    	 2	   11	      50	512	     1 INACTIVE
    	 3	   12	      50	512	     1 CURRENT
    
    • 每一组现在只有一个成员member,也就是说一组只有一个redo log
    • 最大的序列号12就是当前正在被使用的组group 3,如果现在用到group 1了,那么group 1的号会变为13
    • 默认大小是50 M,数据块字节是512

    4.2 v$logfile

    查看文件信息

    SQL> select * from v$logfile;
    
        GROUP# STATUS  TYPE    MEMBER					      IS_
    ---------- ------- ------- -------------------------------------------------- ---
    	 1	   ONLINE  /oracledata/oradata/nsfcdc/redo01.log	      NO
    	 3	   ONLINE  /oracledata/oradata/nsfcdc/redo03.log	      NO
    	 2	   ONLINE  /oracledata/oradata/nsfcdc/redo02.log	      NO
    

    4.3 v$archived_log(归档模式下查看)

    THREAD#: 线程在单实例的环境下,thread# 永远是 1
    SEQUENCE# 日志序列号。在日志切换时会递增,每一个节点有一个自己的编号
    FIRST_CHANGE# 在每个日志组对应一个 sequence 号,其中FIRST_CHANGE# 是首条日志条目的第一个的 scn。

    5 工作原理

    STATUS 列有四种状态:
    1.current: 当前日志组对应的脏块还没有全部从 data buffer 写入到 data file,含有实例恢复需要的信息,不能被覆盖
    2. active: 日志组对应的脏块还没有完全从 data buffer 写入到 data file,含有实例恢复需要 的信息,不能被覆盖
    3.inactive: 日志组对应的脏块已经从 data buffer 写入到 data file,可以覆盖(如果循环回来是active,那么数据库要等到inactive才能用)
    4. unused:新添加的日志组,还没有使用
    只要redo log的状态不是current和active就都会被用

    如果redo特别忙,切换的过程一直是active,就会一直没有可用的,要一直等
    切换日志组:
    alter system switch logfile;

    6 添加日志组

    1.查看当前信息
    在这里插入图片描述
    2.添加日志组
    在这里插入图片描述
    3.查看状态
    在这里插入图片描述4.切换日志组
    在这里插入图片描述
    *4个组并不是按顺序循环的

    7 添加成员文件

    1.为每个组增加一个 member(一共是 3个组) 先建好目录,准备放在/opt/oracle/log_member/下(假设这个目录是一块新的磁盘)

    [oracle@nsfcdc ~]$ mkdir log_member
    [oracle@nsfcdc log_member]$ pwd
    /opt/oracle/log_member
    

    2.为group 1 添加成员文件

    SQL>alter database add logfile member '/opt/oracle/log_member/redo01.log' to group 1;
    

    3.为所有group添加1个成员

    SQL> select group#,sequence#,bytes/1024/1024 size_M,blocksize,members,status from v$log;
    
        GROUP# SEQUENCE#	 SIZE_M  BLOCKSIZE    MEMBERS STATUS
    ---------- --------- ---------- ---------- ---------- ----------------
    	 1	  10	     50        512	    2 INACTIVE
    	 2	  11	     50        512	    2 INACTIVE
    	 3	  12	     50        512	    2 CURRENT
    
    SQL> select * from v$logfile;
    
        GROUP# STATUS  TYPE    MEMBER					      IS_
    ---------- ------- ------- -------------------------------------------------- ---
    	 1	   ONLINE  /oracledata/oradata/nsfcdc/redo01.log	      NO
    	 3	   ONLINE  /oracledata/oradata/nsfcdc/redo03.log	      NO
    	 2	   ONLINE  /oracledata/oradata/nsfcdc/redo02.log	      NO
    	 1 INVALID ONLINE  /opt/oracle/log_member/redo01.log		      NO
    	 2 INVALID ONLINE  /opt/oracle/log_member/redo02.log		      NO
    	 3 INVALID ONLINE  /opt/oracle/log_member/redo03.log		      NO
    
    6 rows selected.
    

    STATUS 是 INVALID,说明 member 还没有同步好。
    4.切换日志组,完成同步,消除invalid

    SQL> alter system switch logfile;
    
    System altered.
    
    # 切换三次
    
    SQL> select group#,status,sequence# from v$log;
    
        GROUP# STATUS	    SEQUENCE#
    ---------- ---------------- ---------
    	 1 INACTIVE		   13
    	 2 INACTIVE		   14
    	 3 CURRENT		   15
    SQL> select * from v$logfile;
    
        GROUP# STATUS  TYPE    MEMBER					      IS_
    ---------- ------- ------- -------------------------------------------------- ---
    	 1	   ONLINE  /oracledata/oradata/nsfcdc/redo01.log	      NO
    	 3	   ONLINE  /oracledata/oradata/nsfcdc/redo03.log	      NO
    	 2	   ONLINE  /oracledata/oradata/nsfcdc/redo02.log	      NO
    	 1	   ONLINE  /opt/oracle/log_member/redo01.log		      NO
    	 2	   ONLINE  /opt/oracle/log_member/redo02.log		      NO
    	 3	   ONLINE  /opt/oracle/log_member/redo03.log		      NO
    
    6 rows selected.
    

    8 修改现有的日志文件大小

    先删再建
    1.删除日志组

    • 先查看各组状态
    SQL> select group#,sequence#,bytes/1024/1024 size_M,blocksize,members,status from v$log;
    
        GROUP#  SEQUENCE#	  SIZE_M  BLOCKSIZE    MEMBERS STATUS
    ---------- ---------- ---------- ---------- ---------- ----------------
    	 1	   16	     100	512	     1 INACTIVE
    	 2	   17	      50	512	     2 CURRENT
    	 3	   15	      50	512	     2 INACTIVE
    

    current和active状态下的group不能删

    • 删除group 3
    SQL> alter database drop logfile group 3;
    
    Database altered.
    

    2.添加组及成员

    • 添加成员及成员文件
    SQL> alter database add logfile member '/opt/oracle/log_member/redo03.log' to group 3;
    alter database add logfile member '/opt/oracle/log_member/redo03.log' to group 3
    *
    ERROR at line 1:
    ORA-00301: error in adding log file '/opt/oracle/log_member/redo03.log' - file cannot be created
    ORA-27038: created file already exists
    Additional information: 1
    

    drop logfile group的时候不会删掉磁盘上的文件,删除物理文件需要rm。而且删除日志组的时候,控制文件也被更新。

    • 手动删除物理文件
    SQL> ! rm /oracledata/oradata/nsfcdc/redo03.log
    
    SQL> ! rm /opt/oracle/log_member/redo03.log
    
    • 重新添加成员及成员文件
    SQL> alter database add logfile group 3 '/oracledata/oradata/nsfcdc/redo03.log' size 100M;
    
    Database altered.
    SQL> alter database add logfile member '/opt/oracle/log_member/redo03.log' to group 3;
    
    Database altered.
    
    SQL> select group#,sequence#,bytes/1024/1024 size_M,archived,members,status from v$log;
    
        GROUP#  SEQUENCE#	  SIZE_M ARC	MEMBERS STATUS
    ---------- ---------- ---------- --- ---------- ----------------
    	 1	   16	      50 YES	      2 INACTIVE
    	 2	   17	      50 NO	      2 CURRENT
    	 3	    0	     100 YES	      2 UNUSED
    
    • 为group 1一次添加两个成员文件
    SQL> alter database add logfile group 1 ('/oracledata/oradata/nsfcdc/redo01.log','/opt/oracle/log_member/redo01.log') size 100M;
    
    Database altered.
    
    SQL> select group#,sequence#,bytes/1024/1024 size_M,archived,members,status from v$log;
    
        GROUP#  SEQUENCE#	  SIZE_M ARC	MEMBERS STATUS
    ---------- ---------- ---------- --- ---------- ----------------
    	 1	   16	      100 YES	      2 INACTIVE
    	 2	   17	      50 NO	      2 CURRENT
    	 3	    0	     100 YES	      2 UNUSED
    
    • 把active变为inactive:手动发起检查点
    SQL> alter system checkpoint;
    
    System altered.
    
    SQL> select group#,status from v$log;
    
        GROUP# STATUS
    ---------- ----------------
    	 1 CURRENT
    	 2 INACTIVE
    	 3 INACTIVE
    
    • 为group 2扩展大小至100 M
    SQL>  select group#,sequence#,bytes/1024/1024 size_M,archived,members,status from v$log;
    
        GROUP#  SEQUENCE#	  SIZE_M ARC	MEMBERS STATUS
    ---------- ---------- ---------- --- ---------- ----------------
    	 1	   20	     100 NO	      2 CURRENT
    	 2	   19	     100 YES	      2 INACTIVE
    	 3	   18	     100 YES	      2 INACTIVE
    

    9 日志成员文件的迁移

    9.1 方法一:关库-移动

    1.关库

    SQL> shutdown immediate;
    

    2.重命名文件

    mv /oracledata/oradata/nsfcdc/redo02.log /opt/oracle/log_member/redo02_1.log
    

    3.将数据库启动到mount

    SQL> statup mount;
    SQL> select group#,member from v$logfile order by 1;
    

    4.通知控制文件

    SQL> alter database rename file '/oracledata/oradata/nsfcdc/redo02.log' to '/opt/oracle/log_member/redo02_1.log';
    

    5.打开数据库

    SQL> alter database open;
    

    9.2 方法二:先删后加

    1.查看组信息

    SQL> select group#,status from v$log;
    SQL> select group#,member from v$logfile;
    

    2.手动发起检查点,切换current组

    SQL> alter system checkpoint;
    SQL> select group#,status from v$log;
    

    3.删除非current组成员文件

    SQL> alter database drop logfile member '/oracledata/oradata/nsfcdc/redo02.log';
    

    4.添加组成员文件

    SQL> alter database add logfile member '/opt/oracle/log_member/redo02.log' to group 2;
    

    10 在线日志文件的恢复方法

    • 不小心干掉current日志组的报错信息:
      在这里插入图片描述
    • 解决办法:(不完全恢复)
    SQL> conn / as sysdba
    Connected to an idle instance.
     
    SQL> create pfile from spfile;
    File created.
     
    SQL> startup mount;
    ORACLE instance started.
    
    SQL> recover database until cancel;
    Media recovery complete.
     
    SQL> alter database open resetlogs;
    Database altered.
    
    展开全文
  • 43 直接强行把redo log写入磁盘?非也,揭秘redo log buffer.pdf
  • Oracle更改redo log大小 or 增加redo log组 (1)redo log的大小可以影响 DBWR 和 checkpoint ; (2)arger redo log files provide better performance. Undersized logfiles increase checkpoint activity and ...
  • (1)redo log的大小可以影响 DBWR 和 checkpoint ;(2)arger redo log files provide better performance. Undersized logfiles increase checkpoint activity and reduce performance.大的log file可以提供更好的...
  • 本文介绍了两种迁移redo log的方式:1.停止数据库实例迁移redo log;2.在线迁移redo log
  • 官方参考资料版本说明ubuntu 16.04 x64MySQL 5.7.25redo log原理redo log是innodb引擎特有的物理日志,用于前滚数据。redo log的实施流程如下:提交事务 -> 日志写入log buffer -> os buffer -> 写入磁盘的...
  • 42 redo log是直接一条一条写入文件的吗?非也,揭秘redo log block.pdf
  • 移动redo文件路径,默认的redo log文件的路径和archivelog的路径一样,在闪回区,因为闪回区有大小限制,所以redo log和archive log特别是archive log越来越多后,会撑爆闪回区。规范起见,需要将redo log以及...
  • redo log的大小是固定的,在mysql中可以通过修改配置参数innodb_log_files_in_group和innodb_log_file_size配置日志文件数量和每个日志文件大小,redo log采用循环写的方式记录,当写到结尾时,会回到开头循环写日志...
  • innodb事务日志包括redo log和undo logredo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作。undo log不是redo log的逆向过程,其实它们都算是用来恢复的日志:1.redo log通常是物理日志,记录的...
  • redo log buffer】【redo log file】-原理 目录: 1.重做日志写入过程图 2.相关知识点汇总图 3.redo_log_buffer 原理 4.redo_log_file 原理   1. 重做日志写入过程:       2. 相关知识点汇总: ...
  • Redo log包含所有的数据库变化历史,数据库的所有操作变化,均按照写入重做日志缓冲区先于数据块缓冲区、写入重做日志文件先于写入数据文件;当发生提交动作时,将重做日志缓冲区变化刷到重做日志文件。
  • binlog 写入机制我们知道 redo log 的写入机制是事务中有更新操作时就会将更新操作记录在 redo log buffer 中,在事务提交时,根据相关参数的设定,按照不同逻辑持久化到磁盘文件。由于多个事务共用一个 redo log ...
  • 数据库通常借助日志来实现事务,常见的有undo log、redo log,undo/redo log都能保证事务特性,undolog实现事务原子性,redolog实现事务的持久性。为了最大程度避免数据写入时io瓶颈带来的性能问题,MySQL采用了这样...
  • 偶然在网上看到介绍如何增大ORACLE REDO LOG的SIZE,于是很好奇在什么情况下需要增大这个值,问了问前辈。他让我看v$system_偶然在网上看到介绍如何增大Oracle REDO LOG的SIZE,于是很好奇在什么情况下需要增大这个...
  • 文章目录一、MySQL日志文件类型二、几种日志的对比2-1、用途 redo log undo log binlog2-2、存储内容、格式 redo log undo log binlog2-3、日志生成 redo log undo log binlog2-4、删除策略 redo log ...
  • 即:原子性(Atomic)一致性(Consistency)隔离性(Isolation)持久性(Duration)事务的隔离性由锁机制和MVCC实现,原子性(Atomic)由Undo Log实现,持久性由Redo Log实现,一致性由Undo LogRedo Log共同实现(即:数据库...
  • binlog redolog undolog

    2020-07-25 23:44:18
    redo log分为两部分:一个是内存中的日志缓冲(redo log buffer),该部分日志是容易丢失的。二是磁盘上的重做日志文件(redo log file),该部分是持久的。事务在提交时,必须先将该事物的所有事务日志写入到磁盘上的...
  • Dataguard 分类: Physical Standby(Redo Apply) Logical Standby(SQL Apply) ...Online redo log 存放着在线事务未归档的更改信息,主库肯定是要配置的。 1.如果是Physical Standby,对于备库无法open r..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,941
精华内容 3,976
关键字:

redolog