ORACLE表批量遷移表空間
第一步:將表遷移到目標表空間
1)使用如下語句,可以將需要移動的表空間語句在pl/sql中列出來,
select 'alter table ' ||table_name || ' move tablespace 目標表空間名稱;' from user_all_tables where tablespace_name='源表空間名稱'
例如:
登入資料庫使用者TEST。將TEST所有表從SYSTEM表空間遷移到USERS表空間。
select 'alter table ' ||table_name || ' move tablespace users;' from user_all_tables where tablespace_name='SYSTEM';
將PL/SQL中列出來的語句執行一次,就完成表的遷移。
2)將上面語句的結果拷貝到sql檔案1.sql中
第二步:重新生成索引:
1)使用如下語句,生成重新編譯索引語句:
SELECT 'alter index ' || index_name || ' rebuild tablespace users;'
FROM user_indexes
WHERE index_type = 'NORMAL'
AND table_owner = 'SDHY_DEV'
AND dropped = 'NO';
注意:
index_type包括兩種型別'NORMAL'為普通表,'LOB'為blob或者clob欄位生成的索引,在這裡要排除掉
DROPPED包括YES和NO兩種型別,為YES時是廢棄的索引
2)將上面語句的結果拷貝到sql檔案2.sql中
第三步:批量執行操作:
將第一步與第二步列出的語句放在SQL執行視窗中執行,就可以實現表資料及索引遷移。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29439655/viewspace-1356643/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 表空間遷移
- 遷移表空間
- Oracle 不同平臺間表空間遷移Oracle
- Oracle中表空間、表、索引的遷移Oracle索引
- 【遷移】表空間transport
- RMAN遷移表空間
- 遷移SYSTEM表空間為本地管理表空間
- Oracle 批量建表空間Oracle
- 遷移表到新的表空間
- Oracle 表空間資料檔案遷移Oracle
- 跨平臺表空間遷移(傳輸表空間)
- expdp/impdp 遷移表空間
- Oracle表移動表空間Oracle
- oracle 表移動表空間Oracle
- MySQL 遷移表空間,備份單表MySql
- 表、索引遷移表空間alter table move索引
- 基於可傳輸表空間的表空間遷移
- 批量移動分割槽表到其他表空間
- Oracle 12cbigfile表空間物件遷移Oracle物件
- table/index/LOBINDEX遷移表空間Index
- lob欄位表空間遷移
- (個人)Oracle 表空間資料檔案遷移(轉)Oracle
- 表空間遷移辦法補充
- 使用RMAN簡單遷移表空間
- 資料庫物件遷移表空間資料庫物件
- 分割槽表對應的表空間遷移案例
- oracle 表空間和表 read only遷移後不再read onlyOracle
- [轉移]ORACLE MOVE 表空間Oracle
- Oracle10g新特性——利用RMAN遷移表空間Oracle
- 【資料遷移】使用傳輸表空間遷移資料
- 線上遷移表空間資料檔案
- 不同使用者,不同表空間遷移
- Oracle查詢表佔磁碟空間大小及移動表空間Oracle
- Oracle10g新特性——利用RMAN遷移表空間(二)Oracle
- Oracle10g新特性——利用RMAN遷移表空間(一)Oracle
- 將表遷移至其他表空間
- mysql共享表空間擴容,收縮,遷移MySql
- InnoDB資料表空間檔案平滑遷移