Tabloyu Başka Bir Tablespace Altına Taşımak

Merhabalar,

Oracle da bir tabloyu başka bir tablespace altına kopyalamak çok kolay. Aşağıdaki komutu çalıştırarak tabloyu taşıyabilirsiniz.

ALTER TABLE  MOVE TABLESPACE 

Fakat dikkat etmeniz gereken bir nokta var. Yukarıdaki komutu çalıştırdıktan sonra, bu tabloya bağlı tüm indexler “UNUSABLE” olacak. Bu indexleri tekrardan “REBUILD” yapmanız gerekecek.

alter index owner."index_name" rebuild;

Eğer isterseniz aşağıdaki komutu çalıştırarak indexlerin de tablespace ini değiştirebilirsiniz.

alter index owner."index_name" rebuild tablespace table_space;

Dikkat etmeniz gereken diğer nokta ise, taşıyacağınız tablo eğer LOB kolonu içeriyorsa, LOB kolonları ayrıca taşımanız gerekecektir. Aşağıdaki script LOB ları taşımak için kullanacağınız komutları çıkaracaktır.

SELECT 'ALTER TABLE owner.'||LOWER(TABLE_NAME)||' MOVE LOB('||LOWER(COLUMN_NAME)||') STORE AS (TABLESPACE table_space);'
FROM DBA_TAB_COLS
WHERE OWNER = 'schema_name' AND DATA_TYPE like '%LOB%';

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir