一、事务故障
某个事务在运行过程中由于种种原因未运行至正常终止点,事务故障的常见原因,输入数据有误
运算溢出,违反了某些完整性限制发生锁死。
二、系统故障
由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常方式终止。
发生系统故障时,内存中数据库缓冲区的信息全部丢失,但存储在外部存储设备上的数据未受影响 。
三、介质故障
硬件故障使存储在外存中的数据部分丢失或全部丢失 ,介质故障比前两类故障的可能性小得多,但破坏性最大。
将图贴出来 ???
死锁产生有4个必要条件1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。4)环路等待条件 解锁,,只需破解其中的一个条件就可
处理锁死优先考虑的顺序:
先预防和避免,再检测和恢复。
数据库经常锁死的原因:
数据库是一个多用户使用的共享资源,当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发 *** 作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。
在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严重影响应用的正常执行。
在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。
加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。
出现原因:
用户A查询一条纪录,然后修改该条纪录;这时用户B修改该条纪录,这时用户A的事务里锁的性质由查询的共享锁企图上升到独占锁。
而用户B里的独占锁由于A有共享锁存在所以必须等A释放掉共享锁,而A由于B的独占锁而无法上升的独占锁也就不可能释放共享锁,于是出现了死锁。这种死锁由于比较隐蔽,但在稍大点的项目中经常发生。
以上就是关于数据库常见故障有哪些全部的内容,包括:数据库常见故障有哪些、程序问题导致网站打不开怎么解决 打开网站时出现DB:Error是什么原因 数据库死锁是什么原因、处理锁死优先考虑的顺序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)