Kullanıcıyı başka TABLESPACE ‘e taşıma
Oracle da bir kullanıcıyı başka bir tablespace e taşımak için aşağıdaki adımları izleyebilirsiniz. Ornegin LOGO_WORK isimli kullanıcı şu anda LOGO tablespace’de iken bunu LOGO_WORK isimli bir tablespace uzerine taşımak istiyoruz. Taşıma yapılacak user ile login olunur, yani LOGO_WORK kullanıcısı ile giriş yapınız. Daha sonra aşağıdaki adımları izleyebilirsiniz.
spool MoveTables.sql
select 'alter table '|| table_name||' move tablespace LOGO_WORK;'
from user_tables
where tablespace_name='LOGO';
spool off
Yukarıki sql çıktısı size tablo sayınız kadar satır içeren bir block script oluşturur. Bunu çalıştırarak tabloların tablespace ini değiştirisiniz. Ancak indeksler halen eski tablespace yani LOGO da kaldı. Bunlar için de aşağıdaki script block üreten sql kullanılır:
SELECT 'ALTER INDEX '|| OBJECT_NAME || ' REBUILD TABLESPACE LOGO_WORK PARALLEL NOLOGGING;' from USER_OBJECTS WHERE OBJECT_TYPE='INDEX'
Yukarıdaki SQL ile oluşan scriptleri de çalıştırırsanız indeksler yeni tablespace üzerinde yeniden yaratılır.
Artık LOGO_WORK kullanıcısı yeni tablespace’i LOGO_WORK üzerine alınmış olur.
Recent Comments