首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL基础-->数据库事务(TRANSACTION)

) ddl或dcl语句 (自动提交) 用户会话正常结束(自动提交) 系统异常终止 (自动回滚) 系统崩溃 (自动回滚) 四、事务的提交或回滚(COMMIT、ROLLBACK) --使用COMMIT...执行DCL语句,则自动提交并结束事务 断开与数据库的连接,如退出SQL Plus。...Windows下SQL Plus正常退出将执行COMMIT,如点击关闭窗口直接关闭则回滚 X-Window下SQL Plus正常退出将执行COMMIT,如点击关闭窗口直接关闭则回滚(笔者在RHEL5下测试如此...) DML语句执行失败则自动回滚 提交或回滚前的数据状态 改变前的数据状态是可以恢复的 执行DML 操作的用户可以通过SELECT 语句查询之前的修正 其他用户不能看到当前用户所做的改变,直到当前用户结束事务...将autocommit设成ON时,在进行DML操作时似乎很方便, 但在实际应用中有时可能会出现问题,如,在有些应用中要同时对几个表进行操作,对于这些表建立 了外键联系,如果一旦操作失败另一个表,就很麻烦了

63630

数据库事务理解

注销(如退出SQL*Plus) 硬件错误 二、数据库的事务处理 数据库的事务由下列语句组成: •一组DML语句,修改的数据在他们中保持一致 •一个 DDL (Data Define Language)...•Rollback 用于回滚数据改变,就是放弃事务中的所有数据改变,整个数据回到事务最开始的地方。...: 执行一个 DDL 语句 执行一个DCL 语句 从 SQL*Plus正常退出 当从SQL*PLUS中强行退出或系统失败时,事务自动回滚 七、Sqlplus的自动提交 在sqlplus中有一个与事务相关的环境变量...SQL> 八、提交或回滚前数据的状态 •以前的数据可恢复 •当前的用户可以看到DML操作的结果 •其他用户不能看到DML操作的结果 •被操作的数据被锁住,其他用户不能修改这些数据 九、提交后数据的状态...十、回滚后数据的状态 语句将放弃所有的数据修改。 修改的数据被回退。 恢复数据以前的状态。 行级锁被释放。 SQL>DELETE FROM employee; 147 rows deleted.

