redo

--创建redosize的视图
create or replace view redo_size
as
select value
from v$mystat, v$statname
where v$mystat.statistic# = v$statname.statistic#
and v$statname.name = ‘redo size‘;
--如何估计重做的量
·估计“事务”的大小——需要修改多少数据。
·是否增加 10~20%的额外开销,取决于要修改的行数,行越多,额外开销越少。
·对 UPDATE,此值加倍。
--NOLOGGING 操作:
·会产生一定数量的重做,用来保护数据字典。根本没有办法避免这些重做的产生,虽然可以比
以前明显地少,但是仍然有一些。
·NOLOGGING 不能防止后面的操作产生重做。
--在 NOLOGGING 模式中可能执行的操作是:
·索引创建和 ALTER(重建)。
·经/*+APPEND*/提示,使用“直接路径插入”批量的 INSERT。
·LOB 操作(大对象更新不必记录到日志)。
·用 CREASE TABLE AS SELECT 创建表。
·各种 ALTER TABLE 操作,例如 MOVE 和 SPLIT。
·TRUNCATE(但不需要 NOLOGGING 语句,因为总是在 NOLOGGING 模式中执行)。
--临时表 应该把临时表作为 INSERT 和 SELECT 操作的首选对象
·INSERT 产生很少甚至没有回滚/重做。
·DELETE 对临时表和对正常表产生同样多的重做。
·UPDATE 对临时表产生的重做只有 UPDATE 对正常表产生的重做的一半。
--dbms_logmnr分析重做日志

--什么操作产生最多/最少的撤消
。INSERT 将产生最少数量的撤销,因为 Oracle 所要做
的是记录要“删除”的行 ID。UPDATE 一般是第二位(在大多数情况),所要做的是记录修改过的字节,
最常见的情况足 UPDATE 整行数拥的一小部分。一般,DELETE 产生最多的撤消。
--SET TRANSACTION SQL 语句被用来“选择”事务要使用的回滚段。
--“ORA-01555: Snapshot too old”错误原因 set transaction use rollback segment rbs_small;
·对在系统上执行的工作,回滚段太小。
·程序产生交叉 COMMIT(实际上是上面情况的一种变种)。
·块清除。

时间: 2024-08-10 23:30:43

redo的相关文章

VC客户端无法登陆都是REDO日志惹的祸

环境:VSPHERE5.5+独立oracle 11G数据库 现象:打开vcenter服务器控制台,输入密码后卡在欢迎界面无响应,客户端也无法正常登陆. 正常重启也不行.由于VC所在虚机为独立磁盘无法做快照,不能备当时状态. 查看所在WINDOWS系统日志发现硬件可能有问题. 这是偏移量,并不能代表硬件有问题,怀疑VC连接的数据库有问题,逐登陆排查.1.登陆11.15.146.2 首先查看数据库进程,正常. 2.查看数据库的告警日志,发现一个问题. 这个实际上是个比较常见的错误.通常来说是因为在日

Oracle redo 复杂度--oracle核心技术读书笔记三

一. 概述 我们知道,在oracle中,每修改一条数据都会生成一条重做数据(也就是redo,里面记录了修改后的内容).目的就是为了将修改的数据备份,方便今后重做.现在有一个问题.oracle中只要修改数据,都会生成redo,这些redo会存放在一个叫做重做日志缓冲区里面.如果同时多个回话在修改数据,都要往重做日志缓冲区写入内容,就存在为同一片内存区域竞争的问题.存在竞争,就存在开销,这篇文章大概介绍一下,oracle如何尽量降低这种开销. 二.  问题概述 oracle中不断地修改数据,源源不断

undo/redo功能的原理和思路

一些具有操作记录的系统,如店铺装修.富文本编辑等,都具有undo/redo功能,可实现界面操作过程的撤销和恢复,简述开发undo/redo功能的原理和思路. undo是将用户上一步做的操作对程序造成的改动恢复到改动之前,而redo操作是指重新实现这种改动. undo/redo操作的实现方式分为两类:记录数据和记录操作. 记录数据是指将信息编辑窗口打开时,保存原始数据,然后记录用户每次操作后的结果数据,这里的数据是指信息编辑窗口中所有可能发生变动的数据.做undo操作时程序将用户上一步操作前的数据

说说MySQL中的Redo log Undo log都在干啥

阅读目录(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,本文主要描述存放日志的文件. MySQL中的日志文件,

【转载】MySQL 日志 undo | redo

本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC). - 事务的原子性(Atomicity)  事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作.如果在执行的过程中发生  了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过. - 原理  Undo Log的原理很简单,为了满

Redo与undo在开发中的使用

redo:记录用户的操作.(commit) undo:相反的用操作.(rollback) checkpoint:redo真正写入物理存储.(定时写---定时策略) =========================================== 1.用户提交SQL的DML语句. 2.数据库DBWN写入Redo 3.写入undo 4.定时产生checkpoint 5.写入物理文件 ===========================================

Overview of the Online Redo Log --- 在线重做日志概述

对于 oracle 恢复来说最重要的数据结构莫过于online redo log(在线重做日志), 在线重做日志包含至少两个预先分配好的,用来存储数据库变化的文件.在线重做日志记录着数据文件中的变化. Online Redo Log有什么作用 Oracle 数据库通过在线重做日志文件来确保数据不丢失.特别是当实例失败后, oracle数据库可以通过在线重做日志文件恢复已经提交但尚未写到数据文件中的数据. Oracle 数据库把每个事务先同步写到 redo log buffer,然后再写到在线重做

【恢复,1】 redo 日志恢复的各种情况

Recovering After the Loss of Online Redo Log Files If a media failure has affected the online redo logs of a database, then the appropriate recovery procedure depends on the following considerations: The configuration of the online redo log: mirrored

简单记录一次REDO文件损坏报错 ORA-00333重做日志读取块出错

一.故障描述 首先是实例恢复需要用到的REDO文件损坏 二.解决方法 1.对于非当前REDO或者当前REDO但是无活动事务使用以下CLEAR命令: 用CLEAR命令重建该日志文件SQL>alter database clear logfile group 3: 如果是该日志组还没有归档,则需要用SQL>alter database clear unarchived logfile group 3: 因为是当前实例恢复需要用的REDO,且未归档,使用是CLEAR命令不行的. 2.没备份,有备份可

Standby Redo Log 的设定原则、创建、删除、查看、归档位置

设定: 1.每个standby redo log file 至少要和primary database的redo log 一样大,为了方便管理,Oracle 建议主备库的redo log 设置成一样的大小.SQL> SELECT GROUP#, BYTES/1024/1024 M FROM V$LOG; 2.Standby redo log group 至少要比primary database的redo log group 多一组. 可以在primary 库查询v$log视图,来确定主库有多少组r