这篇文章主要介绍“分析Oracle中表空间、表、索引的迁移”,在日常操作中,相信很多人在分析Oracle中表空间、表、索引的迁移问题上存在疑惑,小编查阅了各式资料...
这篇文章主要介绍“分析Oracle中表空间、表、索引的迁移”,在日常操作中,相信很多人在分析Oracle中表空间、表、索引的迁移问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析Oracle中表空间、表、索引的迁移”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在Oracle数据库运行过程中,由于磁盘存储限制或者前期规划不充分,后期需要对表空间数据文件进行物理迁移或者数据库表及索引进行逻辑存储迁移,此次记录一下相关迁移方法。
一、对表空间进行迁移(更改存放路径):
1.将修改的表空间进行offline:
alter tablespace users offline;
2,将表空间拷贝到要存放的位置:
cp /u01/app/oracle/oradata/ORCL/user01.dbf /data/app/oracle/oradata/ORCL/user01.dbf
3,进入数据库中修改表空间的存储路径:
alter tablespace users rename datafile '/u01/app/oracle/oradata/ORCL/user01.dbf' to '/data/app/oracle/oradata/ORCL/user01.dbf';
(原来的路径修改为现在的存放路径)
4,将表空间进行online;
alter tablespace users online;
二、对表的存放路径进行修改:
将emp表从users表空间移动到tmp表空间中去:
alter table emp move tablespace tmp;
(emp表的数据和表结构会一起移动到tmp表空间下)
将表空间users中的所有表移动到tmp表空间下:
select 'table name '||table_name||' move tablespace tmp;' from user_tables where tablespace_name='USERS';
输出的结果为脚本形式,批量执行即可。
PS: 表移动后,所有涉及的索引会失效,需要将索引进行重建。
三、对表的索引进行表空间的移动操作:
将索引ind_emp移动到索引表空间tmp_ind中:
alter index ind_emp rebuild tablespace tmp_ind;
到此,关于“分析Oracle中表空间、表、索引的迁移”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注捷杰建站网站,小编会继续努力为大家带来更多实用的文章!