OCA读书笔记(9) - 管理数据同步
9.Managing Data Concurrency
描述锁机制以及oracle如何管理数据一致性
监控和解决锁冲突
管理数据的并发--管理锁
数据的不一致:
脏读
更改丢失
幻影读
脏读:
数据是指事务T2修改某一数据,并将其写回磁盘,事务T1读取同一数据后,T2由于某种原因被撤消,这时T2已修改过的数据恢复原值,T1读到的数据就与数据库中的数据不一致,则T1读到的数据就为"脏"数据,即不正确的数据。
幻影读:事务1按一定条件从数据库中读取某些数据记录后,事务2插入了一些符合事务1检索条件的新记录,当事务1再次按相同条件读取数据时,发现多了一些记录。
阻止多个会话在相同时间对相同数据进行更改。
在最低可能级别自动获取,在行上加锁,不会在块上加锁。Rac分布锁可以锁定数据块。
DML语句
行上加排他锁
表上加行级排他锁(共享锁)
排他锁不兼容,共享锁兼容。
共享锁保护表结构,不能被删除或者增加列。
session 1
conn scott/tiger;
update emp set sal=sal+100 where empno=7788;
session 2
conn scott/tiger;
update emp set sal=sal+100 where empno=7566;
update emp set sal=sal+100 where empno=7788;等到session1 commit后才能执行。
drop table emp; --也不能执行,由于共享锁
手动加锁
lock table emp in exclusive mode;
session 2
conn scott/tiger;
update emp set sal=sal+100 where empno=7566;--不能进行
session 1
rollback;
发现和解决锁冲突:
SQL> select SID, SERIAL#, USERNAME
from V$SESSION where SID in
(select BLOCKING_SESSION from V$SESSION)
SQL> alter system kill session '144,8982' immediate;
死锁
conn scott/tiger;
create table d as select * from dept;
create table e as select * from emp;
update e set sal=sal+100;
update d set
session 2;
delete e;
delete d;
锁被持有直到事务结束(通常为COMMIT和ROLLBACK操作)
Transaction 1:
SQL> update emp set sal=sal+100
2 where empno=7369;
Transaction 2:
SQL> update emp set sal=sal*1.1
2 where empno=7369;
锁机制默认为细粒度,行级锁定模式。不同事务可以更新同一表中的不同行,彼此不会干扰。
如果必要,oracle数据库支持在更高级别进行手动锁定。
SQL> LOCK TABLE emp IN EXCLUSIVE MODE;
锁定模式
EXCLUSIVE:最严格的锁定模式
ROW SHARE:允许同步访问锁定的表,但是禁止其他会话锁定表以排他访问。
ROW EXCLUSIVE:与ROW SHARE相同,但是同样禁止以SHARE模式锁定。该锁定模式允许多个读会话但是近允许一个写会话。DML默认获取该模式的锁。
SHARE:允许同步查询,但是禁止更新锁定的表。创建索引时自动获取该模式的锁。允许多个读会话但是不允许写会话。
SHARE ROW EXCLUSIVE:允许查询整个表,同时允许其它会话查询表中的行,但是不允许更新或以SHARE模式锁定表。
手动锁定需要等待所有会话释放锁。可以使用NOWAIT选项强制立即获取控制权
SQL> LOCK TABLE hr.employees IN SHARE MODE NOWAIT
入队机制
锁定请求自动入队,前一个会话完成之后,下一个会话获取锁。已经获取锁的会话可以改变会话模式而不用重新排队。
锁冲突的可能原因
1.不提交的改变
2.长时间运行的事务
3.不必要的高级别的锁定
解决锁冲突
1.提交或者回滚持有锁的会话
2.终止持有锁的会话
SQL> select SID, SERIAL#, USERNAME from V$SESSION where SID in (select BLOCKING_SESSION from V$SESSION)
SQL> alter system kill session '144,8982' immediate; ('SID,SERIAL#')
死锁
Transaction 1:
setp1. SQL> update emp set sal=sal+100 where empno=7369;
step3. SQL> update emp set sal=sal+100 where empno=7499;
Transaction 2:
step2. SQL> update emp set sal=sal+100 where empno=7499;
step4. SQL> update emp set sal=sal*1.1 where empno=7369;
转载于:https://www.cnblogs.com/thlzhf/p/3382447.html
OCA读书笔记(9) - 管理数据同步相关推荐
- OCA读书笔记(8) - 管理用户安全
创建用户: create user +用户 default tablespace + 表空间名 identified + 验证方式 SQL> create user easthome profi ...
- 大数据之路读书笔记-09阿里巴巴数据整合及管理体系
大数据之路读书笔记-09阿里巴巴数据整合及管理体系 面对爆炸式增长的数据,如何建设高效的数据模型和体系,对这些数据进行有序和有结构地分类组织和存储,避免重复建设和数据不一致性,保证数据的规范性, 直是 ...
- 5000字 大数据时代读书笔记_大数据时代读书笔记
大数据时代读书笔记 [篇一:大数据时代读书笔记] 大数据时代 -- 读书笔记 一.引论 1. 大数据时代的三个转变: 1. 可以分析更多的数据,处理和某个现象相关的所有数据,而不是 随机采样 2. 不 ...
- linux运维笔记:Rsync数据同步工具
linux运维笔记:Rsync数据同步工具 1-Rsync简介 Rsync英文全称是Remote synchronization,Rsync具有可以使本地和远程两台主机之间的数据快速复制和同步镜像.远 ...
- 关于数据治理的读书笔记 - 什么是数据治理?
<关于数据治理的读书笔记 - 数据治理.数据管理和数据管控的理解>我们了解了有关数据治理.数据管理和数据管控,这几个名词之间的区别和联系,回到数据治理的话题上,数据治理究竟是什么? 站在不 ...
- Linux实战教学笔记21:Rsync数据同步工具
原文地址:https://www.cnblogs.com/chensiqiqi/p/6514315.html 目录 第二十一节 Rsync数据同步工具 1.1 Rsync介绍 1.1.1 什么是Rsy ...
- 读书笔记之大数据计算模式
1.大数据计算模式:根据大数据的不同特征和计算特征,从多样性的大数据计算问题和需求中提炼并建立的各种高层抽象或模型,传统的并行计算方法主要从体系结构和编程语言层面定义了一些较为底层的并行计算抽象和模型 ...
- 【读书笔记】管理技巧-逆商思维,逆商:我们该如何应对坏事件_2020.07.01
[概述] 书名:逆商:我们该如何应对坏事件 作者:保罗·史托兹 日期:2020年07月01日 读书用时:1028页,8.5小时. [读书笔记] ◆ 推荐序一 逆风飞扬 >> 逆商的CORE ...
- OCA读书笔记(1) - 浏览Oracle数据库架构
Objectives: List the major architectural components of Oracle Database Explain the memory structures ...
最新文章
- Day 8 Linux 优化-补充目录结构
- rpm包 卸载php,强制删除rpm包的方法
- 深度解读:都是顶薪为什么浓眉远超卡哇伊?
- 【Python】全文3000字,Pyecharts制作可视化大屏全流程! (附代码分享)
- Linux(Centos7)安装Docker
- 如何使用PowerShell将VS Code扩展导出到另一台计算机
- 现在三十来岁的人存款大概多少?
- mysql event同步数据库_mysql 数据库Event定时任务使用详解(Navicat 及直接SQL语句创建)...
- 刪除主表中不存在記錄的從表資料
- [分享]四杂.cn中未被注册的好组合
- ensp动态路由ospf配置
- 从产品角度看人口政策和生育减少问题
- Typora+picgo+gitee图片外链失效,Typora历史笔记无法显示图片
- 这么热门的互联网行业,哪些岗位最有前途?薪资高吗?
- Hexo主题修改Next.Mist
- php+sha512+漏洞,PhpMyWind最新版本注入+后台getshell
- 【GTASA】如何解锁Locked的DFF模型
- 笔记本键盘 Fn 键 的锁定与解锁
- 解决请在微信客服端打开链接问题
- 链路聚合的手工模式和LACP模式
热门文章
- 工程介绍好处费性质_水运工程造价工程师继续教育课件上新丨海外水运工程造价编制介绍课程发布...
- 怎么彻底删除电脑上的软件_你的电脑有救了:1 个神器几个进阶方法彻底删除流氓软件!...
- 使用maven导入jar包
- 、|| 和 、| 的区别(详尽版)
- js插件 webp_(转)让浏览器支持Webp
- SRWebSocket源码浅析(上)
- VUE中使用Echarts绘制地图迁移
- React.js绑定this的5种方法
- ijkplayer iOS集成
- NPOI 导出Excel