Oracle数据并发性和一致性保护
2007-04-18 08:03
197 查看
数据并发性意味着许多用户可以同时访问数据。
数据一致性意味着每个用户看到的数据具有一致性,包括当前用户事务和其他用户事务对数据的改变。
数据并发性和一致性保护是为了防止并行事物情况可能出现的三种现象:
脏读(dirty read):事务读取了其他事务还没有提交的修改;
不可重复读(nonrepeatable read):事务读取先前曾读取过的数据,发现其他的已提交事务修改或删除了要读取的数据;
假象读(phantom read):事务再次执行一个查询,发现其他已提交事务插入了新的满足当前查询条件的数据。
针对以上三种现象,SQL92标准指定了4种隔离制度,这4种隔离方式一种比一种严格。
Read uncommitted:允许脏读、不可重复读和幻象读;
Read committed:不允许脏读,允许不可重复读和幻象读;
Repeatable read:不允许脏读、不可重复读,允许幻象读;
Serializable:不允许脏读、不可重复读和幻象读。
Oracle提供Read Committed和Serializable隔离等级,还提供了一种额外的只读模式。其中默认采用Read Committed模式。 Read Committed提供语句级读一致性,Serializable提供事务级读一致性。Read Committed等级下,仍然可能产生不可重复读和假象读的情况。Serializable等级下则不会。
隔离等级的实质:当Oracle开始一个查询时,只会读取SCN小于当前查询SCN的记录,如果发现数据文件中记录的SCN比查询的SCN大,则Oracle会从回滚段中找到数据在查询发生之前的镜像。
除了隔离等级之外,oracle还提供锁来进行数据的并发和一致性保护,但一般不需要了解。
相关文章推荐
- 数据并发性和一致性介绍--Data Concurrency and Consistency
- Oracle数据字典一致性鉴别
- <转>Oracle Data Guard 理论知识2-数据保护模式
- 关于oracle数据读一致性的理解
- Oracle数据并发和一致性(English)
- 11gr2 oracle concepts(翻译) --第九章 数据并发和一致性
- 干货!Oracle解密“零丢失”的数据保护
- Oracle维护数据一致性之实例
- 应用了Oracle 10.2.0.4 DataGuard技术,透过最大可用性形式进展数据保护
- oracle 11g DataGuard 数据保护模式切换
- Oracle hcheck脚本检查 数据字典一致性 说明
- oracle数据字典一致性检查
- 深入浅出Oracle数据读取一致性和事务表
- Oracle 数据恢复SQL
- Oracle中通过distinct为什么过滤不了重复的数据?
- Oracle安全数据系统架构全接触(2)
- ODI如何通过logminer技术从oracle 数据库中抽取增量数据(二)
- Oracle数据的导入导出
- 利用MySQL加密函数保护Web网站敏感数据
- ORACLE 常见的数据类型