Oracle 12c Olan Bir Database’ i Rman Cataloga Eklemek

11g ve daha önceki versiyonalrda database’ lerin backuplarını almak için rman catalog database’ ini kullandığımız yapılarda, rman catalog database’ inde aşağıdaki gibi user oluşturup resource, connect,recovery_catalog_owner yetkilerini de verdiğimi de production tarafından catalog database’ ine bağlanıp sorunsuzca catalog create edip sonrasında da register edebiliyorduk. Ancak 12c ile birlikte bu işlemler ile catalog database’ inde create catalog komutunu çalıştırdığımız da aşağıdaki gibi bir hata aldık ;

— rman catalog database’ inde user create işlemi ;

create user tdb default tablespace users identified by password ;
grant resource, connect,recovery_catalog_owner to tdb ;

Backupını almak istediğimiz sunucu üzerinden catalog database’ ine bağlanıp catalog create etmeye çalıştığımız da ;

[oracle@Redhat70 admin]$ rman target / catalog tdb/Password1@RMAN_CATALOG
Recovery Manager: Release 12.1.0.2.0 – Production on Wed May 20 11:30:50 2015
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

connected to target database: TDB (DBID=3761906654)
connected to recovery catalog database

RMAN> create catalog ;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-07539: insufficient privileges to create or upgrade the catalog schema
Continue reading

Spesifik olarak bir sql’ i AWR raporuna eklemek

Zaman zaman problem yaşadığınız bir sorgu olduğunu düşünün veya bir sorguyu tune ettiniz sonrasında izlemek istiyorsunuz veya spesifik olarak bir sorgunun zaman zaman database’ in performansına olumsuz etkileri olduğunu düşünüyosunuz ve bu sorgunun farklı zamanlardaki davranışlarını merak ediyosunuz. Yukarıda belirtmiş olduğum tüm bu soruların cevabını bulmak için neler yapardınız ? Internal olarak bir sürü aksiyon alınabilir ama inanın hiçbiri aşağıdaki çözüm yolu kadar basit ve etkili olmayacaktır.

Oracle bizim adımıza zaten her saat başında (default olarak ) sistemin genel durumu, olan bitenler hakkında bize bir rapor hazırlıyor, biz bu raporun içine varsa spesifik olarak isteklerimizi belirtip ekliyor olsaydık güzel olmazmıydı.

İşte aşağıdaki komut tam olarak bunu yapıyor. Tek yapmanız gereken sogunuzun sql_id’ sini bulmak ve aşadaki sorgu bloğunu çalıştırmak. Sonrasında alınacak olan tüm AWR raporlarında sizin sorgunuzunda olduğunuzu göreceksiniz.
Continue reading

RAC instance’ ında Spfile’ in Path’ i Nasıl Değiştirilir

Eğer Oracle RAC opsiyonunu kullanıyor iseniz ve spfile’ in path’ ini değiştirmemiz gerekirse aşağıdaki adımları uygulayarak spfile ‘inizi farklı bir ASM diskgroup altına taşıyabilirsiniz.

Öncelikle herhangi bir path’ e initfile oluşturuyoruz ;

SQL> create pfile=’/u01/gi/oragrid/grid/11.2.0.4/dbs/initASM_move.ora’ from spfile;
File created.

Database’ i kapatıyoruz ;

[oragrid@Redhat701 ~]$ srvctl stop database -d tpdb

Sonrasında tek bir node ‘ dan database ‘ i mount modda açıyoruz;

Spfile’ i olmasını istediğimiz path’ de create ediyoruz ;

SQL> create spfile=’+DATA02_0000′ from pfile=’/u01/ora/db/11.2.0.4/dbs/init_tpdb_kamil.ora';
File created.

ASM üzerinden file’ i kontrol edebiliriz ;

Database’ i shutdown edelim ;

SQL> shu immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> exit

Database ‘i start etmeden önce son olarak srvctl komutu yeni spfile ‘imizin yerini burda da set edelim;

[oracle@Redhat701 dbs]$ srvctl modify database -d tpdb -p +DATA02_0000/tpdb/spfiletpdb.ora
[oracle@Redhat701 dbs]$

Database’ i açıp kontrol edelim ;

Artık spfile’ imizi yeni lokasyonuna taşımış olduk.

Reference;
Recreating the Spfile for RAC Instances Where the Spfile is Stored in ASM (Doc ID 554120.1)

Bir Önceki Resetlogs Zamanının Öncesine Rman ile Recover İşlemi (incarnation)

Database resetlogs opsiyonu ile her açıldığında, sistem tarafından otomatik olarak yeni bir incarnation numarası verilmektedir. Resetlogs sonrasında database’ in yeni bir versiyonu oluşmakta buda yeni bir incarnation ile ifade edilmektedir diyebiliriz. Resetlog sonrasında database’ deki archive ve tüm redologlar clear edildikden sonra log sequence değerleride resetlenerek 1’ den başlayacak şekilde set edilmiş olacaktır. Eğer database’ de incomplete recovery yapıyor iseniz bu opsiyonu kullanmak durumunda kalacaksınız demektir.

Burdaki bir önemli nokta, database resetlogs opsiyonu ile açıldıkdan sonra, resetlogs öncesine ait backupları kullanamayacağınız dır. Eğer bu tarz bir durumla kalırsanız ne yapılması gerektiğinden bu yazımda bahsediyor olacağım.

Birde aşağıdaki grafik üzerinden anlatmaya çalışayım. Bakalım ne kadar başarılı olacağım. t anında bir tablo create ettiğimizi düşünelim. Sonra t1 anında tablomuzu truncate ettiğimizi sonrasında yetmeyip t2 anında tabloyu drop ettiğimizi sonrasında da t4 anında olayı farkettiğimizi düşünelim. Sonrasında önce t1 anına dönelim sonrada t anına tabloyu create ettiğimiz ana gitmeye çalışalım.

1
Continue reading

Oracle 12c New Features : DBMS_PRIVILEGE_CAPTURE Package

Database’ in güvenliğinin sağlanması için belirli periyotlar arasında şirketlerin güvenlik birimleri aracılığıyla (özellikle bankalar bu konuda en hassas olan kurumlardır) database’ deki kullanıcıların yetkileri sorgulanır ve fazla olduğu düşünülen yetkilerin revoke edilmesi istenir. Ancak production sistemlerde yetki almak kimi aman çokda kolay olmamaktadır. Yetki revoke edildiğinde uygulamanın bu durumdan etkilenip etkilenmeyeceği, ilgili user tarafından bu yetkinin kullanılıp kullanılmadığı tam olarak kestirilemediği durumlar olabiliyor. Hal böyle oluncada yetkiyi revoke etmeye cesaret edilemediği durumlar yaşanmıyor değil 

Oracle 12c ile birlikte aslında bu soruna cevap bulunmuş oldu. Dbms_privilege_capture paketi ile kullanılan user hangi yetkinin kullanıldığını capture eden faydalı bir package’ dir. Privilege kullanıldığı zaman capture edildiğinden dolayı bu paket aracılığıyla toplanan yetkiler kullanılan yetkiler olarak yorumlanmalıdır.

Şimdi bu işlemi nasıl yapabileceğimiz den ve dbms_capture_privilege paketinin kullanımından bahsedelim.

DBMS_PRIVILEGE_CAPTURE paketinin spec’ ine baktığınız da 5 adet procedureden oluştuğunu görebilirsiniz.

Continue reading