相克军_Oracle体系_随堂笔记011-事物

数据库主要实现的功能无非是以下三点:

①数据的一致性,

②数据的安全,

③数据的优化。

事物主要影响数据的一致性。

1、事务的基本概念
    一组DML语句    insert、delete、update
    COMMIT;
    ROLLBACK;
    SAVEPOINT <savepoint_name>
    ROLLBACK TO [SAVEPOINT] <savepoint_name>

2、隐式提交和回滚
    DDL
    退出
        异常退出
        正常退出

正常退出,会隐含提交。

做的任何DML操作都要显示的提交或者回滚。不要让Oracle隐式的提交或者回滚。

3、事务的含义

        1.原子性(Atomicity)

事务的原子性是指事务中包含的所有操作要么都做,要么都不做,保证数据库是一致的。
例如:A帐户向B帐户划账1000,则先将A减少1000,再将B增加1000,这两个动作要么都提交,要么都回退,不可能发生一个有效、        一个无效的情况。
 
        2.一致性(Consistency)

一致性是指数据库在事务操作前和事务处理后,其中的数据必须都满足业务规则约束。
例如:A、B帐户的总金额在转账前和转帐后必须一致,其中的不一致必须是短暂的,在事务提交前才会出现的。
再如:约定B帐户不能多于1000元,则A转出1000成功,B转入1000失败,最终由原子性得到——整个事务回滚
 
        3.隔离性(Isolation)

隔离性是数据库允许多个并发事务同时对数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不        一致。
例如:在A、B之间转帐时,C同时向A转帐,若同时进行则A、B之间的一致性不能得到满足。所以在A、B事务执行过程中,其他事务        不能访问(修改)当前相关的数值。
 
        4.持久性(Durability)

持久性表示为:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
在提交之前如果系统故障,则所有信息全部丢失。提交之后数据存放在磁盘中,是永久性的。

4、事务的隔离级别

    alter user hr account unlock identified by hr;
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
    commit;
    SET TRANSACTION ISOLATION LEVEL READ COMMITED;
    SET TRANSACTION READ ONLY;
    SET TRANSACTION READ WRITE;

select xidusn,ubablk,ubafil from v$transaction;

相克军_Oracle体系_随堂笔记011-事物,布布扣,bubuko.com

时间: 2024-12-21 07:12:11

相克军_Oracle体系_随堂笔记011-事物的相关文章

相克军_Oracle体系_随堂笔记016-参数文件及数据库的启动和关闭

参数文件: spfile<SID>.ora    动态参数文件,是二进制文件,9i以后引入并建议使用 init<SID>.ora    静态参数文件,是文本文件 动态参数,部分参数可以动态修改.建议9i以后就使用spfile. 数据库启动三个阶段: nomount(根据参数文件配置参数启动实例) mount(根据参数文件中记录的控制文件位置打开控制文件) open(根据控制文件信息打开数据文件,redo日志文件,open数据库) 注:nomount之前就可以根据pfile创建spf

相克军_Oracle体系_随堂笔记010-SCN

1.SCN的意义?system change number 时间    先后.新旧 select dbms_flashback.get_system_change_number, SCN_TO_TIMESTAMP(dbms_flashback.get_system_change_number) from dual; SCN号,为了保证数据的一致性: 2.常见的SCN  2.1控制文件的三个SCN        系统SCN select checkpoint_change# from v$data

相克军_Oracle体系_随堂笔记003-体系概述

1.进程结构图 对Oracle生产库来讲,服务器进程(可以简单理解是前台进程)的数量远远大于后台进程.因为一个用户进程对应了一个服务器进程. 而且后台进程一般出问题几率不大,所以学习重点也是服务器进程和PGA的关系(容易出问题). 2.Oracle 实例管理 6大共享池,5大后台进程,3大文件 控制文件:记录了各文件存放的位置以及当前的运行状态: 数据文件:存放数据: 重做日志文件:对数据文件所有的修改记录: 补充知识点: (1)实际生产环境中可以多个实例(一般是2个,4个,8个)对应一个数据库

相克军_Oracle体系_随堂笔记015-网络原理及配置

oracle网络没有负载, 没有负载的就不容易出问题.相对很简单的. 1.监听的动态注册: PMON 注册监听,或者 alter system register; 强制PMON抓紧注册. 都属于动态注册~ 对应的listener.ora文件配置信息: LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.159)(PORT = 1521))) (DESCRIPTION

相克军_Oracle体系_随堂笔记014-锁 latch,lock

1.Oracle锁类型     锁的作用     latch锁:chain,链     LOCK锁         排他锁(X)         共享锁(S) 2.行级锁:DML语句     事务锁TX         锁的结构         事务锁的加锁和解锁过程     只有排他锁         不影响读(CR块) 3.表级锁:TM     行级排他锁(Row exclusive)RX锁         当我们进行DML时,会自动在被更新的表上添加RX锁,可以执行LOCK命令显式的在表上

相克军_Oracle体系_随堂笔记009-检查点队列

1.检查点队列 checkpoint queue RBA 日志块地址 redo block address LRBA 第一次被脏的地址 HRBA 最近一次被脏的地址 on disk rba 重做日志(current redo log)中最后一条日志的地址 数据块里有两个地址,LRBA,HRBA. checkpoint queue 按照脏块第一次脏的时间链起来. checkpoint queue就是按照数据块的LRBA地址链起来的. 2.CKPT进程    每隔3秒钟触发一次        记录检

相克军_Oracle体系_随堂笔记012-undo

undo表空间中undo段是自动生成的,oracle自动使用undo表空间的undo段. 作为高级DBA,需要了解Oracle是如何使用undo段的.这样出了性能问题才能够解决. 1.Undo表空间及管理方式 show parameter undo_tablespace show parameter undo Undo段 select * from v$rollname; select SEGMENT_NAME,BLOCKS,EXTENTS from dba_segments where SEG

相克军_Oracle体系_随堂笔记013-字符集

linux环境下: [[email protected] ~]# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" …… windows环境下: C:\Users\Martin>chcp 活动代码页: 936 字符集其实就是“字符”和“编码”的一张对照表, 数据库安装过程中,会选择确认下面两个字符集: 1.数据库字符集:数据库需要存储多国语言选择AL32UTF8,只有中英文选择ZHS16GBK 2.国家字符集 一般都选用AL16UTF1

相克军_Oracle体系_随堂笔记006-日志原理

简单来说,学习Oracle数据库就两个目标: 保证数据库数据的一致性: 提高数据库的性能(这个和日志没关系). 日志的功能: 只是保证数据库数据的一致性: 1.Oracle日志原理    史记讲解法    日志记录方式2.实际日志产生过程3.归档模式 alter database archivelog ARCHIVE LOG LIST SELECT log_mode FROM v$database alter database noarchivelog ALTER SYSTEM ARCHIVE