12c New Features : Yeni Role ve System Privileges

Oracle 12c versiyonu ile bilikte hayataımıza ilk defa girmiş olan bazı role’ ler ve bu role’ lerin altında bazı system yetkileri girmiş oldu. 12c ile birlikte aslında görevler ayrılığı ilkeside biraz daha netlik kazanmış oldu. Ne demek istediğimi aslında role’ lerin detayına ve neye hizmet ettiklerine baktığınız da daha iyi anlayacağınızı düşünüyorum . Bahsetmiş olduğumuz bu role’ lerin detayına bakalım ;

• Sysdba Role ;
Oracle’ ın 12c öncesindeki tüm verssiyonlarında da var olan ve en yetkili power user olan SYS rolunun defaultta sahip olduğu role’ dür. Database’ i kapatıp açmak da dahil olmak üzere database genelinde ihtiyaç duyulan tüm yetkilere sahip olan role’ dür.

• Sysoper ;
Sysoper yetkside yine SYS userının sahip olduğu bir ayrıcalıktır. Sysdba’ e göre yetki bazında farklılıkları vardır. Diğer role’ lere geçmeden önce bu farklardan bahsedelim ;

1

Aaşğıdaki dökümandan bu iki role’ ün daha detaylı olarak nelere yetkisini olduğunu görebilirsiniz.
http://docs.oracle.com/cd/B19306_01/server.102/b14231/dba.htm#sthref137
Continue reading

Oracle 12c New Features ; Tablo Bazında Recover İşlemi

Oracle 12c ile birlikte dba’ ler olarak aslında bizim en çok beklediğimiz bikaç özellikden biride tablo bazında recover işlemini yapabilmekti. Bu aslında çokda karşılaştığımız “Nasıl yani sadece bir tabloyu dönemiyormusunuz” gibi sorularada cevap olmuş oldu. Ama burda şunu da söylemeden geçemiycem umarım developerların bu özellikden çok da haberleri olmaz. Tabiki çalıştığım veya tanıdığım çok iyi yazılımcılarda var ama olmayanlarda var. Dolayısıyla her yapılan hata sonrasında bu tarz restore taleplerininde kaçınılmaz gibi gözüküyor.

Örneğimize geçmeden önce tablo bazından restore derken temelde neleri kastediyoruz ve ksıtlarımız neler kısaca bunlardan bahsedelim;

• Bir tabloyu restore edebileceğimiz gibi sadece bir partitionı da restore edebiliriz,
• Recover edilen tabloyu yeni bir isimle başka bir tabloya veya bir partitiona insert edebiliriz,
• Recover etmeye çalıştığımız tablonun exportunu alıp database’ de import etmeyebiliriz de,
• Bütün bu işlemleri yapabilmemiz için database archive modde ve read/write olarak açılmış olmalıdır,
• Recover edeceğimiz tabloya ait kullanılabilir bir RMAN backupımız olmalıdır.

Bu işlemi aynı zamanda bir point in time recover işlemi olarak da düşünebilirsiniz dolayısıyla biz point in time recover yaparken nasıl SCN, spesifik bir zaman dilimi veya sequence numarası verebiliyor isek aynı durum burda da geçerlidir. Bu 3 opsiyonu kullanarak da tablomuzu recover edebiliriz.

Tablo bazında recover işlemini yaparken yapılabilecek olası hatalardan da bahsetmek istiyorum. Böylelikle sizinde bu tarz işlemler de karşılaşma ihtimali yüksek olan bazı hataları farketme şansınız olacaktır.

İlk olarak tablo bazında recover ederken set until clause’ unu kullanmadan recover başlatırsanız ;

Continue reading

12c – Container ve Pluggable Database Startup – Shutdown Aşamaları

12c ile tanışmış olduğumuz Multitenant yapı sonrasında daha öncesinde bildiğimiz o klasik database kapatıp açma komutlarınında ciddi bir takım değişimler olmuş oldu. Start ve shutdown etme olayını burda iki aşamalı olarak düşünebiliriz. Yani container database’ i kapatıp açmak farklı pluggable database’ leri kapatıp açmak farklı bir konudur.

Container database ‘ i nasıl kapatıp açabileceğimiz den anlatmaya başlayalım.

Container database opsiyonu ile kurulan bir database’ e localdan direkt olarak sqlplus ile bağlandığınız da aslında container db’ ye bağlanmış olursunuz.

Continue reading

12c – Pluggable Database Üzerinde Point-in-Time Recovery İşlemi

Aslında bu işlemi sadece pluggable database için düşünmemek lazım. Her zaman hata yapılabilir. Eğer bu yapılan hata database’ in sürekliliğini (daha doğrusu tutarlılığını) etkileyecek boyutta ise database hatanın yapıldığı zamanın hemen öncesine dönmemiz gerekebilir. Böylesi bir durumda ne yapabiliriz ona bakıyor olacağız.

Normal restore’ dan farkı point in time recovery ‘ den bashettiğimiz için db’ yi resetlog opsiyonu ile açıyor olmamızdır.

Bir örnek üzerinden gidelim ;

Hangi pluggable db üzerinde çalışıyoruz;

Test için bir test tablosu oluşturalım.
Continue reading

ASM’ de Diskgroup’ a Eklenmiş Olan Bir Diski Çıkartmak

Burdaki örneğimiz de daha önce disk ekleyerek büyütmüş olduğumuz bir diskgroup’ undan herhangi bir diski geri almaya (başka bir yerde kullacağımızı varsayabiliriz) çalışalım ;

SQL> SELECT name, header_status, path, MOUNT_STATUS FROM V$ASM_DISK;
NAME HEADER_STATUS PATH
——————– ——————– ——————————
REDO02_0000 MEMBER /dev/asm007p1
REDO01_0000 MEMBER /dev/asm006p1
ARCH01_0000 MEMBER /dev/asm005p1
DATA01_0001 MEMBER /dev/asm002p1
DATA01_0000 MEMBER /dev/asm001p1
CANDIDATE /dev/asm003p1
CANDIDATE /dev/asm004p1
7 rows selected.

DATA01_0001 olarak etiketlenmiş olan diskimizi bu disk group dan tamamen çıkartmaya çalışalım ;

SQL> ALTER DISKGROUP DATA01 DROP DISK DATA01_0001 ;
Diskgroup altered.

Diskimizi bu diskgroupdan çıkartmış olduk.
Continue reading