关于move的执行原理

[复制链接]
查看11 | 回复9 | 2005-10-6 13:25:21 | 显示全部楼层 |阅读模式
我想将table 1从tablespce1移到tablespace2,可以用
alter table table1 move tablespace tablespace2
请问move的执行机制是什么?我有一些数据量比较大的表需要重新部署表空间,但是希望尽量不影响数据库的使用,即在线操作且不占用太多资源,用什么方法最合适?
回复

使用道具 举报

千问 | 2005-10-6 13:25:21 | 显示全部楼层
算了,还是看看Tom的解答吧:
参考一下这个链接:
http://asktom.oracle.com/pls/ask ... ITERIA:47812348053,
至于Move的原理,不好说
回复

使用道具 举报

千问 | 2005-10-6 13:25:21 | 显示全部楼层
我的环境有9i,8i和805,因为是产品发版,所以必须兼容各个版本。
我想知道move的底层实现的机制?
回复

使用道具 举报

千问 | 2005-10-6 13:25:21 | 显示全部楼层
楼主为什么不offline,然后再alter .....rename啊 还真没有听过move这个参数.
回复

使用道具 举报

千问 | 2005-10-6 13:25:21 | 显示全部楼层
简单的说:就是相当于重新写这个表
再底层的话,要问问Oracle的人
回复

使用道具 举报

千问 | 2005-10-6 13:25:21 | 显示全部楼层
move =create new + drop old
if has index, rebuild it.
回复

使用道具 举报

千问 | 2005-10-6 13:25:21 | 显示全部楼层
move在8i中实现的,9i也有这个。
8上没有发现有这个move命令,只能做exp和imp将table移动。
回复

使用道具 举报

千问 | 2005-10-6 13:25:21 | 显示全部楼层
Index要重新建,也就是说move 改变了原来表的存储的 物理属性
回复

使用道具 举报

千问 | 2005-10-6 13:25:21 | 显示全部楼层
怎么避免在线move发生的问题,查看资料说8i,对于index organized tables , You can rebuild these online.
对于9i可以支持在线move 和rebuild(在read and WRITE 该对象时)
但是我测试的结果是
session1
set autot traceonly
select * from move;
session2(在session1执行期间)
SQL> altertable move move;
altertable move move

*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified
再看
session1
altertable move move ;
session2
SQL> update move set object_id = object_id +1000000;
update move set object_id = object_id +1000000
*
ERROR at line 1:
ORA-01502: index 'T.MOVE_IND' or partition of such index is in unusable state
这里还没来得及rebuild index
alter index move_pk rebuild;
SQL> update move set object_id = object_id +1000000;
75510 rows updated.
然后我看一下9i支持的在线move
SQL> alter table move move online
2storage (initial 12k
3 next 128K
4 minextents 1
5 maxextents unlimited
6 pctincrease 0);
alter table move move online
*
ERROR at line 1:
ORA-01735: invalid ALTER TABLE option
还是不行,大家有没有办法在产品库上做move和rebuild操作
回复

使用道具 举报

千问 | 2005-10-6 13:25:21 | 显示全部楼层
最初由 dlinger 发布
[B]我想将table 1从tablespce1移到tablespace2,可以用
alter table table1 move tablespace tablespace2
请问move的执行机制是什么?我有一些数据量比较大的表需要重新部署表空间,但是希望尽量不影响数据库的使用,即在线操作且不占用太多资源,用什么方法最合适? [/B]

设置10046跟踪
你自己先来研究一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行