Oracle Database Upgrade 11g to 12c (dbua ile)

Oracle 11g olan database’ imizi 12c versiyonuna nasıl upgrade edebilirize bakıyor olacağız. Ancak hemen öncesinde database’ inizi 12c’ ye doğrudan upgrade edebiliyormuyuz onu kontrol edelim.

Yukarıdaki grafikden anlaşılacağı üzere eğer database’ inizi 12.1 versiyonuna upgrade etmek istiyorsanız öncelikle Upgrade path kolonundaki minumum versiyona ulaşmış olmanız gerekiyor.

Biz database’ imizin versiyonunu kontrol edelim ;

SQL> select * from v$version ;
BANNER
——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
PL/SQL Release 11.2.0.4.0 – Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 – Production
NLSRTL Version 11.2.0.4.0 – Production

Öncelikle 12c versiyonunun binarysini kurarak işe başlıyoruz;

Linux makinasında display’ ı kendi makinamızı gösterecek şekilde set edelim.

[oracle@Redhat70 12.1.0.2.0]$ export DISPLAY=192.168.1.2:0.0
Continue reading

Unusuable ve Invisible Indexler Uzerine

Indexler ile ilgili daha önce “İndex Kullanımı, Oluşturulması, Çeşitleri, Faydaları Üzerine” (http://www.kamilturkyilmaz.com/2012/04/08/index-kullanimi-olusturulmasi-cesitleri-faydalari-uzerine– ) diye bir yazı yazmıştım. Indexlerin unusable ve invisible özellikleri ile devam edeceğim.

Unusable indexler defaultta optimizer tarafından kullanılmayan indexlerdir. Yani unusable statüsündeki bir index normal şartlar altında (defaultta) optimizer tarafından dikkate alınmazlar. Tablolar üzerinde bulk load işlem yapacaksanız önce indexi drop create etmek yerine önce unusable sonrasında rebuild ederek eski haline alaiblirsiniz. Unusable index’ i düzeltmenin bikça tane yöntemi var, unusable olan index (veya partition index) rebuild edilebilir, index drop – create edilebilir veya her zaman mümkün olmasa da tabloyu truncate etmek indexi VALID hale getirecektir.

Unusable indexler ile ilgili SKIP_UNUSABLE_INDEXES diye bir initial parametremiz var. Bu parametrenin default değeri TRUE olarak gelmektedir.

SQL> sho parameter SKIP_UNUSABLE_INDEXES
Continue reading

ASM’ de Varolan Bir Diskgroup’ a Yeni Bir Disk Ekleme

Yine disklerimizi kontrol ederek başlayalım ;

SQL> Column name format a20;
SQL> Column header_status format a20;
SQL> Column path format a30;
SQL> SELECT name, header_status, path FROM V$ASM_DISK;

NAME HEADER_STATUS PATH
——————– ——————– ——————————
REDO2_0000 MEMBER /dev/mapper/rac-asm007p1
REDO1_0000 MEMBER /dev/mapper/rac-asm006p1
ARCH1_0000 MEMBER /dev/mapper/rac-asm005p1
DATA1_0000 MEMBER /dev/mapper/rac-asm001p1
CANDIDATE /dev/mapper/rac-asm003p1
CANDIDATE /dev/mapper/rac-asm004p1
FORMER /dev/mapper/rac-asm002p1
7 rows selected.

Elimiz de 3 adet kullanılabilir diskimiz var. Şimdi “/dev/mapper/rac-asm002p1” pathi ile tanımlı olan diskimizi “DATA1_0000” diskgroup içerisine ekleyerek var olan diskgroup’ umuzun size’ ını büyütmeye çalışalım ;
Continue reading

ASM İçerisinde Oluşturulmuş Olan Bir Diskgroup’ u Drop Etmek

Bir önceki yazıda ASM diskgroup’ una assign edilmiş olan bir diski nasıl drop edeceğimiz den bashetmiştik. (http://www.kamilturkyilmaz.com/2015/05/23/asm-diskgroup%E2%80%99-una-eklenmis-olan-bir-diski-drop-etmek/) Şimdi ise Asm üzerinde create edilmiş olan ve asm tarafından manage edilebilir durumda olan bir diskgroup’ u nasıl drop edebiliriz ona bakalım ;

Öncelikle hangi diskgroup larımız var ona bakalım ;

SQL> Column name format a20;
SQL> Column header_status format a20;
SQL> Column path format a30;
SQL> SELECT name, header_status, path FROM V$ASM_DISK;

NAME HEADER_STATUS PATH
——————– ——————– ——————————
CANDIDATE /dev/asmtest/asm004p1
CANDIDATE /dev/asmtest/asm003p1
REDO2_0000 MEMBER /dev/asmtest/asm007p1
REDO1_0000 MEMBER /dev/asmtest/asm006p1
ARCH1_0000 MEMBER /dev/asmtest/asm005p1
DATA2_0000 MEMBER /dev/asmtest/asm002p1
DATA1_0000 MEMBER /dev/asmtest/asm001p1

7 rows selected.
Continue reading

ASM’ e Yeni Bir Diskgroup Ekleme

ASM’ e yeni bir diskgroup Ekleme ;

Yeni bir disk eklemek için kullanabileeğimiz olan (statusu candidate) disklerimizi listemek için ;

SQL> Column name format a20;
SQL> Column header_status format a20;
SQL> Column path format a30;
SQL> SELECT name, header_status, path FROM V$ASM_DISK;

NAME HEADER_STATUS PATH
——————– ——————– ——————————
FORMER /dev/mapper/rac-asm002p1
CANDIDATE /dev/mapper/rac-asm004p1
CANDIDATE /dev/mapper/rac-asm003p1
REDO2_0000 MEMBER /dev/mapper/rac-asm007p1
REDO1_0000 MEMBER /dev/mapper/rac-asm006p1
ARCH1_0000 MEMBER /dev/mapper/rac-asm005p1
DATA1_0000 MEMBER /dev/mapper/rac-asm001p1

7 rows selected.

sorgusundan faydalanabiliriz.

/dev/mapper/rac-asm002p1 id’ li diskimizi ASM altında ayri bir disk group olarak tanımlayalım.

SQL> CREATE DISKGROUP DATA2 EXTERNAL REDUNDANCY DISK ‘/dev/mapper/rac-asm002p1’
2 ATTRIBUTE ‘au_size’=’1M’,
3 ‘compatible.asm’ = ‘11.2’,
4 ‘compatible.rdbms’ = ‘11.2’,
5 ‘compatible.advm’ = ‘11.2’;
Diskgroup created.
Continue reading