返回SQLITE_BUSY主要有以下几种情况:
1。当有写 *** 作时,其他读 *** 作会被驳回
2。当有写 *** 作时,其他写 *** 作会被驳回
3。当开启事务时,在提交事务之前,其他写 *** 作会被驳回
4。当开启事务时,在提交事务之前,其他事务请求会被驳回
5。当有读 *** 作时,其他写 *** 作会被驳回
6。读 *** 作之间能够并发执行
基于以上讨论,可以看出这是一个典型的读者写者问题,读 *** 作要能够共享,写 *** 作要互斥,读写之间也要互斥
可以设计如下的方案解决并发 *** 作数据库被锁定的问题,同时保证读 *** 作能够保持最大并发
1。采用互斥锁控制数据库写 *** 作
2。只有拥有互斥锁的线程才能够 *** 作数据库
3。写 *** 作必须独立拥有互斥锁
4。读 *** 作必须能够共享互斥锁,即在第一次读取的时候获取互斥锁,最后一次读取的时候释放互斥锁
RMAN>拷贝:
[oracle@dg1 ~]$ scp xff* dg2:/home/oracle/
xff_3roga0h6_1_1 100% 41MB 4.6MB/s 00:09
xff_3soga0o4_1_1 100% 9792KB 3.2MB/s 00:03
xff_ctl.bak 100% 9792KB 3.2MB/s 00:03
[oracle@dg1 ~]$
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)