




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 并发与恢复并发与恢复本章要点本章要点v 本章要点 1掌握事务的概念和事务的SQL语句 2了解事务隔离性,熟悉MySQL数据库的事务隔离级别及其设置 3熟悉数据库并发问题,并掌握解决办法 4了解备份和恢复的概念,掌握备份与恢复的SQL语句。引言引言v 当数据库被多个用户同时使用时,就会出现并发问题,这些问题稍不注意,就会造成严重后果;另外为了保证数据安全,防止数据丢失等问题的出现,需要定期备份数据,当数据出现问题时,可以通过数据库恢复技术还原到某个时刻。本章对并发与恢复技术两个主题进行讲解。v基础知识v (一)事务概念 事务是数据库的逻辑工作单元,也是一个操作序列。一个事务内的所有
2、操作作为一个整体执行,即所有操作要么全做,要么全不做。当事务执行过程中遇到错误或异常,则已经完成的操作需要取消,称作事务回滚。 事务是数据库中核心概念,是数据库管理数据必不可少的功能。比如银行转账业务:账户A转账1万元到账户B,这个业务分为两步:一是账户A减去1万元,二是账户B加上1万元,这两个操作就必须作为事务处理,否则就有可能出现数据错误,如在账户A减去1万元后,账户B加上1万元钱,出现了异常或故障,则会出现这种情形:账户A已经减去了1万,而账户B还没有加上一万,则客户平白损失了1万元。如果转账业务作为一个事务就可以避免这类错误:当出现异常或故障时,数据库事务回滚MySQL数据库数据库任务
3、一任务一 并发管理并发管理滚到事务开始前状态,这时账户A还没有减去1万元,这时客户只需重新转账即可。v(二)事务特性 事务作为逻辑工作单元具有四个特性:原子性、一致性、隔离性和持久性。 (1)原子性。事务必须是原子工作单元,对于数据的修改,要么全部执行,要么全都不执行。 (2)一致性。事务必须完成全部操作,事务开始时系统为一个确定的状态,完成后则成为另一个确定状态,未完成则回到事务开始状态。不允许出现未知的、不一致的状态。 (3)隔离性。事务的执行不受其他事务的执行干扰,即对并发的事务所做的修改进行控制,使各个事务之间不会出现相互干扰。 (4)持久性。事务执行对系统的影响是永久性的,后续的操作
4、和故障不影响事务的执行结果。MySQL数据库数据库v (三)事务语句 关于事务的SQL语句有三条: begin(或start) transaction:定义事务,即开始事务。 commit:提交事务,事务正常结束,提交事务的所有操作,即事务对 数据库的更新写到磁盘上。 rollback:回滚事务,事务运行过程中发生异常或故障,撤销已完成的全部操作,回滚到事务开始时的状态。v (四)并发问题 多个并发事务对数据库进行操作可能会引起三种问题: 1丢失修改 丢失修改发生在两个或多个事务同时修改同一条记录的时候,每个事 务都不知道其他事务的存在,最后的更新将覆盖其他事务所作出的修改。MySQL数据库数
5、据库v 2不可重复读 不可重复读是指一个事务读取数据后,另一个事务执行了更新操作,使得第一个事务无法再现前一次的读取结果。v 3读脏数据 读脏数据是指一个事务修改了数据,另一个事务读取同一数据后,第一个事务又撤销了更新,这时第二个事务读取的数据和数据库中的数据产生了不一致。v (五)隔离级别 隔离级别是指一个事务和其他事务的隔离程度,即数据库如何保护当前正在被其他用户或服务器请求使用的数据。MySQL数据库中的隔离级别有四种:未提交读、提交读、可重复读、串行读。v 1未提交读(read uncommitted) 未提交读不在数据库对象上放置共享锁和排它锁,因此允许读取已经被其他用户修改但尚未提
6、交的数据。MySQL数据库数据库v 2提交读(read committed) 提交读隔离级别,不允许读取其他事务尚未提交的数据,是大多数数据库的默认隔离级别。v 3可重复读(repeatbable read) 可重复读确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。可重复读是MySQL数据库的默认事务隔离级别。v 4串行读(serializable read) 串行读是事务的最高隔离级别,它会强制对事务进行排序,使之不会发生冲突。v (六)隔离级别设置 在MySQL数据库中,可以使用Set命令设置事务隔离级别,语法如下: set session transaction isolat
7、ion level 隔离级别;MySQL数据库数据库 其中隔离级别取值为:read uncommitted、read committed、repeatbable read和serializable read四个值中的一个。MySQL数据库数据库任务二任务二 数据备份与恢复数据备份与恢复v 基础知识v 一)数据库备份 数据库可能遭受破坏,为了数据安全,需要定期备份。 1MySQL数据库备份语法格式: mysqldump u用户名 p密码 数据库名 表名 文件名.sql; 数据库名是要备份的数据库名,文件名是备份文件的名称,可以加路径,如果没有路径,则默认为mysqldump文件的目录。 注意:m
8、ysqldump命令执行是在DOS窗口中进行,而不是MySQL客户端,因此不用登录MySQL数据库,但是在备份时需要提供用户名和密码。 图6-10 开始界面v 2备份多个数据库 备份多个数据库语法: mysqldump u用户名 p密码 database 数据库名1, 数据库名2, 文件名.sql;v : MySQL数据库数据库 MySQL数据库数据库v 3备份所有数据库 备份所有数据库语法: mysqldump u用户名 p密码 all-databases 文件名.sql;v (二)数据库恢复 当数据库遭受破坏时,可以将备份好的数据文件还原到数据库。 MySQL数据库还原数据语法: mysq
9、l u用户名 p密码 数据库名文件名.sql; 数据库名指要还原的数据库名,文件名是原有备份的文件名,可以带路径。MySQL数据库数据库v 实验目的 了解数据库的并发控制机制。 掌握事务控制的SQL语句。 掌握隔离级别的设置。v 实验条件 计算机(电脑) Windows 7操作系统 MySQL5.6数据库v 实验内容 1用同一个账户启动两个MySQL命令窗口,模拟两个用户并发操作 。 2在第一个窗口中输入下列语句MySQL数据库数据库实验七实验七 并发控制实验并发控制实验 Start transaction; update student set age=20 where sno=150312
10、101;v3在第二个窗口中输入下列语句: update student set sex=女 where sno=150312101; 此时,该语句不能立即执行,因为要更新的行已被第一个用户封锁了,该用户必须等待。v4在第一个窗口中输入SQL语句: commit; 此时,第一个用户提交了他的事务,他就释放了在sno=150312101行上的锁,第二个用户才能获得在该行上的锁,得以继续执行。v5在第一个窗口中设置隔离级别为未提交读v6在第二个窗口修改输入MySQL数据库数据库 start transaction; update student set name=魏云云 where sno=150312101;v7在第一个窗口查看学号为150312101的信息。MySQL数据库数据库实验八实验八 备份与恢复实验备份与恢复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西城市职业大学病理与病理生理期末模拟试题(A卷)附答案详解
- 应急安全培训讲师内容课件
- 2025计算机一级检测卷及完整答案详解(名校卷)
- 疫苗在癌症预防中作用
- 漫画分成合同(标准版)
- 2024-2025学年度施工员能力检测试卷及答案详解(易错题)
- 2025年快消品行业包装材料绿色创新趋势深度报告
- 2025年生物质能源在智能微网分布式能源系统中的应用优化与创新报告
- 上海市张江、建平中学2024-2025学年九年级上学期期中联考语文试题(无答案)
- 幽门螺杆菌课件胡伏莲
- 歌曲try的歌词8篇
- 完整word版《大中国》歌词-
- 三年级走美杯试题汇总
- 生产件批准程序PPAP学员版
- 2022年03月北京肿瘤医院公开招聘笔试参考题库含答案解析
- NB/T 10728-2021煤矿膏体充填留巷开采技术规范
- GB/T 3452.3-2005液压气动用O形橡胶密封圈沟槽尺寸
- 电阻应变式传感器及其应用传感器原理及其应用课件
- 项目代建大纲
- 民航安全安全检查员
- 中级职称专业技术人员考核登记表(最近三个年度)
评论
0/150
提交评论