【ORACLE】DUMP转储 redo log , undo段及table段

1.1 使用oradebug

--启动任务

oradebug setmypid

--设置dump文件的名称标示

alter session set tracefile_identifier=undo

--查看dump文件

SQL> oradebug tracefile_name;

c:\opt\oracle\product\10.2.0\admin\rundb\udump\rundb_ora_6660_pra1.trc

--设置权限

oradebug unlimit

--查看可以转储的列表:

SQL> oradebug dumplist

EVENTS

TRACE_BUFFER_ON

TRACE_BUFFER_OFF

--oradebug dump 命令

(1) oradebug dump buffers 1

转储缓冲区信息: 1=仅缓冲头

1.2 使用alter system dump redo
日志

--dump redo日志

alter system dump logfile ‘C:\OPT\ORACLE\PRODUCT\10.2.0\ORADATA\RUNDB\REDO02.LOG‘;

1.3 使用alter system dump table数据块

--查看scott.stu表的位置:

select HEADER_FILE, HEADER_BLOCK,BYTES,BLOCKS,INITIAL_EXTENT,EXTENTS,NEXT_EXTENT from dba_segme

nts where segment_type=‘TABLE‘ and owner=‘SCOTT‘  and segment_name=‘STU‘;

HEADER_FILE HEADER_BLOCK      BYTES     BLOCKS INITIAL_EXTENT    EXTENTS

----------- ------------ ---------- ---------- -------------- ----------

NEXT_EXTENT

-----------

4          203      65536          8          65536          1

//scott.stu的位置为: datafile 4 block 203,
一共占用8个block,而且是一个exntents连续空间中的。

--dump 表头信息(segment header)信息

alter system dump datafile 4 block 203;

--dump所有表的所有数据块(8个)信息

alter system dump datafile 4 block min 203 block max 210;

1.4 使用alter system dump  undo段信息及undo记录信息

1.4.1 dump undo 段header信息

---查看undo segments_name

SQL> select segment_name from dba_segments where segment_type=‘TYPE2 UNDO‘;

SEGMENT_NAME

--------------------------------------------------------------------------------

_SYSSMU1$

_SYSSMU2$

_SYSSMU3$

_SYSSMU4$

…..

或者SQL> select segment_id,segment_name,block_id,status from dba_rollback_segs;

SEGMENT_ID SEGMENT_NAME                     BLOCK_ID STATUS

---------- ------------------------------ ---------- ----------------

0 SYSTEM                                  9 ONLINE

1 _SYSSMU1$                               9 ONLINE

2 _SYSSMU2$                              25 ONLINE

……

----dump undo头

SQL> alter system dump undo header ‘_SYSSMU1$‘;

1.4.2 根据xid dump undo记录

--查询xid:  undo段号,slot号,wrap值

SQL> select trunc(id1/65536) usn,mod(id1,65536) slot,id2 wrap,lmode  from v$lock where type=‘TX‘;

USN       SLOT       WRAP      LMODE

---------- ---------- ---------- ----------

2         43        313          6

--dump unod记录

ALTER SYSTEM DUMP UNDO BLOCK ‘_SYSSMU2$‘ XID 2 43 313

1.5 stu segment表(段)中某个数据块的dump信息

--数据块信息:

buffer tsn: 4 rdba: 0x010000cc (4/204)

Itl           Xid                  Uba         Flag  Lck        Scn/Fsc

0x01   0x0006.012.0000013b  0x00800127.011a.01  --U-    1  fsc 0x0000.000c44bc

0x02   0x0000.000.00000000  0x00000000.0000.00  ----    0  fsc 0x0000.00000000

block_row_dump:

tab 0, row 0, @0x1f85

tl: 19 fb: --H-FL-- lb: 0x1  cc: 4

col  0: [ 2]  c1 06

col  1: [ 3]  c2 15 09

col  2: [ 5]  73 6d 69 74 68

col  3: [ 2]  c1 1a

end_of_block_dump

//itl事务列表索引,该值用于行的锁字节:lb:
显示被那个事务锁住。

//xid: undo中的事务ID,

//uba: 事务产生的undo记录地址

//flag: 事务状态。--u—上界提交;c------提交清楚;

Lck: 块中改事务锁住行数。

_________________________________________________________________________________

http://blog.csdn.net/clark_xu               徐长亮专栏原创