87250
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Oracle备份和恢复(RMAN篇)

    一、Oracle常见的数据丢失的情况: 1、语句故障 语句故障时在执行sql语句过程中发生的逻辑故障。例如:向表中插入违反约束的无效数据,或者表空间没有空间了导致无法插入数据等。...2、用户进程故障 当用户程序出错而无法访问oracle数据库时,就会发生用户进程故障,原因是异常断开连接或终止进程,如果网络不通,客户端计算机以外重新启动,这些故障会导致用户进程与服务器的连接意外终止。...PMON会通过回滚事务来处理故障,还将释放进程当前占用的资源。 3、实例故障 当oracle的数据库实例由于硬件故障或软件问题而无法继续运行时,就会发生实例故障。...当重新启动数据库时,如果发现实例故障,oracle会自动完成实例恢复。实例恢复将数据库恢复到与故障之前的事务一致的状态,oracle会自动回滚未提交的数据。...逻辑备份的手段很多,如传统的EXP、数据泵EXPDP、数据库闪回技术及第三方工具,都可以进行数据库的逻辑备份。 2、从备份策略角度上 1)完全备份:每次对数据进行完整的备份。

    2.6K10

    PLSQL Developer几个可能的隐患

    4是DML操作,3是DDL操作,这些语句在同一个事务中执行,3的DDL会隐式提交,此时会将1和2的insert和delete连带提交,当4需要rollback时,只可以回滚4的操作,1和2已经提交,无法再执行回滚...之所以DML语句需要显示提交,从原理层讲,DML会记录redo和undo信息,undo中存储的是修改数据的前镜像,当执行rollback时,可以利用undo数据进行恢复,当执行commit时,Oracle...因此,这个选项Logoff with open transaction强烈建议设置为Rollback,正常关闭软件,就让他自动回滚(其实这正是Oracle默认的行为,退出session,自动回滚),由执行者自行决定事务的提交...借助PLSQL Developer的AfterConnect.sql脚本,在Oracle中执行了一些特定的JOB、存储过程和触发器,实现勒索机制。...2.关注管理工具的登录脚本,存在异常,立即报警, SQL*Plus: glogin.sql / login.sql TOAD : toad.ini PLSQLdeveloper: login.sql

    2.1K10

    【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?

    题目部分 如何在Oracle中写操作系统文件,如写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...可以执行$ORACLE_HOME/rdbms/admin/dbmslock.sql来创建DBMS_LOCK包,该包可以实现让程序暂时等待的功能。...如何在Oracle中写操作系统文件,如写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...当DML语句中有一条数据报错时,如何让该DML语句继续执行? 当一个DML语句运行的时候,如果遇到了错误,那么这条语句会进行回滚,就好像没有执行过。...对于一个大的DML语句而言,如果个别数据错误而导致整个语句的回滚,那么会浪费很多的资源和运行时间。所以,从Oracle 10g开始Oracle支持记录DML语句的错误,而允许语句自动继续执行。

    28.8K30

    【DB笔试面试510】在Oracle中,DBMS_OUTPUT提示缓冲区不够,怎么增加?

    可以执行$ORACLE_HOME/rdbms/admin/dbmslock.sql来创建DBMS_LOCK包,该包可以实现让程序暂时等待的功能。...在CLIENT_INFO列中存放程序的客户端信息;MODULE列存放主程序名,如包的名称;ACTION列存放程序包中的过程名。该包不仅提供了设置这些列值的过程,还提供了返回这些列值的过程。...如何在Oracle中写操作系统文件,如写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...当DML语句中有一条数据报错时,如何让该DML语句继续执行? 当一个DML语句运行的时候,如果遇到了错误,那么这条语句会进行回滚,就好像没有执行过。...对于一个大的DML语句而言,如果个别数据错误而导致整个语句的回滚,那么会浪费很多的资源和运行时间。所以,从Oracle 10g开始Oracle支持记录DML语句的错误,而允许语句自动继续执行。

    2.2K20

    Oracle 回滚(ROLLBACK)和撤销(UNDO)

    === 一、回滚(ROLLBACK)和撤销(UNDO) 回滚和前滚是保证Oracle数据库中的数据处于一致性状态的重要手段。...在9i版本以前 Oracle使用数据库中的回滚段来实现未提交数据或因系统故障导致实例崩溃时进行回滚操作 每一个表空间需要创建回滚段,各个表空间对回滚段实现各自的管理 在9i及后续版本 提供了一种新的回滚数据的管理方式...,即使用Oracle自动管理的撤销(Undo)表空间 自动撤销管理表空间统一管理所有DML的回滚操作,简化了对于回滚工作的管理 在9i,10g中的回滚段仅仅用作保留向后兼容 撤销段代替了原有版本中的回滚段...在事务结束前一直被保留 UNDO段中数据的作用: 用于回滚操作 读一致性和闪回查询 用于事务失败时的恢复 UNDO段与事务: 一个事物的启动,Oracle将为其分配仅仅一个UNDO段,若该段用完...,值可以为auto或manual,当为manual时将不使用撤销段,即不使用自动管理模式 该参数为静态参数,修改后需重启实例才能生效 undo_retention: 指定撤销段数据在undo段中为非活动状态后被覆盖前保留的时间

    2.5K10

    Play 2.1 - Evolution插件使用指南

    Downs之后的部分是down脚本,down脚本是一段撤销脚本,类似于数据库中的事务回滚,将数据库恢复到up脚本执行之前的状态。书写规则同up脚本。...考虑到一个应用可能在多台服务器上同时部署,在执行up/down脚本时,会先将表中相应记录的state改为applying_up/applying_down状态,如果执行出错,则更新last_problem..., 如果有脚本执行失败,则Evolution插件不会再尝试执行出错的脚本,而是直接在浏览器中报错,此时的解决办法是手工在数据库中执行出错脚本,然后再单击页面上的"Mark it resolved"按钮。...Ebean每次都会重新生成1.sql文件,如何手工修改1.sql,而不是用Ebean的自动生成脚本?     删除1.sql文件的头两行注释: 七、不同运行模式下的差异 1....Oracle中执行,原因是Oracle中没有text类型,所以在将play的数据源切换至Oracle时,我们需要手工在Oracle上创建PLAY_EVOLUTIONS表,建表语句如下: create

    1.2K80

    Oracle 的安装与基本操作

    12c针对Linux内核参数.进程会话限制提出了一些要求,其中一部分设置可以在安装过程中自动检测并修复,但并不一定很完整 ,所以最好的做法是根据安装文档提前进行配置。...Oracle 12c 数据库的创建 [oracle@oracle /]$ sqlplus / as sysdba # 登录数据库 SQL*Plus: Release 12.2.0.1.0...发出该命令后,当前正在被Oracle处理的SaL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在-个很长的未提交的事务,那么采用这种方式关闭数据库也需要一段时间 (该事务回滚时间)。...系统不会等待连接到数据库的所有用户退出系统,而会强行回滚当前所有的活动事务,然后断开所有的连接用户。...发出该命令后,所有正在运行的SQL语句将立即中止,所有未提交的事务将不回滚,Oracle 也不等待目前连接到数据库的用户退出系统,下-次启动数据库时需要实例恢复,因此,下一-次启动可能比平时需要更多的时间

    1.1K20

    Oracle 常用目录结构(10g)

    服务有关的文件 /dbs --存放数据库服务器端的参数文件Spfile,如spfileorcl.ora,init.ora,密码文件orapworcl等 /demo --存放数据库实例模式的脚本等 如...human_resources的相关脚本 /install --用于存储ORACLE安装后的端口号,iSQL*Plus以及Enterprise Manager Database Control启动并登录的方式等...创建新的数据库时,DBCA将创建数据库的脚本放置在这个目录 /exp --建议存储使用Export使用程序或Oracle Data Pump创建的数据库导出文件的目录 /pfile --初始化参数文件...它包含系统中每个数据库的子目录。 该目录可用于存储与恢复有关的文件,如控制文件、联机重做日志副本、归档日志、闪回日志以及Oracle数据库恢复管理器(RMAN)备份等。...更多参考 Oracle 数据库实例启动关闭过程 Oracle 10g SGA 的自动化管理 使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例 Oracle实例和Oracle数据库

    1.3K20

    Oracle实例和Oracle数据库(Oracle体系结构)

    下面简要说明一下SQL实例、数据库,更多的是讲 述Oracle下的实例及数据库。 一、SQL server中的实例与数据库 1.SQL中的实例指的是一个SQL server服务器上仅有一个缺省实例。...如PMON将回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源。...清除失败的进程 回滚事务 释放锁 释放其他资源 SMON(系统监控进程) 检查数据库的一致性,当启动失败时完成灾难恢复等 实列恢复时,前滚所有重做日志中的文件,打开数据库为了用户能访问,回滚未提交的事务...,释放临时表空间 清除临时空间,聚结空闲空间,从不可用的文件中恢复事务的活动,OPS中失败节点的实例恢复 清除OBJ$表 缩减回滚段 使回滚段脱机 LGWr(日志写进程) 将重做日志缓冲区中的更改写入在线重做日志文件...,如内存,控制文件,进程数等,在数据库启动的时候加载(Nomount时加载) 6.其他文件 密码文件:用于Oracle 的具有sysdba权限用户的认证.

    2.8K20

    Oracle-Java JDBC 连接超时之后的认知纠正

    通过文章的测试JAVA程序,可以表明,JDBC中的语句超时,只会使当前的SQL中止运行,但如果是在一个事务中,之前运行的DML语句并没有提交。...由于数据被更新而没有及时回滚,可能会导致应用重新发起相同的事务时被锁住。如果被锁住的会话仍然有超时中止的机制,那么这种情况就会越来越严重。...今天正好有国产数据库工程师师给我们培训的时候也提到了这一点,表示:“JDBC连接ORACLE,在断开连接时会把未提交的事务进行提交,在Oracle 23ai版本进行了修复,其它数据库都是回滚事务。”  ...环境准备Oracle 版本SQL*Plus: Release 11.2.0.3.0 Production on Tue Nov 19 21:32:31 2024安装JAVA[root@db ~]$ mkdir...;2、通过验证Oracle与Mysql 的退出,Oracle 确实在关闭自动提交后,退出仍然会提交;3、程序在做异常处理时一定要加rollback;4、重要的事情说三遍:细节、细节、细节,不能忽略,不能有惯性思维

    13910

    SQL 质量管理 | 一键数据回滚,让 SQL 变更更有保障

    现在,使用者可以利用平台的备份恢复功能,一键回滚变更 SQL,降低故障恢复时间的同时,有效避免人工回滚可能带来的额外风险,让数据库运维更加从容。 1....一键回滚,提升运维效率 当 SQL 变更出现意外或需要紧急撤回时,使用者无需再手动编写回滚语句,只需轻点回滚按钮就能创建恢复工单。...(基于回滚策略回滚,无需手动编写回滚 SQL) (支持选择回滚 SQL 范围) (一键生成回滚工单) 版本日志 社区版 Bug 修复 [#2774] 修复 Oracle Top SQL 智能扫描指标总执行时间为.../sqle-ee/issues/2012] 默认审核规则模板中关闭性能开销较大的规则 Bug 修复 [actiontech/sqle-ee/issues/1824] 修复对 MySQL 智能扫描立即审核时...PG、Oracle 等主流数据源类型也有 SQL 质量管理需求,欢迎体验。

    8300
    领券