--顺序事务
--设置顺序事务既可以确保用户取得特定时间点的数据,又可以执行DML语句
--会话A
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
select employee_id,first_name,last_name,email from employees where first_name='zou';
--会话B
update employees set last_name='2' where employee_id=2;
--会话A
select employee_id,first_name,last_name,email from employees where first_name='zou';
update employees set email='zou2@foxmail.com' where employee_id=2;
这个时候抛出异常:
ORA-08177 无法连续访问此事务处理
ORACLE: ORA-08177: can't serialize access for this transaction
Q:When I configure SERIALIZABLE isolation level for the channels, I frequently get errors like ORA-08177:Can't serializa access for this transaction. How do I resolve this?
A: Answer for this is best answered by Oracle DB experts. The following is written in Oracle documentation.Oracle database uses control information stored in the data block that indicates which rows in the block contain committed and uncommitted changes. In a sense, the block contains a recent history of transactions that affected each row in the block. The amount of history that is retained is controlled by the INITRANS parameter of CREATE TABLE and ALTER TABLE. Under some circumstances, Oracle can have insufficient history information to determine whether a row has been updated by a "too recent" transaction. This can occur when many transactions concurrently modify the same data block, or do so in a very short period. You can avoid this situation by setting higher values of INITRANS for tables that will experience many transactions updating the same blocks. Doing so enables Oracle to allocate sufficient storage in each block to record the history of recent transactions that accessed the block. One of the solutions for this problem is set higher value(say 5) in INITRANS to table that throws the ORA-08177 errors. If table name is 'TEST', then you may use the following command: ALTER TABLE TEST INITRANS 5;
分享到:
相关推荐
使用工具IMPDP导入数据时ORA-39002、ORA-39070错误排查。使用工具IMPDP导入数据时ORA-39002、ORA-39070错误排查 使用工具IMPDP导入数据时ORA-39002、ORA-39070错误排查
oracle数据库ora-01152和ora-01110的解决办法
ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法ora-00604 错误 解决 方法
Oracle 11gr2连Oracle 19c 报ORA-28040 ORA-01017解决方法
Drop goldengate用户时,报ORA-00604 ORA-20782 ORA-06512错误
oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht
oracle启动失败,ORA-00702报错,windows,linux系统下解决办法
ORACLE ORA-00132 ORA-00214
如何解决ORACLE11G里面ORA-24247 网络访问被访问控制列表 (ACL) 拒绝 错误,获取ORACLE 11G(10g 以前没事)主机IP和实例名的时候,出现的错误
在运行查询SELECT * FROM V$SESSION 会出现ORA-29275:部分多字节字符的错误,这是什么原因开始我不得其解,网上也没有介绍什么好办法。本文给出答案。
客户端进行连接的时候,系统不定期出现ora-12520,ora-12516的连接问题, 问题解决方案建议: 1、增加process和session的连接数。 2、检查连接的应用,是不是有没有释放的连接。 3、将修改参数local_listener中的vip为...
Oracle_ORA-12518故障_处理,希望在此与大家分享,能够在实际的工作中提高解决问题的能力
离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法,在解决ORA-01033的过程中,又出现ORA-01145 * 第 1 行出现错误: ORA-01145: 除非启用了介质恢复, 否则不允许立即脱机 接着的解决步骤
当任何试图分配一个大的连续的共享池中的内存失败,Oracle首先会刷新掉共享池中所有目前不在使用的对象,然后使得内存块被合并在一起。如果内存块仍然不够满足需求,那么就会出现ORA- 04031错误。这些错误同样可能...
oracle数据库优化之后,报错报错“ora-00838”的处理方法
ORA-12541 TNSno listener 的解决方案 ORA-12541 TNSno listener 的解决方案
ora-00845
OGG之ORA-01403案例,包括这个案例所遇到的错误详解,对使用的参数进行了详细的解说
win 8 升级 win 10 后,oracle 11g 无法启动及客户端连接,命令行sqlplus登录,startup 时报 ORA-00119 和 ORA-00132 的错误。 1. sqlplus /nolog 2. conn / as sysdba 3. startup 报错: ORA-00119 和 ORA-00132