[20190530]DISABLE TABLE LOCK(10g).txt

来源:这里教程网 时间:2026-03-03 13:47:45 作者:

[20190530]DISABLE TABLE LOCK(10g).txt --//如果禁止table lock时,一些ddl操作会被禁止.但是我有点吃惊的是增加字段不受限制. --//链接:http://blog.itpub.net/267265/viewspace-2645161/=>[20190522]DISABLE TABLE LOCK.txt  --//昨天kerrycode给我反馈,10g和11g某个版本增加1列会遇到ORA-00069错误. --//在http://www.itpub.net/thread-2117203-1-1.html提问,失望竟然没人解答与测试. --//今天在10g下重复测试: 1.环境: SCOTT@test> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- ---------------------------------------------------------------- x86_64/Linux 2.4.xx            10.2.0.4.0     Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi SCOTT@test> create table t as select rownum id from dual ; Table created. SCOTT@test> alter table t disable table lock; Table altered. 2.测试: SCOTT@test> truncate table t; truncate table t                * ERROR at line 1: ORA-00069: cannot acquire lock -- table locks disabled for T SCOTT@test> alter table t add v1 varchar2(10); alter table t add v1 varchar2(10) * ERROR at line 1: ORA-00069: cannot acquire lock -- table locks disabled for T --//很明显10g在设置disable table lock的情况下,无法增加1列.在11g下重复看看. 3.环境: SCOTT@book> @ ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SCOTT@book> create table t as select rownum id from dual ; Table created. SCOTT@book> alter table t disable table lock; Table altered. SCOTT@book> alter table t add v1 varchar2(10); Table altered. --//11.2.0.4下确实可以不是我的测试问题.并且在有事务的情况下一样可以增加字段. --//打开session 2: SCOTT@book> insert into t values (2,'a'); 1 row created. SCOTT@book> @ viewlock    SID    SERIAL# USERNAME   OSUSER     MACHINE    MODULE       LOCK_TYPE       MODE_HELD  MODE_REQUE LOCK_ID1   LOCK_ID2   OWNER  OBJECT_TYP OBJECT_NAME BLOCK LOCKWAIT ------ ---------- ---------- ---------- ---------- ------------ --------------- ---------- ---------- ---------- ---------- ------ ---------- ----------- ----- --------     44       4845 SCOTT      oracle     gxqyydg4   SQL*Plus     TX Transaction  Exclusive  None       655390     5246287                                  No --//打开session 1: SCOTT@book> alter table t add v2 varchar2(10); Table altered. SCOTT@book> @ viewlock    SID    SERIAL# USERNAME   OSUSER     MACHINE    MODULE       LOCK_TYPE       MODE_HELD  MODE_REQUE LOCK_ID1   LOCK_ID2   OWNER  OBJECT_TYP OBJECT_NAME BLOCK LOCKWAIT ------ ---------- ---------- ---------- ---------- ------------ --------------- ---------- ---------- ---------- ---------- ------ ---------- ----------- ----- --------     44       4845 SCOTT      oracle     gxqyydg4   SQL*Plus     TX Transaction  Exclusive  None       655390     5246287                                  No --//看来这个是一个bug在11.2.0.4,我的测试没有问题.

相关推荐