__________________________________________________________________________________

时间: 2024-12-14 22:51:24

【ORACLE】DUMP转储 redo log , undo段及table段的相关文章

Oracle 维护 online redo log

维护在线redo log  Oracle Database - Enterprise Edition - Version 11.2.0.4 to 11.2.0.4       1. 首先查看当前redo log的大小:              [[email protected] ~]$ sqlplus / as sysdba Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production    SQL>

说说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中的日志文件,

ORACLE 在线移动redo log路径、删除无效的redo log

移动redo文件路径,默认的redo log文件的路径和archivelog的路径一样,在闪回区,因为闪回区有大小限制,所以redo log和archive log特别是archive log越来越多后,会撑爆闪回区.规范起见,需要将redo log以及archive log放到单独的路径区域里面去. 1,查看现有的redo文件路径 查看现有的redo文件路径,看到默认的在闪回区路径下面: SQL> select member from v$logfile; MEMBER -----------

oracle联机重做日志文件(online redo log file)

oracle联机重做日志文件(online redo log file几乎所有的发生在oracle的内部变化都记录在online  redo log file中,oracle使用 这些 redo log groups 去恢复数据库,因此它们是非常的重要. 联机重做日志文件的主要工作是:备份数据,1:记录所有的数据改变2:提供了一种恢复机制3:一定是被组织成组的4:至少有两组联机重做日志文件 每一个redo  log 是被分配到 组中, oralce 一次值写一个 online redo log

MySQL InnoDB redo Log 浅析

MySQL的InnoDB存储引引擎的物理文件存储体系中,除了实际的数据文件(ibd, ibdata)之外,还有两个非常重要的日志系统,分别是redo日志和undo日志. 跟Oracle类似, redo log记录了对实际数据文件的物理变更(数据文件的什么位置数据做了如何的变更).InnoDB也是采用了WAL(日志优先落盘),也就是说在实际数据文件的修改落盘之前redo日志已经落盘,从而来保证事务的持久性.Undo日志用来保证事务的原子性和MVCC,所有的undo操作产身的数据文件的变更也会记录到

Oracle redo与undo 第二弹

首先看一下undo与redo的字面意思:   undo:撤销,也就是取消之前的操作.   redo:重做,重新执行一遍之前的操作. 什么是REDO REDO记录transaction logs,分为online和archived.以恢复为目的. 比如,机器停电,那么在重起之后需要online redo logs去恢复系统到失败点. 比如,磁盘坏了,需要用archived redo logs和online redo logs去恢复数据. 比如,truncate一个表或其他的操作,想恢复到之前的状态

Oracle基本数据改变原理浅析(redo与undo)--oracle核心技术读书笔记一

在oracle中我们做一些更新操作,oracle底层是怎么流转的呢,就是这篇文章要讲解的. 一. 原理 假设我们在一个已经更新了很多条分散记录的OLTP系统中,更新了一行数据.那么这个更新的真实步骤如下: 1. 创建一个重做改变向量,描述如何往undo块插入一条undo记录(也就是描述undo块的改变) 2. 创建一个重做改变向量,描述数据块的改变(也就是数据的改变) 3. 合并这两个重做改变向量为一条日志记录,并写到重做日志缓冲区(便于今后重做) 4. 向undo块插入undo记录(便于今后回

【msql】redo and undo log

Innodb Crash Recovery InnoDB 有两块非常重要的日志,一个是undo log,另外一个是redo log,前者用来保证事务的原子性以及InnoDB的MVCC,后者用来保证事务的持久性.和大多数关系型数据库一样,InnoDB记录了对数据文件的物理更改,并保证总是日志先行,也就是所谓的WAL,即在持久化数据文件前,保证之前的redo日志已经写到磁盘 Crash Recovery是InnoDB引擎的一个特点,当故障发生,重新启服务后,会自动完成恢复操作,将数据库恢复到之前一个

【知识点整理】Oracle中NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行速度的比较

[知识点整理]Oracle中NOLOGGING.APPEND.ARCHIVE和PARALLEL下,REDO.UNDO和执行速度的比较 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 系统和会话级别的REDO和UNDO量的查询 ② NOLOGGING.APPEND.ARCHIVE和PARALLEL下,REDO.UNDO和执行速度的比较(重点)   Tips: ① 本文