Basicfile şeklindeki LOB verilerin securefile şekline dönüştürülmesi

12 Nis by Ahmet Duruöz

Basicfile şeklindeki LOB verilerin securefile şekline dönüştürülmesi

SecureFiles LOB depolama, Oracle veritabanları ile kullanılan iki depolama türünden biridir; diğer tür ise BasicFiles LOB saklama alanıdır.

Sıkıştırma ve veri tekilleştirme ve şifreleme dahil olmak üzere bazı gelişmiş özellikler SecureFiles LOB ile kullanılabilmektedir.

SecureFiles LOB, yalnızca Otomatik Segment Alanı Yönetimi (ASSM) ile yönetilen bir tablo alanında oluşturulabilir.

SecureFiles, 12c versiyonundan itibaren LOB’lar için varsayılan depolama mekanizmasıdır ve Oracle, LOB’lari depolamak ve yönetmek için BasicFiles yerine SecureFiles’ı önermektedir. BasicFiles, gelecekteki bir sürümde kullanımdan kaldırılacaktır.

Mevcut tablolarınızdaki basicfile lob alanları , securefile lob alanlarına dönüştürmek için çeşitli yöntemler kullanılabilir. Aşağıdaki yöntemler ile dönüşüm yapılabilir.

  1. Tablonun exportu alınıp , lob alanı secure file olan aynı kolonlara sahip yeni bir tablo oluşturup veriler, yeni tabloya import edilerek,
  2. Tabloya securefile şeklinde kolon eklenip, basicfile olan kolondaki veriler ile güncelleme yapılarak. Sonrasında basicfile kolonu drop edilip, yeni kolon adı mevcut olan şeklinde değiştirilebilir.
  3. ALTER TABLE tablo_adı MOVE … komutu ile

Aşağıda bu yöntemlere bazı örnekler verilmiştir.

2. yöntem için ;

SQL> alter table ADURUOZ.LOBTABLE add (FILE1 blob) lob (FILE1) store as securefile (tablespace TABLO_ALAN_ADI);
SQL> update ADURUOZ.LOBTABLE set FILE1=FILE;
SQL> commit;
SQL> ALTER TABLE ADURUOZ.LOBTABLE DROP COLUMN FILE;
SQL> ALTER TABLE ADURUOZ.LOBTABLE RENAME COLUMN LOBTABLE.FILE1 TO FILE;

3. yöntem için ;

normal tablolar:
SQL> ALTER TABLE ADURUOZ.LOBTABLE MOVE LOB(FILE) STORE AS securefile (TABLESPACE TABLO_ALAN_ADI);

partition olan tablolar:
SQL> ALTER TABLE ADURUOZ.LOBTABLE MOVE PARTITION PARTITON_ADI LOB (FILE) STORE AS SECUREFILE (TABLESPACE TABLO_ALAN_ADI);

Aşağıdaki sorgu ile bir tablodaki tüm partition’ların taşınması için gerekli komutu oluşturabilirsiniz.

select ‘ALTER TABLE SEMA_ADI.TABLO_ADI MOVE PARTITION ‘||partition_name||’ LOB (LOB_ALAN_ADI) STORE AS SECUREFILE (TABLESPACE ‘||tablespace_name||’);’ from dba_tab_partitions where table_name=’TABLO_ADI’;

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir