1.Does undo buffer exists or changes will directly write to undo datafiles?

Undo blocks are database blocks, so they will sit in the buffer cache like others, eg
虽然无法控制undo buffer大小,但是可以查询到其大小,如下

SQL> select count(*)
2 from v$bh
3 where file# in (
4 select file#
5 from v$datafile
6 where name like '%UNDO%' ); COUNT(*)
----------
5473

2.Does redo contains both undo & redo related changes?

Yes. Any change to any block (undo or otherwise) is protected by redo (unless explicitly instructed not to)

3.If db crashes with uncommitted data in undo buffer it will get cleared automatically ,then we are able rollback database with redo ?

During instance restart, we do instance recovery. We use the redo logs to resurrect all the changes to database blocks, which *includes* undo blocks. Those undo blocks can then be used to undo any uncommitted transactions (ie, uncommitted at the time of the crash)

in memory undo is a change in the way we manage undo for some transactions. We usually put undo in a block as you generate it - with in memory undo (IMU) we put the undo into a data structure instead - this data structure is easier/faster to process by queries that need the undo for read consistency purposes or rolling back.

设计IMU控制的参数有:

_in_memory_undo Default is TRUE and enabled. To disable it change parameter to FALSE.

_imu_pools Default is 3 on some system. This sets the number of IMU pools. It is not related to memory allocation for IMU.

_recursuve_imu_transactions This enables Oracle’s own SQL to use IMU. Default is FALSE.

_db_writer_flush_imu Allows Oracle the freedom to artificially age a transaction for increased automatic cache management.

可以直接通过下列查询到IMU大小:

SQL> select * from v$sgastat where name like 'KTI-UNDO';

POOL NAME BYTES 
------------ -------------------------- ---------- 
shared pool KTI-UNDO 8522272

oracle查询buffer cache中undo大小的更多相关文章

  1. oracle查询单表占用空间的大小

    oracle查询单表占用空间的大小 SELECT segment_name AS TABLENAME, BYTES B, BYTES KB, BYTES MB FROM user_segments w ...

  2. buffer cache中,各个object对象占用的buffer blocks

    buffer cache中,各个object对象占用的buffer blocks: COLUMN OBJECT_NAME FORMAT A40 COLUMN NUMBER_OF_BLOCKS FORM ...

  3. ORACLE 查询某表中的某个字段的类型,是否为空,是否有默认值等

    最近写的功能中有这样一个小功能,根据数据库查询此库中是否有某表,如果有,查询某表下面的某个字段的详细信息 其中一种是... select ATC.OWNER, atC.TABLE_NAME, ATC. ...

  4. oracle 查询谁在用undo

    SELECT TO_CHAR(s.sid)||','||TO_CHAR(s.serial#) sid_serial,NVL(s.username, 'None') orauser,s.program, ...

  5. oracle 查询当前库中所有表以及某表字段信息

    select utc.COLUMN_ID,utc.TABLE_NAME,utc.COLUMN_NAME,utc.DATA_TYPE||utc.DATA_LENGTH,utc.DATA_DEFAULT, ...

  6. [oracle]查询一个表中数据的插入时间

    select to_char(scn_to_timestamp(ORA_ROWSCN),'yyyy-mm-dd hh24:mi:ss') insert_time from tablename;

  7. oracle查询A表中主键都被哪些表引用了?

    select r.TABLE_NAME from USER_CONSTRAINTS p, USER_CONSTRAINTS r where p.TABLE_NAME = 'IAM_AUDIT_FIND ...

  8. Buffer cache 的调整与优化

    Buffer cache 的调整与优化 -============================== -- Buffer cache 的调整与优化(一) --==================== ...

  9. [转载]Buffer cache的调整与优化

    Buffer Cache是SGA的重要组成部分,主要用于缓存数据块,其大小也直接影响系统的性能.当Buffer Cache过小的时候,将会造成更多的free buffer waits事件.下面将具体描 ...

随机推荐

  1. N - Asteroids

    Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N g ...

  2. poj1696

    没看题解,搜了一下都是什么叉积凸包,根本没有必要用吧.. 显然这个题我们找夹角就可以了,根据高中的公式 a·b=|a|*|b|*cos<a,b> 所以用点积找一个 cos<a,b&g ...

  3. Promise及Async/Await

      一.为什么有Async/Await? 我们都知道已经有了Promise的解决方案了,为什么还要ES7提出新的Async/Await标准呢? 答案其实也显而易见:Promise虽然跳出了异步嵌套的怪 ...

  4. linux 系统全盘恢复

    恢复备份 一.准备 1. 从 u盘启动,进入 live-cd 系统,配置好网络和镜像源,更新一下仓库的数据库. sudo pacman -Syy 2. 安装 timeshift 这个软件. sudo ...

  5. ShellExecute 使用

    shellExecute 函数原型及参数含义: function ShellExecute(hWnd:HWND;Operation,FileName,Parameters,Directory:PCha ...

  6. Linux命令行下快捷键

    快捷键 说明 Ctrl+a 切换到命令行开始 Ctrl+e 切换到命令行末尾 Ctrl+c 终止当前命令或脚本 Ctrl+d ①退出当前shell,相当于exit②一个个删除光标后字符 Ctrl+l ...

  7. Nginx之使用nginx搭建简单的文件服务器

    使用nginx可以搭建简单文件服务器 安装nginx(不详述) 修改配置文件 /usr/local/nginx/conf/nginx.conf user root; /usr/local/nginx/ ...

  8. python ssh之paramiko模块使用

    1.安装: sudo pip install paramiko 2.连接到linux服务器 方法一: #paramiko.util.log_to_file('ssh.log') #写日志文件 clie ...

  9. list集合排序

    https:/blog.csdn.net/veryisjava/article/details/51675036 public static void main(String[] args) { Li ...

  10. Android Studio--》Gradle Scripts配置说明

    什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. 安装 ...