环境同上一篇 模拟处于active状态的redo log损坏 sesion 1 SYS@ orcl >/ GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ---…
1.归档模式有备份,丢失数据文件的恢复归档模式有备份,不管丢失什么数据文件,直接在RMAN下RESTOER--->RECOVER--->OPEN即可. RMAN> STARUP MOUNT; RMAN; --恢复丢失的数据文件,序号为5: RMAN; --应用归档文件,联机重做日志文件执行数据库修复,将数据文件恢复到最近时间点(就是应用备份后到数据文件 丢失前的那些更改,以保持数据库的一致性状态) RMAN> ALTER DATABASE OPEN; 2.归档模式无备份,丢失数据文…
在非归档模式下缺失Redo Log后的恢复 将之前的归档模式修改为非归档 SQL> shutdown immediate; SQL> startup mount SQL> alter database noarchivelog; SQL> alter database open; SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destin…
07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], [0], [9710724], [0], [9711142], [], [], [], [], [], [], [] --环境: SQL*Plus: Release 11.2.0.4.0 Production CentOS release 6.5 (Final) 单实例/归档模式 1 Inacti…
第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢失据的风险,强烈建议在条件允许的情况下,对Redo日志进行多路镜像.需要注意的是,RMAN不能备份联机Redo日志文件.所以,联机Redo日志一旦出现故障,则只能进行清除日志了.清除日志文件即表明可以重用该文件. 1.1.1  数据库归档/非归档模式下inactive redo异常ORA-00316…
Oracle 的Redo 机制DB的一个重要机制,理解这个机制对DBA来说也是非常重要,之前的Blog里也林林散散的写了一些,前些日子看老白日记里也有说明,所以结合老白日记里的内容,对oracle 的整个Redo log 机制重新整理一下. 一.Redo log 说明 Oracle 的Online redo log 是为确保已经提交的事务不会丢失而建立的一个机制. 因为这种健全的机制,才能让我们在数据库crash时,恢复数据,保证数据不丢失. 1.1 恢复分类 恢复分两种: (1)    Cra…
数据库运行 Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤: 启动实例–>加载数据库–>打开数据库 因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库. 1.Oracle启动需要经历四个状态:SHUTDOWN .NOMOUNT .MOUNT .OPEN 2.Oracle关闭的四种方式:Normal, Immediate, Transactional, Abort 3.启动和关闭过程详解 Oracle数据库…
全文建立在MySQL的存储引擎为InnoDB的基础上 先看一条SQL如何入库的: 这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQL Server层和InnoDB存储引擎. Server层就像一个产品经理,分析客户的需求,并给出实现需求的方案. InnoDB就像一个基层程序员,实现产品经理给出的具体方案. 在MySQL"分析需求,实现方案"的过程中,还夹杂着内存操作和磁盘操作,以及记录各种日志. 他们到底有什么用处?他们之间到底怎么配合的?MySQL…
作者:小林coding 计算机八股文网站:https://xiaolincoding.com/ 大家好,我是小林. 从这篇「执行一条 SQL 查询语句,期间发生了什么?」中,我们知道了一条查询语句经历的过程,这属于「读」一条记录的过程,如下图: 查询语句执行流程 那么,执行一条 update 语句,期间发生了什么?,比如这一条 update 语句: UPDATE t_user SET name = 'xiaolin' WHERE id = 1; 查询语句的那一套流程,更新语句也是同样会走一遍:…
系统环境:rhel6.2_x64+Oracle RAC11g 操作过程: 1.非归档模式 SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination /u01/oracle/app/oracle/11.2.0/db/dbs/arch Oldest online log sequence 303086 Current log sequence 303…
    在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件.     MySQL中的日志文件,有这么两类常常讨论到:undo日志与redo日志. 1 undo 1.1 undo是啥 undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name='B' 修改为Name = 'B2' ,那么undo日志就会用来存放Name='B'的记录,如果这个修改出现异常,可…
