一.回滚(ROLLBACK)和撤销(UNDO) 回滚和前滚是保证Oracle数据库中的数据处于一致性状态的重要手段. 在9i版本以前 Oracle使用数据库中的回滚段来实现未提交数据或因系统故障导致实例崩溃时进行回滚操作 每一个表空间需要创建回滚段,各个表空间对回滚段实现各自的管理 在9i及后续版本 提供了一种新的回滚数据的管理方式,即使用Oracle自动管理的撤销(Undo)表空间 自动撤销管理表空间统一管理所有DML的回滚操作,简化了对于回滚工作的管理 在9i,10g中的回滚段仅仅用作保留向…
数据库回滚(rollback)和撤销(undo)的区别就是把某一个数据库操作恢复到该操作之前的状态,下面结合自己理解总结一下区别,如有错误,欢迎各路大佬斧正: 数据库事务过程:执行SQL——提交     回滚:即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,滚回到事务开始时的状态.(在提交之前执行) 执行SQL—(rollback)—提交     撤销:在不影响其他事务运行的情况下,强行回滚该事务,撤销该事务已经做出的任何对数据库的修改.(在…
为了保证在应用程序.数据库或系统出现错误后,数据库能够被还原,以保证数据库的完整性,所以需要进行回滚. 回滚(rollback)就是在事务提交之前将数据库数据恢复到事务修改之前数据库数据状态. 回滚执行相反的操作,可以撤销错误的操作,从而保证数据的完整性. 例如,用户A给用户B转账,在数据库中就需要给A与B的账户信息进行修改(update)操作,而这两条sql语句必须都执行或者都不执行.  例如先执行用户B的修改(update)语句,使用户B的账户金额增加了1000,然后执行用户A的update…
最近rails3.2在更改数据库表字段,然后要回滚取消,但在运行rake db:rollback命令,错误: rake aborted! An error has occurred, all later migrations canceled: ActiveRecord::IrreversibleMigration/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/migration/com…
新项目试运行,DBA提示生产数据库一个表的事务20分钟都未提交,分析过程如下: 1.查看日志log文件,最近20分钟是否有error日志: 2.发现某表有insert错误日志,初步判断由该表插入异常,并且未做rollback操作: 3.查看代码:该表的操作DAO.Service,事务处理为Spring的声明式事务处理,并控制到Service层: 4.场景还原: 打开Spring的debug日志(查看数据库conn打开.commit.rollback必须启用debug) 模拟插入异常数据 打断点测…
mysql的引擎常用的有两个,一个MyISAM,另一个是InnoDB,mysql默认的为MyISAM,而InnoDB才是支持事务的.所以一般需要修改下,如何修改就不说了. 事务需要依赖数据库,好久没使用声明式事务,今天试了下.关键配置如下. <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:met…
在应用$mysqli时,因没常用到数据回滚,老忘,整理下,做个记录. $mysqli->autocommit(FALSE);//自动提交设置关闭 $mysqli->query("BEGIN"); //事务开始,接着下面的执行才可以我们自己控制 try{  $mysqli->query($sql);  $q1 = $mysqli->affected_rows;  if($q == 1){ //从返回的数据库影响行数做判断,是否返回正常   $mysqli->…
线下测试数据误操作,回滚攻略--把数据捞出来,这个时间自己设置--表名一定要是: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…
##使用git,总有一天会遇到下面的问题: (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚. 所以git的取消提交.回退甚至返回上一版本是比较重要的. 大致分为下面2种情况: 1.没有push 这种情况发生在你的本地代码仓库,可能你add.commit以后发现代码有点问题,准备取消提交,用reset git reset \--soft | --mixed | --hard 参数说明: --so…
事务的概念 一组要么同时执行成功,要么同时执行失败的SQL语句,是数据库操作的一个执行单元! 事务开始于: 连接到数据库上,并执行一条DML语句(insert,update或delete),前一个事务结束后,又输入了一条DML语句. 事务结束于: 1)执行commit或rollback语句. 2)执行一条DDL语句,例如create table 语句:在这种情况下,会自动执行commit语句. 3)执行一条DCL语句,例如grant语句:在这种情况下,会自动执行commit语句. 4)断开数据库…