Oracle Database Upgrade 11g to 12c (command line ile)

Upgrade öncesinde oracle 12c binary kurulumunu dbua ile upgrade’ i anlattığım aşağıdaki linkde zaten belirtmiştim. Dolayısıyla burda direk upgrade işlemini yapıyor olacağız.

http://www.kamilturkyilmaz.com/2015/06/27/oracle-upgrade-11g-to-12c-dbua/

Upgrade sırasında loglarımızın tek bir dizine çıkması için bir dizin create edip ordan devam edelim;

[oracle@Redhat70 dbs]$ mkdir -p /u01/12c_upgrade
[oracle@Redhat70 dbs]$ cd /u01/12c_upgrade/
[oracle@Redhat70 12c_upgrade]$

Manuel upgrade yapacağımız için ve burda user-friendly bir arayüzümüzde olmadığından upgrade öncesi kontroller son derece kritik önem arzediyor. Bunun için 12c binarysi altında bulunan iki tane sql file’ imiz var onları kullanıyor olacağız. Öncelikle bu iki dosyayı create ettiğimiz dizine kopyalayalım;

[oracle@Redhat70 dbs]$ cp /u01/app/oracle/db/12.1.0.2/rdbms/admin/preupgrd.sql /u01/12c_upgrade/.
[oracle@Redhat70 dbs]$ cp /u01/app/oracle/db/12.1.0.2/db_1/rdbms/admin/utluppkg.sql /u01/12c_upgrade/.

Source oracle_home altından database’ e sys ile bağlanıp preupgrd.sql ‘ i çalıştıracağız. Utluppkg.sql’ ile ilk sql kullandığından dolayı onuda almak durumunda kaldık.

[oracle@Redhat70 12c_upgrade]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed May 6 22:17:45 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> spool preupgrade.txt
SQL> @preupgrd.sql

Loading Pre-Upgrade Package…
Continue reading

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