Oracle 12.2新特性----在线move表
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,Oracle12.2版本之前,对表做move操作时会对表加exclusive锁,表上无法执行DML操作。虽然move操作有ONLINE子句,但只适用于IOT表,不适用于堆表。这就意味着在对表做move
千家信息网最后更新 2025年11月07日Oracle 12.2新特性----在线move表
Oracle12.2版本之前,对表做move操作时会对表加exclusive锁,表上无法执行DML操作。虽然move操作有ONLINE子句,但只适用于IOT表,不适用于堆表。这就意味着在对表做move操作时,无法执行任何DML操作,如果对关键表做move操作时只能停业务来完成。到了Oracle12.2版本,推出了一个新特性----在线move表,对于普通堆表可以在move过程中执行DML操作。
下面以11.2.0.4和12.2.0.1这两个版本为对比,观察这一新特性。
1、11.2.0.4版本的move操作
--创建测试表zx@ORA11G>create table t as select * from dba_objects;Table created.Elapsed: 00:00:00.26zx@ORA11G>insert into t select * from t;79608 rows created.Elapsed: 00:00:00.22zx@ORA11G>/159216 rows created.Elapsed: 00:00:00.38zx@ORA11G>/318432 rows created.Elapsed: 00:00:03.63zx@ORA11G>/636864 rows created.Elapsed: 00:00:05.40zx@ORA11G>/1273728 rows created.Elapsed: 00:00:24.57zx@ORA11G>select bytes/1024/1024 from user_segments;BYTES/1024/1024--------------- 392Elapsed: 00:00:00.07zx@ORA11G>commit;Commit complete.Elapsed: 00:00:00.01zx@ORA11G>alter system flush buffer_cache;System altered.Elapsed: 00:00:27.90--不做move操作时delete操作时间zx@ORA11G>delete from t where object_name='T';32 rows deleted.Elapsed: 00:00:00.13zx@ORA11G>rollback;Rollback complete.--执行move--session 1zx@ORA11G>select userenv('sid') from dual;USERENV('SID')-------------- 1150--session 2 zx@ORA11G>select userenv('sid') from dual;USERENV('SID')-------------- 15--session 1zx@ORA11G>alter table t move tablespace examples;Table altered.Elapsed: 00:00:02.45--session 2zx@ORA11G>delete from t where object_name='T';32 rows deleted.Elapsed: 00:00:02.18zx@ORA11G>rollback;Rollback complete.--session 3sys@ORA11G>select /*+ rule */ sid,lmode,request,type,block from v$lock where sid in (1150,15); SID LMODE REQUEST TY BLOCK---------- ---------- ---------- -- ---------- 1150 6 0 TM 1 1150 4 0 AE 0 1150 6 0 TS 0 1150 6 0 TX 0 1150 2 0 XR 0 15 4 0 AE 0 15 0 3 TM 07 rows selected从上面的查询中可以看出表move操作阻塞了delete操作。
2、下面来看12.2版本的在线move操作,需要添加online关键字。
--创建测试表zx@ORA12C>select segment_name,bytes/1024/1024 from user_segments;SEGMENT_NAME BYTES/1024/1024------------------------------ ---------------T 392--在没有move时delete操作时间zx@ORA12C>delete from t where object_name='USER_TABLES';256 rows deleted.Elapsed: 00:00:00.44zx@ORA12C>rollback;Rollback complete.--session 1zx@ORA12C>select userenv('sid') from dual;USERENV('SID')-------------- 23--session 2zx@ORA12C>select userenv('sid') from dual;USERENV('SID')-------------- 27--执行move操作--session 1zx@ORA12C>alter table t move online tablespace examples;Table altered.Elapsed: 00:00:34.73--session 2zx@ORA12C>delete from t where object_name='USER_TABLES';256 rows deleted.Elapsed: 00:00:00.97zx@ORA12C>rollback;Rollback complete.--session 3sys@ORA12C>select /*+ rule */ sid,lmode,request,type,block from v$lock where sid in (23,27); SID LMODE REQUEST TY BLOCK---------- ---------- ---------- -- ---------- 27 3 0 TM 0 27 4 0 AE 0 27 6 0 TX 0 23 4 0 AE 0 23 6 0 OD 0 23 3 0 DL 0 23 3 0 DL 0 23 6 0 TS 0 23 6 0 TM 0 23 4 0 TM 0 23 6 0 TM 0 23 3 0 TM 0 23 6 0 TX 0 23 6 0 TX 0 23 3 0 TM 0 23 3 0 TM 016 rows selected.从上面的操作可以看出12.2的move操作没有阻塞delete操作。
参考:http://docs.oracle.com/database/122/NEWFT/new-features.htm#GUID-BEEEA34D-3D81-4360-887C-A92BC711816D
版本
特性
在线
关键
时间
面的
测试
阻塞
普通
不适
业务
两个
关键字
子句
意味
过程
参考
查询
观察
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
闲鱼之王服务器
360网络安全协同创业基地
未来之役无法连接服务器什么回事
小学生网络安全绘画大全
电脑输入网络安全密钥是啥
安徽医院软件开发费用
网络安全检查弱口令
深圳外包软件开发
工程类计算机网络技术
饥荒科雷专用服务器
扫码枪怎么注册到数据库中去
深入推进网络安全
stc单片机烧写软件开发
安徽盛虫网络技术有限公司
求生之路重启服务器指令
青海联想服务器虚拟化安装
软件开发购物车管理的难点
循证医学数据库中英文
开一个网络安全公司流程
有诚信的服务器安全防护
asp页面连接数据库失败
数据库管理系统归为什么软件
青岛内循环网络技术有限公司
365网络安全
服务器管理算法
Linux启动达蒙数据库
软件开发的增值税优惠政策
合肥计算机网络技术
北京美玲互联网科技有限公司
起点小说软件开发