oracle学习undo之事务槽和oracle的多种提交方式
1、事务槽数量参数
每一个oracle数据块里面在数据块头部都有事务槽,事务槽的数量可以去查一下,如果数据库中的表T2:
create table t10(id number(5),name char(2000));
insert into t10 values(1,'aa');
insert into t10 values(2,'bb');
insert into t10 values(3,'bb');
insert into t10 values(4,'cc');
insert into t10 values(5,'dd');
commit;
select dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid),id from t10;
4 534 1
4 534 2
4 534 3
4 535 4
4 535 5
dbms_rowid.rowid_relative_fno(rowid)是所在文件号
dbms_rowid.rowid_block_number(rowid)是所在块号
ID对应元彪的ID列,ID为1是第一行,第一行所在的块就是4号文件的第534号块。
然后更新下表:
update t10 set name='abcd' where id=1;
--查询下事务信息如下
select ubafil,ubablk,xidusn,xidslot,xidsqn,start_scnb from v$transaction;
UBAFIL UBABLK XIDUSN XIDSLOT XIDSQN START_SCNB
---------- ---------- ---------- ---------- ---------- ----------
3 444 5 27 945 1358180
查询下这个事务,更新一行就更新一个数据块,UBAFIL和UBABLK代表这回滚块信息,3号文件444号块,XIDUSN段号(select * from v$rollname查找段号),XIDSLOT事务槽号,XIDSQN945次被覆盖。这些信息都可以在事务表可以找到,分别是xid跟UBA地址。
3.1、dump回滚段头块
根据如上的5号段的段头块,根据上节内容可以导出段头块的trace文件查看。
3.2、dump回滚块
上述语句的3号文件的444号块的回滚块,alter system dump datafile 3 block 444;
3.3、dump导出数据块
上面有语句查找t2表的存储情况:
select dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid),id from t10; alter system dump datafile 4 block 534;
oracle学习undo之事务槽和oracle的多种提交方式的更多相关文章
- oracle学习笔记1:windows下oracle数据库安装及.net调用oracle数据库
1.下载32位或64位oracle数据库并且安装,安装时可以选择安装数据库实例或者不安装,如果不安装的话之后可以用Database Configuration Assistant(DBCA) 通过向导 ...
- Oracle学习笔记4 使用Navicat for Oracle 连接Oracle时出现错误:ORA-28547: connection to server failed, probable Oracle Net admin error
出问题到的机器环境: Oracle 11gR2 64bit Navicat for Oracle 11.0.10 根据网上一些大神的做法及个人的一些推测,总结如下: 问题出现的原因:Navicat与O ...
- Oracle 学习----:ora-00054 资源正忙 ,但指定以nowait方式获取资源 ,或者超时失效---解决方法
1.查询被锁的会话ID: select session_id from v$locked_object;查询结果:SESSION_ID-------92.查询上面会话的详细信息: SELECT sid ...
- ORACLE ITL事务槽
讲到ITL(事务槽)必定先说数据块,那么什么是数据块呢?先给大家上一个数据块结构图 数据块分别由块头.ITL(事务槽).表信息区.行信息区.块空闲区.行数据区组成,其中ITL用来记录在数据块发生的所有 ...
- Oracle redo undo
通常对undo有一个误解,认为undo用于数据库物理地恢复到执行语句或事务之前的样子,但实际上并非如此.数据库只是逻辑地恢复到原来的样子,所有修改都被逻辑地取消,但是数据结构以及数据库块本身在回滚后可 ...
- MySQL表结构,表空间,段,区,页,MVCC ,undo 事务槽
索引组织表(IOT表):为什么引入索引组织表,好处在那里,组织结构特点是什么,如何创建,创建IOT的限制LIMIT. IOT是以索引的方式存储的表,表的记录存储在索引中,索引即是数据,索引的KEY为P ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- Oracle学习线路
出自huyangg的博客,地址是:oracle学习路线图 1.sql.pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验) 作为oracle的基本功,需要大家对sql和 ...
- oracle 学习笔记
--2.2 进入和退出oracle数据库--在windows中输入cmd打开命令窗口 然后输入 sqlplu / as sysdba--验证数据库是否安装成功 --select status from ...
- Oracle学习系列1-7
Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...
随机推荐
- Cesium源码阅读环境搭建
1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业 ...
- string str = string.Empty也会出错?
如题 为什么会出现这种情况?大佬解释一下.
- 红米手机LineageOS Root(实操)
https://magiskcn.com/ 机型:红米note8 采用Magisk进行root,LineageOS官网的suroot包不会玩,安装失败 从LineageOS系统包中解压出boot.im ...
- 目标库DML 堵塞(dblink)导致OGG延迟
[[toc]] # 问题概述xx库OGG延迟超过8个小时,但进程处于RUNNING.# 问题原因定位到有人通过A库的DBLINK修改目标库的数据. OGG同步的表, 目标的端也在做修改相同数据,无法保 ...
- oracle to mogdb 迁移---mtk工具
## 一.MTK工具介绍--------- MTK–异构数据迁移工具 MTK全称为 Database Migration Toolkit,是一个可以将Oracle/DB2/MySQL/openGaus ...
- Markdown的学习方式
Markdown的学习 标题 二级标题表示 \# + 标题名字 若是三级标题以及更多级标题根据\#的个数表示多少级 字体 ### 粗体: **+ 名字 +** **Hello World** 斜体: ...
- PULPINO仿真建立
PULPINO仿真建立 PULPINO主要特点: systemverilog实现 有常规外设,GPIO.SPI.I2C.UART等 有调试接口 总线有AXI,外设总线为APB,扩展性好 脚本为cmak ...
- 关于fetch请求中非表单模式(form)转化为form格式请求成功问题
首先证实一下接口请求可以成功,postman掉通 2.证实接口可以掉通之后,来发现问题 发现根本不是form表单格式3.去操作实现form表单格式 发现form格式貌似已经转换,但是请求还是不对 最后 ...
- [后端-Flask总结]-flask学习总结
1.flask开发基础与入门: 1.1web开发基础 1.1.1 前端框架: bootstrap, j-query, angular, react 1.2 flask 路由 from flask im ...
- php 实现CURL请求接口
$ch = curl_init (); //初始化 @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 @curl_setopt($ ...