- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
法一:把相关数据库的.mdf格式文件和.ldf格式文件拷贝下来: 拷贝数据库 附加数据库: 附加数据库: 法二:备份数据库 法二:备份数据库 拿到bak文件的人,在自己的SSMS中新建一个空数据库,和bak这个名字相同 法三:生成数据库脚本 法三:生成数据库脚本 法三:生成数据库脚本 会生成一个.sql文件 最后交给我的: 解决方案:使用信号量Sem,以及P、V原语实现互斥: Sem初始值 = 1,(若Sem 0, 表示等待使用临界区的事务有Sem个); 任何一个事务想进入临界区,必须先做P原语; 任何一个事务做完了离开临界区之前,必须先做V原语; P( Sem ) { Sem = Sem – 1; if ( Sem = 0) {事务继续执行;} else {将事务阻塞放入等待队列;} } P原语: V( Sem ) { Sem = Sem + 1; if ( Sem 0) {事务继续执行;} else {从等待队列中取出第一个事务放入 就绪队列;} } V原语: 例子:假设事务Pa、Pb互斥访问临界区:Sem初始为1 Pa: P( Sem ); …a… V( Sem ); Pb: P( Sem ); …b… V( Sem ); 起初Pa首先抢占临界区:P( Sem ) ? Sem = 0 ? ….a…. Pb访问临界区: P( Sem ) ? Sem = -1 ? Pb进入等待队列 Pa继续执行: V( Sem ) ? Sem = 0 ? 从等待队列中取出Pb Pb: ….b…. Pb: V( Sem ) ? Sem = 1 ? 继续执行Pb (在Pb执行过程中没有其他进程来访问临界区) DBMS提供的锁,主要有以下三种: 排它锁(X锁); 共享锁(S锁); 意向锁(IS锁、IX锁、ISX锁); 共享锁(S锁):一旦挂上S锁,则: 允许其他事务读取同一种数据,但不能修改该数据,(即,同一个门上可以挂多把S锁); 不允许修改该数据的事务访问数据; 当读取数据的事务读完数据之后,立即释放所占用的资源; *,一般地,当使用SELECT 语句访问数据时,系统自动对所访问的数据挂上S锁; 排他锁(X锁):一旦某个数据被挂上X锁,则: 其他事务都不能在该数据上再挂X锁; 其他事务也不能在该数据上放S锁。即,不允许可以产生共享锁的事务访问这些资源; 只有当产生X锁的事务结束之后,该数据才能被其他事务使用; *,对于那些修改数据的事务,例如,使用INSERT、UPDATE、DELETE语句,系统自动在所修改的事务上放置排他锁; 意向锁(I锁): 如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁; 对任一结点加锁时,必须先对它的上层结点加意向锁; 例如:对任一元组加锁时,必须先对它所在的关系加意向锁; 于是,事务T要对关系R1加 X锁时,系统只要检查根结点数据库和关系R1是否己加了不相容的锁,而不再需要搜索和检查尺中的每一个元组是否加了X锁; 意向锁(I锁): 意向排他锁(IX锁):对一个数据对象加 IX锁,表示它的后裔结点拟(意向)加 X锁。例如,要对某个元组加 X锁,则要首先对关系和数据库加 IX锁; 意向共享锁(IS锁):对一个数据对象加IS锁,表示它的后裔结点拟(意向)加 S锁。例如,要对某个元组加 S锁,则要首先对关系和数据库加 IS锁; 意向共享排他锁(SIX锁):对一个数据对象加 SIX锁,表示对它加 S锁,再加IX锁,即 ISX=S+IX。例如对某个表加 ISX锁,则表示该事务要读整个表(所以要对该表加 S锁),同时会更新个别元组(所以要对该表加 IX锁); 之前提到的一个加锁会带来的问题(活锁): 5.4 死锁问题 While( 1 ) { if ( key[S] = = 1) { key[S] = 0; ……….. key[S] = 1; } } 进程Pa: While( 1 ) { if ( key[S] = = 1) { key[S] = 0; ……….. key[S] = 1; } } 进程Pb: 另一种问题---死锁: T1 T2 ① LOCK R ? ② ………... ? ③ LOCK P ? ④ WA
文档评论(0)