ITPub博客

首页 > 数据库 > Oracle > 表空间迁移

表空间迁移

Oracle 作者:az65381973 时间:2018-05-17 17:18:01 0 删除 编辑
这里以schema为prod下的表为例子,进行表空间迁移的操作。
1.新建表空间(路径可选,大小和自拓展都可选,名字也可自选)
create tablespace prod_idx datafile '/data/prod/tablespace/PROD_IDX_001.dbf' size 1G AUTOEXTEND ON next 500M maxsize unlimited;
create tablespace prod_tab datafile '/data/prod/tablespace/PROD_TAB_001.dbf' size 1G AUTOEXTEND ON next 500M maxsize unlimited;
create tablespace prod_lob datafile '/data/prod/tablespace/PROD_LOB_001.dbf' size 1G AUTOEXTEND ON next 500M maxsize unlimited;
2.修改用户默认表空间
alter user prod default tablespace prod_tab;
3.拼接默认表空间迁移sql
select 'alter table prod.'|| TABLE_NAME || ' move tablespace prod_tab;' from dba_tables where owner='prod';
4.拼接索引表空间迁移sql
select 'alter index prod.'|| INDEX_NAME || ' rebuild tablespace prod_idx;' from dba_indexes where owner='prod';
5.拼接LOB表空间迁移sql
select 'alter table prod.'|| TABLE_NAME || ' move lob('|| COLUMN_NAME ||') store as (tablespace prod_lob);' from dba_lobs where owner='prod';
6.执行上述3,4,5三个步骤拼接的SQL,完成表空间迁移

最后,如果原表空间占用空间较大,可以对数据库PROD用户的原表空间(数据库默认表空间)进行表空间收缩操作。如果占用空间不大,也可不进行表空间收缩。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31535639/viewspace-2154634/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2018-05-05

  • 博文量
    12
  • 访问量
    5514