求解释:悲观锁定,乐观锁定!

求解释:悲观锁定,乐观锁定!,第1张

当一个用户锁住数据库中的某个对象时,其他用户就不能再访问该对象。加锁对并发访问的影响体现在锁的粒度上。比如,放在一个表上的锁限制对整个表的并发访问;放在数据页上的锁限制了对整个数据页的访问;放在行上的锁只限制对该行的并发访问。可见行锁粒度最小,并发访问最好,页锁粒度最大,表锁介于2者之间。锁有两种:悲观锁和乐观锁。悲观锁假定其他用户企图访问或者改变你正在访问、更改的对象的概率是很高的,因此在悲观锁的环境中,在你开始改变此对象之前就将该对象锁住,并且直到你提交了所作的更改之后才释放锁。悲观的缺陷是不论是页锁还是行锁,加锁的时间可能会很长,这样可能会长时间的限制其他用户的访问,也就是说悲观锁的并发访问性不好。与悲观锁相反,乐观锁则认为其他用户企图改变你正在更改的对象的概率是很小的,因此乐观锁直到你准备提交所作的更改时才将对象锁住,当你读取以及改变该对象时并不加锁。可见乐观锁加锁的时间要比悲观锁短,乐观锁可以用较大的锁粒度获得较好的并发访问性能。但是如果第二个用户恰好在第一个用户提交更改之前读取了该对象,那么当他完成了自己的更改进行提交时,数据库就会发现该对象已经变化了,这样,第二个用户不得不重新读取该对象并作出更改。这说明在乐观锁环境中,会增加并发用户读取对象的次数。

从数据库厂商的角度看,使用乐观的页锁是比较好的,尤其在影响很多行的批量 *** 作中可以放比较少的锁,从而降低对资源的需求提高数据库的性能。再考虑聚集索引。在数据库中记录是按照聚集索引的物理顺序存放的。如果使用页锁,当两个用户同时访问更改位于同一数据页上的相邻两行时,其中一个用户必须等待另一个用户释放锁,这会明显地降低系统的性能。interbase和大多数关系数据库一样,采用的是乐观锁,而且读锁是共享的,写锁是排他的。可以在一个读锁上再放置读锁,但不能再放置写锁;你不能在写锁上再放置任何锁。锁是目前解决多用户并发访问的有效手段

解决方法:如果你根据系统的提示 *** 作,试图使用组件服务管理工具修改此安全权限是无法奏效的。有效方法是在注册表中修改相关键值,运行注册后,定位于“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{6FE54E0E-009F-4E3D-A830-EDFA71E1F306}”,再查看右侧视图,记住“AppID”对应数值数据“{27AF75ED-20D9-11D1-B1CE-00805FC1270E}”

此后,打开“组件服务”,依次选择“组件服务”→“计算机”→“我的电脑”→“DCOM配置”,点击菜单栏“查看”→“详细信息”,再在右侧视图中找到ID为“{27AF75ED-20D9-11D1-B1CE-00805FC1270E}”的应用程序“netman”,用鼠标右键单击,选择“属性”,在d出窗口中切换到“安全”标签页,在“启动和激活权限”项目中点击“编辑”按钮,然后在d出的“启动权限”对话框中添加“NETWORK SERVICE”用户,设置其权限为允许本地启动和激活。确认 *** 作后,系统就不会再显示DCOM出错了。

1、在做Oracle监听程序测试时,发现帐户已经被锁定。

2、在数据库安装电脑上,点击开始打开运行窗口。

3、在运行窗口输入CMD,调出命令提示符界面。

3、在命令提示符下面,用管理员身份登入到数据库sqlplus / as sysdba。

4、输入解锁命令alter user Scott account unlock后回车。

5、看见用户已更改的字样,表示命令已成功执行。

6、再切换到监听程序验证,原来的ora-28000帐户被锁定的提示已经不存在了。用户解锁成功。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10018960.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存