Oracle中表空間、表、索引的遷移

Z少校發表於2020-02-13

在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;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30484956/viewspace-2675391/,如需轉載,請註明出處,否則將追究法律責任。

相關文章