阅读目录(Content) 1 undo 1.1 undo是啥 1.2 undo参数 1.3 undo空间管理 2 redo 2.1 redo是啥 2.2 redo 参数 2.3 redo 空间管理 3 undo及redo如何记录事务 3.1 Undo + Redo事务的简化过程 3.2  IO影响 3.3 恢复     在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件.     MySQ…
1.查看是否为归档模式 SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online 2.关闭数据库 SQLl>shutdown immediate; Database closed. Database dismounted. ORACLE instance shut…
Oracle数据库可以运行在2种模式下: 归档模式(archivelog) 归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应该和相应的备份策略相结合,只有归档模式没有相应的备份策略只会带来麻烦. 非归档模式(noarchivelog) 如何启用和关闭数据库的归档模式. 1.shutdown normal或shutdown immediate关闭数据库 2.startup mount启动数据库到mount状态 3.启用或停止归档模式 启用归档模式:alter…
上一篇文章中,我们了解了一条查询语句的执行过程,按理说这篇应该讲一条更新语句的执行过程,但这个过程比较复杂,涉及到了好几个日志与事物,所以先梳理一下3个重要的日志,bin log(归档日志).redo log(重做日志).undo log(回滚日志) 概括 MySQL中有六种日志文件,分别是:重做日志(redo log).回滚日志(undo log).二进制日志(bin log).错误日志(error log).慢查询日志(slow query log).一般查询日志(general log),…
文章内容学习:极客时间-林晓彬老师-MySQL实战45讲 整理而得 我们知道MySQL数据库在发生意外宕机的情况下,可以将数据恢复到历史的某个时间点,能实现这个功能依靠的是日志,MySQL提供两种类型的日志,也是两个模块中的日志,分别是存储引擎中的日志(redo log(重做日志))和Server层的日志(binlog(归档日志)) redo log MySQL在执行一条更新语句的时候,需要更新内存中的数据,然后在更新磁盘中的数据,这里运用到了WAL技术,全称是Write-Ahead Loggi…
@ 目录 redo log(物理日志\重做日志) binlog(逻辑日志/归档日志) update语句执行流程 Uodolog(回滚日志/重做日志) undo log+redo log保证持久性 redo log(物理日志\重做日志) redo log是InnoDB存储引擎层的日志,又称重做日志文件,是物理日志.redo log记录数据修改后新数据的备份.冗杂的undo log.未提交的事务和回滚的事务,数据缓存到内存中,只是在事务提交前将redo log持久化到磁盘 redo log 可以保证…
一旦rhel5.8造成只读文件系统ORA-00354: corrupt redo log block header Wed Jun 03 03:31:24 CST 2015 Thread 1 advanced to log sequence 396 (LGWR switch) Current log# 3 seq# 396 mem# 0: /u01/app/oracle/oradata/orcl/redo03.log Wed Jun 03 19:05:48 CST 2015 Thread 1 a…
1.更改归档路径 在ORACLE10G中,默认的归档路径为$ORACLE_BASE/flash_recovery_area.对于这个路径,ORACLE有一个限制,就是默认只能有2G的空间给归档日志使用,可以使用下面两个SQL语句去查看它的限制1. select * from v$recovery_file_dest; sql >show parameter db_recovery_file_dest(这个更友好直观一些)当归档日志数量大于2G时,那么就会由于没有更多的空间去容纳更多的归档日志会报…
Oracle归档模式非常非常重要!对于有些数据库刚装好后可能是非归档模式,这是很危险的!为了安全起见,一定要谨记:对于Oracle数据库,一定要设置为归档模式,尤其是生产库,只有这样才能实现数据库的有效完全恢复!下面介绍下将Oracle数据库设置为归档模式的操作方法: 1)以sysdba身份连接数据库 [root@kevin ~]# su - oracle 以DBA的身份登录数据库(oracle用户下执行) [oracle@kevin ~]$ sqlplus "/as sysdba"…
在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件.     MySQL中的日志文件,有这么两类常常讨论到:undo日志与redo日志. 1 undo 1.1 undo是什么 undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name='B' 修改为Name = 'B2' ,那么undo日志就会用来存放Name='B'的记录,如果这个修改出现异常,可以使用…
数据事务 即支持ACID四大特性. A:atomicity          原子性——事务中所有操作要么全部执行成功,要么全部执行失败,回滚到初始状态 C:consistency     一致性——数据库总是从一个一致性状态变化到另一个一致性状态 I:isolation            隔离性——一个事务所做的操作在事务提交前是否被另外一个事务可见,mysql可配置,用以适用不同场景 D:durability         持久性——事务一旦提交,所做操作永久保存(不是仅仅在内存中修改…
日志系统主要有redo log(重做日志)和binlog(归档日志).redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同). 图来自极客时间的mysql实践,该图是描述的是MySQL的逻辑架构. redo log日志模块 redo log是InnoDB存储引擎层的日志,又称重做日志文件,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来.在实例…
写在前面:作者水平有限,欢迎不吝赐教,一切以最新源码为准. InnoDB redo log 首先介绍下Innodb redo log是什么,为什么需要记录redo log,以及redo log的作用都有哪些.这些作为常识,只是为了本文完整.   InnoDB有buffer pool(简称bp).bp是数据库页面的缓存,对InnoDB的任何修改操作都会首先在bp的page上进行,然后这样的页面将被标记为dirty并被放到专门的flush list上,后续将由master thread或专门的刷脏线…
数据库通常借助日志来实现事务,常见的有undo log.redo log,undo/redo log都能保证事务特性,undolog实现事务原子性,redolog实现事务的持久性. 为了最大程度避免数据写入时io瓶颈带来的性能问题,MySQL采用了这样一种缓存机制:当query修改数据库内数据时,InnoDB先将该数据从磁盘读取到内存中,修改内存中的数据拷贝,并将该修改行为持久化到磁盘上的事务日志(先写redo log buffer,再定期批量写入),而不是每次都直接将修改过的数据记录到硬盘内,…
(转自:http://www.cnblogs.com/spatial/archive/2009/08/01/1536429.html) Oracle的日志归档模式可以有效的防止instance和disk的故障,在数据库故障恢复中不可或缺,由于oracle初始安装模式为非归档模式,因此需要将其设置为归档模式,下面就其方法和步骤做一些总结,虽然简单,但这是管理oracle数据库必备之工,故有如下陈述. 例子是建立在windowsXP和oracle11g的环境下,如有环境不同,仅供参考. Oracle…
原作地址:http://www.cnblogs.com/liuhao/p/3714012.html 写在前面:作者水平有限,欢迎不吝赐教,一切以最新源码为准. InnoDB redo log 首先介绍下Innodb redo log是什么,为什么需要记录redo log,以及redo log的作用都有哪些.这些作为常识,只是为了本文完整.   InnoDB有buffer pool(简称bp).bp是数据库页面的缓存,对InnoDB的任何修改操作都会首先在bp的page上进行,然后这样的页面将被标…
本篇文章主要介绍 Redo Log 和 Undo Log: 利用 Redo Log 和 Undo Log 实现本地事务的原子性.持久性 Redo Log 的写回策略 Redo Log Buffer 的刷盘时机 日志:Redo Log 和 Undo Log · 语雀 (yuque.com) 通过写入日志来保证原子性.持久性是业界的主流做法. 介绍 Redo Log 和 Undo Log Redo Log 是什么:Redo Log 被称为重做日志. Undo Log 是什么:Undo Log 被称为…
一丶什么是redo innodb是以也为单位来管理存储空间的,增删改查的本质都是在访问页面,在innodb真正访问页面之前,需要将其加载到内存中的buffer pool中之后才可以访问,但是在聊事务的时候,事务具备持久性,如果只在内存中修改了页面,而在事务提交后发生了系统崩溃,导致内存数据丢失,就会发生提交事务所作的更改还没来得及持久化到磁盘. 那么如何保证到提交的事务,所作更改一定持久化到磁盘了昵? 最简单粗暴的固然是,每次事务提交都将其所作更改持久化到磁盘.这种操作又存在如下问题: 刷新一个…
昨天在复习 MySQL 日志相关的知识,学的东西过一段时间后就会遗忘,遗忘后再重新思考,往往会有新的收获.想到几个问题,把它记录下来. 为什么 redo log 具有 crash-safe 的能力,而 binlog 没有? redo log 是什么? 一个固定大小,"循环写"的日志文件,记录的是物理日志--"在某个数据页上做了某个修改". binlog 是什么? 一个无限大小,"追加写"的日志文件,记录的是逻辑日志--"给 ID=2 这…