oracle 前滚和回滚】的更多相关文章

前滚(Rollforward): 在数据库关闭时候,很多已经提交的数据没有写到磁盘上, 数据恢复时,在文件上重演日志内容,把文件恢复到数据库关闭时的状态. 回滚(Rollback): 在数据库关闭时,有很多修改操作没有提交,这些操作必须要回滚: 两者的目的都是为了保证数据库相关文件的一致性. 同时两者也对应了恢复的两个阶段.…
/******相关参数****/fast_start_parallel_rollback1.取值有3种:false,low,high2.各值含义:false  ---禁用并行回滚功能                 low    ---并行回滚最大为2*cpu_count                 high   ---并行回滚最大为4*cpu_count3.此参数适用于system crash之前未执行完毕的并行dml或并行ddl 4.决定并行回滚的并行度   5.此参数应用前滚完成之后回…
关于回滚段的问题,之前也小整理过一个,参考: Current online Redo 和 Undo 损坏的处理方法 http://blog.csdn.net/tianlesoftware/article/details/6261475 Roger同学昨天整理了一个更加详细的说明,转帖过来. Roger 的原文链接如下: http://www.killdb.com/?p=196 某些情况下,我们需要手动去清除一些有问题的回滚段,如果该回滚段中包含活动事务,那么使用正常的方式将无法drop,所以此时…
https://searchdatabase.techtarget.com.cn/7-20392/ --use_urec 详细解读: select USED_UREC from v$transaction; 4.1.delete 操作 4.1.2.一般删除 计算公式:USED_UREC=删除表记录数+删除表索引记录数(每个索引每行记录算一条记录) 假设表有2个索引,删除10条记录 4.1.2.通过索引范围条件删除记录 USED_UREC=删除表记录数+更新索引块数 假设表有1个单字段普通索引,通…
--查询默认的undo表空间 select name,value from v$parameterwhere name like '%undo%'; --创建 undotbs2 表空间 create undo tablespace undotbs2datafile '/u01/app/oracle/oradata/test10g/undotbs02.dbf' size 50m  autoextend on next 10m maxsize 100m; --将undotbs2 设为默认undo表空…
回滚段概述  回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息. 回滚段的作用  事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值. 事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在重做日志文件中,ORA…
ORACLE 回滚段 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息. 回滚段的三个作用 事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值. 事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在…
项目中用到了MongoDB,准备用来存储业务数据,前提是要实现事务,保证数据一致性,MongoDB从4.0开始支持事务,提供了面向复制集的多文档事务特性.能满足在多个操作,文档,集合,数据库之间的事务性,事务的特性.多文档事务在4.0版本仅支持复制集,对分片集群的事务性支持计划在4.2版本中实现.由于我也算是一个java小白,没怎么弄清java事务机制,于是先建了个测试项目进行测试.在本例中可以看到多数据源下事务的使用,请重点关注后面记录的爬坑记. 代码已上传到github 传送门 https:…
1.Undo是干嘛用的?   在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务.我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成.那么一个复杂的事务是只有两个结果,要么成功,要么失败(相当于从来没发生过). 一个很典型的列子,银行转账,其实其需要两步操作,第一步先将你账户上的钱减去,第二步把被转账户的钱加上,(先减后加,出了问题银行不吃亏.呵呵!)这样就是一个完整的事务.如果执行了一半,你的钱减了,被转账户的钱没加上,这个时候事务就要…
一.回滚(ROLLBACK)和撤销(UNDO) 回滚和前滚是保证Oracle数据库中的数据处于一致性状态的重要手段. 在9i版本以前 Oracle使用数据库中的回滚段来实现未提交数据或因系统故障导致实例崩溃时进行回滚操作 每一个表空间需要创建回滚段,各个表空间对回滚段实现各自的管理 在9i及后续版本 提供了一种新的回滚数据的管理方式,即使用Oracle自动管理的撤销(Undo)表空间 自动撤销管理表空间统一管理所有DML的回滚操作,简化了对于回滚工作的管理 在9i,10g中的回滚段仅仅用作保留向…
回滚环境: 1.源库版本: Grid Infrastructure:11.2.0.3.15 Database:11.2.0.3.15 2.目标库版本: Grid Infrastructure:11.2.0.3.13 Database:11.2.0.3.13   执行步骤: 1.备份源库(root & grid & oracle) 在待回滚的节点执行备份,以防止回滚失败后导致软件故障. a.备份 ASM 实例参数文件(grid) 以 / as sysasm 身份进入 sqlplus 环境,执…
一直以来,都觉得Connection假设设置了setAutoCommit(false)后.启动手工事务提交.必须手工进行commit或者rollback才行.今天正好遇到一个问题.结果大跌眼镜. 于是測试了一下.结果例如以下(请注意在oracle驱动下,其它环境未知): 1.设置了setAutoCommit(false)后运行兴许DML的数据更新操作,没有显式手工进行commit或者rollback,最后设置setAutoCommit(true).后关闭连接,默认提交成功. 2.设置了setAu…
execute执行后 可以回滚 commit提交后 闪回恢复原来的数据 其实Oracle提交数据是分两步操作的,第一步execute执行,第二步commit提交.对应的PL\SQL也是要先点execute执行,执行后再点commit提交.但是 commit提交后 可以用闪回查询恢复原来的数据 因为oracle会将近期的数据保存到快照中 如: SELECT * FROM tab AS OF TIMESTAMP TO_TIMESTAMP('20130506 20:00:00','YYYYMMDD H…
因为上一次研究了Oracle的事务一致性,中间查阅资料的时候,看到这个地方与回滚段有关.所以就罗列了以下简单的知识.更为深层次的就不再深挖了,个人感觉对于事务的一致性和隔离级别是开发经理应该了解的,但是回滚段的具体机制应该是DBA的学习范畴了.   回滚段(ROLLBACK SEGMENT)的作用: 回滚段是在事务中间过程中,将修改前的状态记录下来,记录的过程中加上类似时间戳的scn.它的主要作用有两个: 当事务出现错误回滚的时候,原始数据可以从回滚段中找回. 实现读一致性.当读操作读取到某一行…
这篇文章主要描写叙述oracle的回滚机制,篇幅可能较长,由于对于oracle的回滚机制来说,要讨论和描写叙述的实在太多,仅仅能刷选自己觉得最有意义的一部分进行深入研究和分享 一.我们来看一个DML语句的处理过程描写叙述 update undotest set object_type='VIEW' where object_type='PROCEDURE'; 检查shared pool中是否存在同样的语句.假设存在.重用运行计划,运行扫描运算,假设不存在.运行硬解析生成运行计划 依据运行计划中的…
Undo的作用 数据的回滚 一致性读 表的闪回(事务,查询的闪回..) 失败会话的恢复 回滚rollback操作 SQL> archive log list; ORA-01031: 权限不足 SQL> conn /as sysdba 已连接. SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 45 下一个存档日志序列 47 当前日志序列 47 SQL> creat…
数据库检测到死锁后,只会回滚跟死锁有关的某条语句,而不会回滚整个事务. 创建测试环境:SQL> create table test1(id int,name char(1)); 表已创建. SQL> insert into test1 values(1,'a'); 已创建 1 行. SQL> commit; 提交完成. SQL> create table test2 as select * from test1; 表已创建. session1:SQL> update test…
--查看历史数据 select * from test1 as of timestamp to_timestamp('2018-12-23 14:41:00', 'yyyy-mm-dd hh24:mi:ss'); --开启可移动数据命令 alter table test1 enable row movement; --查看flashback功能是否开启 为no表示未开启 select open_mode,log_mode,flashback_on from v$database; --正式回滚数…
一,commit 01,commit干了啥 commit 就是提交的意思.也就是当你把99%的东西都做好了,然后你执行最后一步的操作...再commit前的话你可能啪啪啪啪啪,敲了几百条sql DML或者DML语句. 然后你可能自己select 或许desc一下,看见了自己的成果,但是其他用户任然看不到.当你comiit执行一下后,其他用户才能看见. 02. commit的发生了什么 1)服务器为每个COMMIT产生一个SCN.使改变永久化: 2)LGWR进程将日志缓冲区数据并带有SCN一起写到…
线下测试数据误操作,回滚攻略--把数据捞出来,这个时间自己设置--表名一定要是:xx_tbd日期 CREATE TABLE user_tbd0718ASselect * from user as of timestamp to_timestamp('2013-8-12 17:40:00','yyyy-mm-dd hh24:mi:ss');--清空原有表DELETE FROM user;--把捞出来的数据,填回去INSERT INTO user SELECT * FROM  user_tbd071…
Flashback 技术基于Undo segment基于内容的, 因此,限制UNDO_RETENTON参数. 要使用flashback 特征,您必须启用自己主动撤销管理表空间. 在Oracle 11g内部和外部使用的新功能:Oracle Flashback Data Archive. FDA通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo差别开来, 这样就能够为闪回归档区单独设置存储策略,使之能够闪回到指定时间之前的旧数据而不影响undo策略. 在O…
环境:RHEL 6.4 + Oracle 11.2.0.4 背景:备份恢复的测试库在一次不完全恢复后,没有来及做有效的全备,又一次数据库故障导致数据库无法正常open. 只能离线部分数据文件打开数据库,其中包含undo表空间数据文件. 适用场景:无有效备份,可以丢失数据,删除回滚段状态为NEEDS RECOVERY的undo表空间. 一.数据库当前情况 1.1 故障现象 1.2 查看数据文件的状态 1.3 尝试online数据文件失败 二.删除损坏数据文件所在表空间 2.1 普通数据文件4所在的…
因为DDL没有事务性,所以DDL不能回滚. 要实现自动回滚.(begin,commit,rollback),则SQL语句中只能包括DML. 这样,自动化发布就会受限规范格式. 故而,一刀切的办法是,假定所有SQL不支持事务,自已定义好ROLLBACK的SQL脚本,在出错时能用代码回滚, 而不是依赖于数据库本身的功能. ======================== DDL和DML DDL (Data Definition Language 数据定义语言) create table 创建表 al…
这个是昨天上班的时候,写一个后台程序的调试程序时碰到的问题,和项目经理纠结了一天,最后搞定了.于是今天上班正好闲着,花了几乎一天的时间去网上找各种相关的资料.目前了解的内容如此: 根据使用的weblogic数据库驱动不同,可能会有两种报错: ①     Cannot call commit/rollback when using distributed transactions. ②     Cannot call Connection.commit/rollback in distribute…
从11.2.0.2开始,如果由于某种原因switchover没有成功,可以回滚switchover. For physical standby databases in situations where an error occurred and it is notpossible to continue with the switchover, it might still be possible to revert the newphysical standby database back…
一.    问题提出 请求名称:复制系统初始的数据 参数:空 问题: 今天早上财务实施人员新配置了一个OU,然后在跑复制系统初始的数据报表的时候,不小心,不输入参数就直接跑. 报表先是报错. 接下来的问题更加严重了.因为这个请求会做很多塞数据的动作,导致一些设定表格数据重复了. 就是说,原来的业务实体已经存在设定的数据,因为跑这个报表的时候,没有限制业务实体就运行,所以,所有的业务实体的数据都会重新塞一次到相关的表格. 特别是表格:AR_SYSTEM_PARAMETERS_ALL,当OU数据重复…
MySQL中有六种日志文件,分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志(errorlog).慢查询日志(slow query log).一般查询日志(general log),中继日志(relay log).其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义.这里简单总结一下这三者具有一定相关性的日志. 重做日志(redo log) 作用: 确保事务的持…
配置测试类 添加如下内容在class前,用于配置applicationContext.xml文件的位置. @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:applicationContext.xml") *********************** Junit4 不回滚 2012-02-13  @Rollback 表明被注解方法的事务在完成后是否需要被回滚. 如果…
一台mysql数据库在多次断电之后,长时间等待未果直接重启mysql 服务.之后错误日志中报错: 170119 :: InnoDB: Error: page log sequence number InnoDB: . InnoDB: Your database may be corrupt or you may have copied the InnoDB InnoDB: tablespace but not the InnoDB log files. See InnoDB: http://de…
今天新搭建了一个10g的测试数据库,运行都很正常,但是在打开autotrace功能后执行语句,报错 SQL> set autotrace on SQL> select username,sid,serial#,server,paddr,status from v$session where username=USER; USERNAME                              SID    SERIAL# SERVER    PADDR    STATUS ---------…