虚拟化容器,大数据,DBA,中间件,监控。

Oracle转移表和索引所在的表空间

06 08月
作者:admin|分类:DBA运维

Oracle转移表和索引所在的表空间


如果你将创建表和索引创建在USERS表空间下了,(USERS表空间中是合理的),那么在以后的维护中将会出现很多麻烦。

 

如果是系统无法删除重建,所以必须考虑在不影响使用的情况下做该项工作。

 

 

  1、表空间移动命令:

 

  alter table table_name move tablespacetablespace_name;

 

  得到表空间移动语句:

   select alter table || table_name || move tablespacetablespace_name;

    fromuser_tables

   where tablespace_name = USERS

 

  得到该连接用户下所有创建在USERS表空间下的表名。

 

  2、执行所得到的语句,至此将表转移到新表空间中。

3、重建索引

 

命令

alter index index_name rebuildtablespace tablespace_name;

 

  得到重建索引语句

 

   SELECT alter index ||index_name|| rebuild tablespacetablespace_name; 

    FROMUSER_INDEXES T where t.table_owner=’’USER_NAME’’ 

    andt.tablespace_name=USERS

 

  4、执行得到的语句,将索引转移到新表空间。

 

 

alterindex rebuildalter index rebuildonline的区别
alter indexrebuild online
实质上是扫描表而不是扫描现有的索引块来实现索引的重建alter indexrebuild 只扫描现有的索引块来实现索引的重建。

online时可以在该索引的基表上执行DML,在在对基表操作的同时可以REBUILD INDEX,但是不能执行DDL语句,所以他们的锁机制是不样的。

创建索引时通常会对该表设置一个表级共享(DML),如果设置ONLINE,

如果是非ONLINE方式,通常会对该表设置一个表级共享(DML)锁,那么就对DML语句冲突,如果设置ONLINE ,(会使用临时日志IOT表来记录中间改变的数据),但要使用两倍于传统方法的空间.表会变成行级共享锁,在创建索引或者ALTER完成后,对临时日志表与基表进行MERGE

浏览1807 评论0
返回
目录
返回
首页
Shell脚本分析Nginx日志抗小量ddos攻击 Oracle process running out of OS kernel I/O resources