Kategoriler
ORACLE

Windows 7’de VirtualBox ile Oracle Enterprise Kurulumu

VirtualBox, Linux üzerinde yaygın olarak kullanılan sanallaştırma araçlarından birisidir. Böylece Windows ortamında çalışması gereken programları Linux altında kolaylıkla çalıştırabilirsiniz.

Size uygun VirtualBox sürümünü buradan seçebilirsiniz. Ben win7 için kurulum yapacağım.

daha sonra ek özelliklerden yararlanmak için VirtualBox 4.3.6 Oracle VM VirtualBox Extension Pack  All supported platforms  kurulumu yapmamız gerekmekte.

virtualbox

Her iki kurulum için adımları izleyerek yapabilirsiniz. Ekstra bir durum yoktur.

Oracle Enterprise sürümünün .iso haline buradan ulaşabilirsiniz: Oracle Enterprise 64bit. Burada dikkat etmeniz gereken nokta sanal makina oluştururken işlemci türünüz hangisini destekliyor ise onu yüklemeni. Benim makinam için 32 bit uygun olmakta. Oracle Enterprise 32 Bit

Eğer hatalı seçim yaparsanız şu şekilde hata ile karşılaşacaksınız.

işlemci çekirdek uyum sorunu

 

64 bit seçimi için x86_64.  

32 bit seçimi için i386 klasörlerini takip edebilirsiniz.

oracle enterprise iso

 

İso dosyamız inmeye devam ederken biz kurulumla ilgili detayları hazırlayabiliriz. Dosya > Yeni sekmelerini kullanarak ekrandaki görünüme ulaşabiliriz. İstediğiniz bir isimi verebilirsiniz. Tür olarak Linux Sürüm olarak Oracle seçiyoruz. Ve aşağıdaki seçimleri kendimize uygun olarak gerçekleştiriyoruz. Önerilen ayarları yapmak sağlıklı olacaktır.

kurulum01

kurulum02

kurulum03

kurulum04

kurulum05

kurulum06

Oluştur dedikten sonra işlemimizin ilk kısmı bitiyor. Daha sonra oluşan sanal makinayı sağ tıklayıp ayarlar kısmına geçiyoruz.  Ağ sekmesine geçip aşağıdaki ayarları yapıyoruz.

kurulum07

Ve depolama sekmesine geliyoruz. İşlemleri sırası ile yapıyoruz. Seçtikten sonra indirmiş olduğumuz iso uzantılı dosyamızı ekliyoruz.kurulum08

iso dosyamızı ekledikten sonra makinayı çalıştırıp kurulum aşamasına geçebiliriz.

 

 

 

 

Kategoriler
ORACLE

OCP Sertifikası Nasıl Alınır? Nasıl DBA Olabilirim?

Öncelikle Oracle Sertifika ve eğitimlerinin tamamı için bu adresten faydalanabilirsiniz : education.oracle.com/certification/

explorer certification

 

Database Administrator ve Database tercihlerini yaptıktan sonra Browse Certifications butonuna tıklayabiliriz.

Çıkan sonuçlar aşağıdaki gibi olacaktır. Burada Database alanında alabileceğimiz sertifikalar listelenmekte. Biz henüz yolun başında olduğumuz için öncelikle OCA (Oracle Database 11g Administrator Certified Associate) olacağız daha sonra OCP ( Oracle Database 11g Administrator Certified Professional ) sertifikalarına sahip olabiliriz. Bunun daha üst seviyesi olan OCM ise Oracle Database 11g Administrator Certified Master sertifikasına sahip olunursa olunabiliriz. Bu üst düzey sertifikanın detaylarına belki başka bir yazı da gireriz. Ufak bir dipnot geçmem gerekirse ben 11g için serfikaları seçtim. En son eğitimlerle birlikte artık 12c için de sertifikalar mevcut aynı şartlar onlar için de geçerlidir.

exams

 Gerekli olan ilk sertifikamız olan OCA’ye yakından bakalım.
Öncelikli olarak bu 2 sınavdan birine girmemiz gerekmekte. Aldığınız eğitime göre seçiniz.

Sınavlar ilgili detaylara ilgili bağlantılardan ulaşabilirsiniz.  Kısaca Oracle Database 11g: SQL Fundamentals I sınavından bahsetmem gerekirse:

-120 dakika, 66 soru. Geçer not için %60 başarı ( 40 doğru yeterlidir) Sınav ücreti ise $ 125. Sınav içeriği ve çıkan konular hakkında detaylı bilgileri bağlantılardan alabilirsiniz.

Bu sınavı online ortamda olabiliyoruz. Sınav sonrası geçer not alıp almadığınızı anında öğrenebiliyorsunuz. Bu sınavı başarı ile atlattıktan sonra OCA olmak için girmemiz gereken sınavın adı: Oracle Database 11g: Administration I 1Z0-052

Bu sınavla ilgili biraz bilgi vermem gerekirse:

– 90 dakika, 70 soru. Geçer not için %66 başarı ( 47 doğru) gerekli. Sınav ücreti ise $ 245. Ve bu sınava Oracle’ın resmi eğitim merkezlerinin birinde denetmen kontrolünde girerebiliyorsunuz.

Bu sınavı başarı atlattıktan sonra tebrik ederiz artık biz OCA oldunuz.

OCP olmamız için gerekli olan sınav ise: Oracle Database 11g: Administration II 1Z0-053

Bu sınavla ilgili bilgiler ise:

– 105 dakika, 78 soru. Geçer not için %66 başarı. (52 doğru) Sınav ücreti ise $ 245. Ve bu sınava da Oracle’ın resmi eğitim merkezlerinin birinde denetmen kontrolünde girerebiliyorsunuz.

Ayrıca önemli bir noktayı es geçmeyelim. Bu OCA ya da OCP olmak için gerekli olan eğitimleri resmi Oracle eğitim kurularından birinden almalısınız. SQL sınavı için böyle bir ön koşul yoktur.

Eğer 3 sınavda da başarılı olursanız tebrik ederiz OCP oldunuz demektir. Sınav sonrası sonucunuza göre aşağıdaki gibi bir sertifika ile karşılacaksınız. Yaklaşık 3 hafta sonra da fiziksel hali adresinize postalanmış olacaktır.

OCP Certification

 

 

Kategoriler
ORACLE

Oracle 11g: DBA-2|| Monitoring and Tuning RMAN

8.Monitoring and Tuning RMAN

Elimizde olan bir veritabanının kurtarma senaryosu mümkün olan en kısa zamanda yapılmalıdır.  Dolayısıyla backuptan dönme işlemlerinden performans önem teşkil etmektedir. Disklerimiz, tape driverlarımız, memory alanımız ne kadar düzgün yönetiliyor ne kadar performanslı ise backup o kadar hızlı alınır.  Yani backup hızlansın istiyorsak bir disk daha almalıyız. Perfoamansın %70’lik kısmı hardware solution’dır. Elimizdeki cihazlarla alakalı çözümlerdir.

Parallelization of Backup Sets

Parallelization of Backup Sets

 

Elimizde bir tape backup alma senaryosu var.  3 kafalı bir tape driverımız var. Her bir tape driver için birbirinden farklı 3 tane kanal açtık. (MML) ( Tape driverlar işletim sistemine mount edilir) Elimizde 9 tane datafile var ve bunları ayrı kanallardan ayrı backup piecelerine gönderiyoruz.  Amaç tamamiyle pararellizm ve backup’ı olabildiğince hızlı şekilde almak.  Bunları karışık yerleştirmesinin nedeni ise boyutlarından kaynaklanmaktadır. Kanalların açılma amacı mümkün olan eşit parçalarda dataları gönderip gerçek anlamda backup’ı üçe bölmektir.

RMAN> RUN {
2> ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
3> ALLOCATE CHANNEL c2 DEVICE TYPE sbt;
4> ALLOCATE CHANNEL c3 DEVICE TYPE sbt;
5> BACKUP
6> INCREMENTAL LEVEL = 0
7> (DATAFILE 1,4,5 CHANNEL c1)
8> (DATAFILE 2,3,9 CHANNEL c2)
9> (DATAFILE 6,7,8 CHANNEL c3);
10> SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
11> }

3 tane kanal açtık. INCREMENTAL LEVEL = 0 ile full backup aldık.  Session Size diye bir kavramda vardır. Bunun yaptığı iş ise datafile’ların hepsini bir dosya haline getirir sonra 3’e böler. Ama bunun kötü yanı ise bir datafile bir zarar gördüğünde ise backup’ın hepsi zarar görür ve işimize yaramaz. Ama channel backuplarda bir zarar olursa sadece o zarar görür diğerleri kullanımda olur.

Monitoring RMAN Sessions

V$SESSION :Çalışan session var mı ona buradan bakarız.

V$PROCESS : O session ne yapıyor onu görüntüler.

SQL> COLUMN CLIENT_INFO FORMAT a30
SQL> COLUMN SID FORMAT 999
SQL> COLUMN SPID FORMAT 9999
SQL> SELECT s.sid, p.spid, s.client_info
2 FROM v$process p, v$session s
3 WHERE p.addr = s.paddr
4 AND CLIENT_INFO LIKE 'rman%';

RMAN sessionları aktif olarak çalışıyorsa; backup alınıyor olabilir, restore yapılıyor olabilir vb.

Monitoring RMAN Job Progress

SQL> SELECT OPNAME, CONTEXT, SOFAR, TOTALWORK,
2 ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
3 FROM V$SESSION_LONGOPS
4 WHERE OPNAME LIKE 'RMAN%'
5 AND OPNAME NOT LIKE '%aggregate%'
6 AND TOTALWORK != 0
7 AND SOFAR <> TOTALWORK;

20 sn’yi geçen bütün işlemler buraya kayıt olarak düşer.   Backup ne kadar sürdü ne kadarı tamamlandı şeklinde yüzde kaçını tamamlamış görebiliriz. Uzun sürem işlemlerin ne kadarını yaptı SOFAR azalır TOTALWORK artar.

Interpreting RMAN Message Output

Kodu yanlış yazarsak bir hata verir ve bunun yerine ne yazılacağını söyler.

rman

Using the DEBUG Option

rman target / catalog rman/rman debug trace trace.log

rman session’ında yapılan başarılı başarısız her işlem kaydedilir. Sürecin neresinde komut patladı bulabiliriz.  Control file’lar 7 gün saklanır. 7 günden sonra eski bilgiler ezilmeye başlanır.  Geçen al aldığımız backup’ı dönebilmek için CATALOG START WITH ve ya CATALOG BACKUPPIECE komutları backup dosyalarını belirtir ve  control file’a tekrar yazdırır.

• Alert log’larda bunları görülebileceği konusu tartışılır. Alert logda çıkan sonuçlar  daha sistematik hatalardır. Database daha çok etkisi olan hatalardır. Control file backup almak istediğimizde lokasyona yazma yetkimiz yoksa bu alert loga düşecektir.

• Oracle server trace file: Kendi sessionımızı değil rman’de açılan bütün sessionları trace et diyoruz Oracle’a. Oracle takip ediyor. Debugla yaparken kendimizi trace edeceğinizi belirtiyoruz ( rman’e login olurken bu session’ı debugla aç diye) ancak burada oracle server trace file’da hangi sessionların trace edileceğini biz söylüyoruz.

• sbtio.log file: Tape driverlarla alakalı okuma-yazma problemi olursa örneğin bir tape yerinde olmasına rağmen üzerine yazamıyorsak onunla ilgili kayıtlar buraya düşer.  Defaultta yok tape driver’a yazmaya kalkıştığımızda yaratılır.

Interpreting RMAN Error Stacks

Interpreting RMAN Error Stacks

 

Aşağıdan yukarı doğru yorumlanır. Additional durumları atlayabiliriz bunlar ekstra bilgilerdir. İlk hatamız dosya ya da dizin yok hatasıdır. Dosya yaratmak istiyoruz ancak o kanalda öyle bir yer yok diye hata alıyoruz.  Temel hatayı en alttan yukarı doğru okuyarak buluruz.

 

Tuning RMAN

RMAN’de BACKUP ve RESTORE işlemleri için genelde yapılan; bir sistemde read-write ne kadar hızlı ise backup o kadar hızlı alınır.  Konfigürasyon hataları backup’ı yavaşlatır.

Dataları kopyalarken ( blokları backup’a alırken) içindeki düzgün mü değil mi diye kontrol  etmekte performansa etki eder. Backup’ı yavaşlaştır tutarlılığı arttırır.

RMAN Multiplexing

RMAN Multiplexing

Elimizde MAXOPENFILES ve FILESPERSET olmak üzere iki parametre var.  Bir seferde açılıp okunmaya başlanacak file sayısı MAXOPENFILES’dır.  4 datafile var. Bir setin içerisinde kaç tane dosya bulunacak ( max ) ise FILESPERSET ile belirlenir. MAXOPENFILES  ve FILESPERSET  Multiplexing Level ( Aynı anda yapılabilecek işlem sayısı) ile doğru orantılır.  İkisinin minimum değeridir. Level değeri 4 ve 4’de küçük ise  memory için ayrılan parçalar 1’er Mb olur.  Level 4-8 arası olursa 512 kb’lik okuma -yazmalar yapacaktır. Level 8’den büyük olursa 128 kb’lık parçalar halinde okumaya başlayacak.  Bizim için fark eden durum ise bir diskin üzerine aynı anda yazacak proses sayısının sabiti olmasıdır. Multiplexing Level değerini yükseltmek için diskin de kapasitesi olması gerekir. Disk sayımız,  paralel prosesler artarsa ya da  diskin kapasitesi, yapısı değişirse o zaman Multiplexing Level yükseltilmeye çalışılır.

Allocating Disk Buffers: Example

Allocating Disk Buffers: Example

 

4’ünü de gruplayıp diske yazıyor.  Kendi diskine göre en efektif kullanım yukarıdaki şekildedir. Arka planda çalışma şeklidir. Özelikle bozulmadığı sürece düzenleme ihtiyacı duymaz.

Allocating Tape Buffers

Allocating Tape Buffers

 

Tape’ye backup  alıyorsak block size’larımız 256 kb oluyor.  Backup alabilmek için aldığı memory’i Large Pool’dan alıyor. ( Diske backup alıyorsak her zaman large pool). BACKUP_TAPE_IO_SLAVES= false olursa PGA’den alacaktır.

//Sertifika sınav sorusudur.

Comparing Synchronous and Asynchronous I/O

Comparing Synchronous and Asynchronous I/O

 

Sekronize sistemlerde önce data read yapılacak large pool’a yazılıyor. Sonra  disk’e yazılıyor.  Diske ya da tape’ya yazılma süreci içinde bir sinyal vererek işinin bittiğini söylüyor. Bir iş bitmeden ikinci bir iş başlamıyor. Yazma prosesi bitene kadar okuma prosesi bekliyor.  Ancak bu  sistem eskidir yeni sistemler asenkron çalışıyor.

Comparing Synchronous and Asynchronous I/O

Comparing Synchronous and Asynchronous I/O

Belirli bir parçayı okumaya başladınız sonra yazmaya başladığınız an 2. parça okumaya başlıyor. Bir proses okurken diğeri sürekli yazıyor olacak ve bekleme süresi olmayacak.

Monitoring RMAN Job Performance

– V$BACKUP_SYNC_IO : Çok fazla kullanabileceğimiz şeyler yoktur.
– V$BACKUP_ASYNC_IO : Şuana kadar alınan bütün Backuplar ve o süre boyunca yapılan i/o kayıtları burada vardır.

Asynchronous I/O Bottlenecks

Synchronous I/O Bottlenecks

Channel Tuning

Tuning the BACKUP Command

Tuning RMAN Backup Performance

Setting LARGE_POOL_SIZE

Tuning RMAN Tape Streaming Performance Bottlenecks

 

Kategoriler
ORACLE

Oracle 11g: DBA-2|| Core Concepts and Tools

1. Core Concepts and Tools of the Oracle
Database

Oracle Database Server Architecture Overview

Oracle Database Server Architecture Overview

 

Bu başlık altında DBA-1 eğitimde işlenen kavramların tekrarı niteliğinde olacaktır.  Görsellerin birebir aynısı önceki konularda kullanılmıştır.

User proses ve Server proses buluştuğu zaman artık o Client işlem yapar hale gelir.  İşlemlerini yapabilmesi için client’ın  session bilgilerini tutabilmesi için  (order by, group by gibi query’lerin) bizim bağlantıyı sağlayan user’a bir memory sağlamamız gerekir. Bu memory kaynak olarak PGA ( Private Global Area — Dedicated çalışan serverlar’da– her kullancıya özel olan, hiçbir kullanıcı ile paylaşımı olmayan, herkesin pga’inin kendisine ait)  olduğu bir yapıda tahsis edilen bir memory parçasıdır.

Server proses ile user proses buluştuğu zaman bir bağlantı(Connection)  kuruluyor. Session ortaya çıkabilmesi için Connection oluşması gerekir. Connection olduğu zaman veritabanı bağlantı kurmaya hazır hale geldiğini söyler.  Kullancımız ile bağlantığımız anda da session açılır ve işlemleri yapar hale geliriz.

Memory (SGA)+ Background Prosesleri = instance

Instance-Database Configurations

Instance-Database Configurations

 

Bizim kendi configürasyonlarımız Non-Clustered sistemdi. Sahip olduğumuz instance’lar +ASM ve orcl. Veritabanı tipi RDBMS olarak gelir.

Clustered sistem de servisler orcl, orcl1, orcl2 şeklinde olabilir.  Ülkenin elektrik ihtiyacını karşılayan santral örneğini verebiliriz.  Diğer taraf durduğu zaman hayat durur ancak burada duran makine  sayısına göre veritabanı çalışmaya devam edebilir. Tek sorun performans noktasında yaşanır.  Bu taraf High Availability ancak diğer tarafa göre daha masraflıdır.

Oracle Database Memory Structures

Oracle Database Memory Structures

 

Database Buffer Cache : Burada bizim memory alanındaki önemli olan bütün datafile’lar içerisinde bulunan fiziksel olarak bulunan blokların birebir kopyaları database buffer cache alanına taşınır.

Herhangi bir client değişiklik yaptığında değişiklik önce database buffer cache’de yapılır. Daha sonra kalıcı halde kaydedilmek üzere fiziksel olan ilgili datafile’larına yazılır.

Shared Pool:  

Library Cache : Çalışan SQL / PL-SQL ‘lerin execution planları burada tutulur. İndex mi tercih edilecek full mu gidilecek gibi bilgiler tutulur.

Data Dictionary: Memory tarafında bütün metadata burada saklanır.

Redo Log Buffer:  Veritabanında select harici çalışan bütün sql statment’larının hepsi redo log dosyalarına yazılmadan önce memory alanının içerisinde redo log buffer alanına kaydediliyor. Daha sonra sekron bir şekilde log writer ile ilgili datafile’lara yazılma gerçekleştiriliyor.

Java Pool: Java Virtual Machine’den gelen java kodlarının öncelikli olacak şekilde  memory tarafında işleminin gerçekleştirildiği alan. (Opsiyonel)

Streams Pool:  Replikasyon ürünü kullanıyorsanız kullanılabilir.

Large Pool: alanı DBA-1 eğitiminde üzerinde fazla durulmadı ancak bu eğitimde sık sık kullanılacak alanlardan biridir. Backup işlemlerinde kullanılacak memory alanıdır.

Keep Buffer Pool: Devamlı memory’de tutmak istediğimiz tablolar yada indexler için kullanılan alan.

Recycle Buffer Cache: Az gittiğimiz tablo ve indexler için  kullanılan alan

nK Buffer Cache:  Farklı block size’ında çalışan tablespace’lerimize ait olan tablo ve index objelerinin saklandığı alan.

Process Architecture

• User process
— Bir uygulamada, toolda ( toad, sqldeveloper) veritabanını instance’ına bağlanmak istiyorsak client tarafında işlemleri yapabilmek için bir proses açar. Daha sonra database tarafında bizim isteğimizi gerçekleştirmek için bir proses daha verir ( server proses). İkisi bağlantıyı kurduktan sonra user proses ile fazla işimiz kalmıyor. Bizim işimiz bundan sonra server proses’le oluyor. Bizim isteklerimiz server proses ile veritabanına iletiliyor.  Ve burada aktif rol oynayan memory parçası PGA’dır.

• Database processes
Background processes: oracle instance’ı başladığı an itibariyle bunlar da başlar. Oracle instance’ının başladığı mod nomount modudur. Proseslerde yapılan işlere göre start olma modları değişiklik gösterir.

• Daemon/Application processes
— Listener: Dinleyici servisidir. Uzaktan gelen bağlantıları dinler.
Grid Infrastructure daemons: Bu oracle’ın restart özelliğidir.  Operating sistemi açtıktan sonra database ile ilgili aç-kapa gibi herhangi bir işlem yapmak durumunda değiliz. Bu işlemler otomatik olarak yapılır.  Oracle’da High Availability isimli bir proses sayesinde operating sistemler açıldığı an itibariyle otomatik start olur.

Process Structures

Process Structures

Process Startup Sequence

ASM, Lister, Database Instance’ı bunların hepsi otomatik restart olur. Oracle’ın High Availability olması sayesinde yapılır .  Bu işin sağlanabilmesi için ASM mutlaka sistemde var olmalıdır.  ASM yoksa bu tarz bir restart özelliği de olmaz.

Database Storage Architecture

Database Storage Architecture

 

Control Files (1)

Datafile(2)

Online Redo Log(3)

Önem sıraları parantez içinde belirtilmiştir.  Bunlar olmazsa olmazdır. Online redo log dosyası kaybedilebilir ancak yapılan konfigürasyon sayesinde database durmayabilir. Datafile kaybedilebilir. Datafile tipine ve konfigürasyona göre database yine durmayabilir.  Control file kaybedilirse database’in durmama şansı yoktur.  Bundan dolayı 1 numarada Control files vardır.

Parametre dosyası da önemlidir. Açılışta çok önemlidir. Yoksa açılış sağlanamaz. Control files’a erişilemez, datafile’ları göremeyiz, online redo log dosyalarına erişemeyiz.  Baştan herş ey bitmiş olur.  nomount modunda devrede olur.  SPFile ya da PFile dosyası olabilir. B

ackup dosyaları genellikle datafile dosyalarının kopyalarıdır. Online redo log dosyalarının kopyalarını Archived Redo Log Files olarak tanımlarız. Password dosyası uzaktan bağlantılarda SYSDBA gibi yüksek yetkilere sahip kullanıcıların password bilgileri burada tutulur. Alert log ve trace dosyaları; trace takip dosyası alert log da veritabanında olan biteni yazan dosyalardır. Bunlar yine database’de fiziksel olarak tanımlanan ve önemli olarak düşündüğümüz dosyalardır.

Control dosyası adet olarak 1 tane ile de çalışır ancak en az 2 tane tavsiye edilir. Bizim kullandığımız sistemler de +DATA ve FRA şeklindedir.  Birbirinin aynısı iki control file vardır. Birini kaybedince database down olur. Bunun nedeni parametre dosyasında yazan control file bilgisidir. Kaç tane ile açıldı ise o kadar ile kapatılmak ister.  Daha sonra değişiklik yapılabilir ancak açılan adette kapatılmalıdır.

Datafile dosyalarımız: SYSTEM, UNDO, SYSAUX, USER, TEMP, EXAMPLE.
Önem derecesi olarak 1 numara SYSTEM, 2 numara UNDO, 3 numara SYSAUX’tur.

Online Redo Log: 3 tanedir. 50’şer Mb’lık 2’şer tane dosya vardır.

Logical and Physical Database Structures

Logical and Physical Database Structures

 

 

Automatic Storage Management

Automatic Storage Management

ASM Storage Components

ASM Storage Components

ASM Instance

ASM Instance

DBA Configuration Tools

 

Management Framework and Related DBA Tools

 

Facilitating Database Management with
Oracle Restart

database

Kategoriler
ORACLE

Oracle 11g: DBA-1||Managing Data Concurrency

9.Managing Data Concurrency ( Aynı anda kullanılan Verilerin Yönetimi)

Yetkilerle alakalı olacak şekilde resource manager tarafında oluşturulan farklı gruplar arasında istenilen gruba öncelik tanınabilir. Rol olarak öncelik kavramı diye bir şey yoktur.

Locks

Aynı dataların farklı kullanıcılar tarafından aynı anda değiştirilme durumuyla ortaya çıkan bir kavramdır. Bu kavram veritabanında müdahale edilmediği sürece çözüme kavuşturulamayan bir kavramdır.

locks

Transcation 1 ve transcation 2 isimli 2 sorgu yapıldığını düşünelim. 1.sorguda commit yaparsak, rollback yaparsak, DDL gibi seçeneklerden birini yapınca sonlanır. Ancak bunları yapmadan 2.sorgu da yapılırsa;  aynı satıra müdahale ettiğinden ( veritabanında çalışma mantığı her zaman şudur: sütun ve satırlardan oluşan bir tablo vardır, maaş hücresine işlem yapacağımız zaman komple o satırı kapatır(locklar) ve müdahale edilemez) bekleme oluşur.  Bu bekleme dba müdahale etmediği, transcation’lardan herhangi birinin işlemden vazgeçmediği bir senaryoda hiç bitmez.

Tabloya yönelik bir aksiyon gerçekleştirilen bir sorgulama yapılırken başka bir sorguda da tablonun yapısına yönelik ( kolon ekle, var olan kolonu sil) işlem olursa yine lock işlemi olur. Tablonun yapısı ile ilgili kimsenin aksiyon olmasına izin vermez. Yapıyla alakalı olacak şekilde kimse hareket edemez.

Enqueue Mechanism ( Kuruğa Alma Mekanizması)

Çözüm süreci ise; arka arkaya dizilen bir lock mekanizması düşünelim bunu en önceki çözecektir. En öndeki transcation’u sonlandırsa arkaya doğru akar işlemler. Ya da DBA müdahalesi ile çözüme kavuşur.

Enqueue Mechanism

Bekleme işlemi Enterprise Edition tarafında aşağıdaki gibi görüntülenir.

wait

Uygulama tarafından gelen bir iş var ve bu işte bir sıkıntı olduğunu aşağıdaki performans ekranından görebiliriz:

performance

Performans ekranından Blocking Sessions’a ulaşıp işlemlere müdahale edebiliriz.

blocking sessions

kill session

 

Kill Session ile de beklemeye neden olan ve daha basit bir işlem yapan session öldürülür.

Resolving Lock Conflicts with SQL

Blocking Session’a neden olanların SID, SERIAL VE USERNAME bilgilerini getirdik ve 2. sorgu ile de öldürdük.

Deadlock

Saat 9:00’da gerçekleştirilen işlemlerde sorun olmaz. 1 row updated alırız.  Ancak 9:15’de Transcation 1 işlemi yaparsa lock’a düşer.  Transcation 2 ‘de işlemi yaparsa lock’a düşer.İki tarafta lock’a düşer.(Deadlock olur) Bu durumda kullanıcının çözme şansı yoktur. 3 sn. bu operasyon çözülmezse Oracle Server devreye girer ve ilk lock’a düşen session’ın yaptığı işlemleri iptal eder ve bu operasyonun çözülmesi adına Transcation 1 ya da DBA aksiyon almaya başlar.

Kategoriler
ORACLE

Oracle 11g: DBA-1||User Security

8.Administering User Security ( Kullanıcı Güvenliği Yönetimi)

Veritabanında şema kavramı:  user = schema

Bizim veritabanımızda yönetici accountları var. (sys, SYSTEM en yetkili iki kullanıcıdır) Account olarak ASM kısmında da her şeyin sahini SYS’dir.

Rol olarak  database tarafında en yetkili kullanıcı SYSDBA;
ASM tarafında ise SYSASM’dir.

SYS kullanıcısı normal bir user değildir, normal bir user işlemleri ile uğraşmaz. Mesela tablo yaratmaz, drop table yapmaz. tablespace yaratır. Performansı monitör eder.  Yönetici kullanıcıdır yönlendirme işlemlerini yapar.

SYSTEM yönetici de dba rolüne sahiptir. Çoğu yetkiye sahiptir ama SYS gibi database’i kapatma ya da açma yetkisine sahip değildir.

SYSMAN ve DBSNMP bunlar Enterprise Manager kullanıcılarıdır. Monitör yapar, yönetimi sağlayan kullanıcılardır. Enterprise manager yoksa bu kullanıcılarda yoktur.

create user

Server > Security – Users kısmından ulaşırız.

CREATE USER

show sql dediğimizde şunu görürüz:

CREATE USER "SEKAİST" PROFILE "DEFAULT" IDENTIFIED BY "*******" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK
GRANT "CONNECT" TO "SEKAİST"

createlike

 

Oluşturulan kullanıcılar ile detaylara bu menüden ulaşabiliriz. Benzer kullanıcı oluştur, kullanıcıyı lockla gibi özellikler vardır.

Privileges(Yetkiler)

priveleges

System privileges — veritabanının tamamında etkili yetkilerdir. ( create session vb)
Object privileges — veritabanın’da bir objenin özelliği gibi yetkilerdir (insert,select, vb)

object privileges system privileges

Bu yetkilere kullanıcıyı seçtikten sonra edit diyerek ulaşabiliriz.

ADMIN OPTION ile Kullanıcılara Obje Yetkileri Verme ve Yetkileri Alma

admin option

 

Grant ile yetki verilir revoke ile yetki alınır.

Admin yetkilerinde zincirleme etki yoktur. Tek tek verilip, tek tek alınır.

GRANT OPTION ile Kullanıcılara Obje Yetkileri Verme ve Yetkileri Alma

grant option

Object yetkilerinde zincirleme etki vardır. İlk verilen kişiden o yetki alındığında yetki diğerlerinden de alınır.

Rollere Yetki Atama ve Kullanıcılara Rol Atama

create profile

 

Rol Kavramı: Kullanıcılara verilen yetkilerin daha rahat yönetebilmek için yönetimin admin tarafından daha kolaylaştırılması için geliştirilen bir kavramdır. Bu noktada veritabanında Jenny, David , Rachel kullanıcılarından Jenny müdür diğer iki kullanıcı ise çalışandır.  İki çalışan bir tane sistem yetkisi(create ), iki tane obje yetkisine sahiptir(select, update)  rolü

CREATE ROLE HR_CLERK;
-- birinci rol yaratıldı.

GRANT CREATE JOB to HR_CLERK;
-- create sistem yetkisini verdik.

GRANT SELECT, UPDATE on hr.employees to HR_CLERK;
-- hr.employees tablosunda select ve update yetkilere role verildi

GRANT HR_CLERK TO David, Rachel
-- rolü kullanıcılara verdik.

ile yaratılır.   Bunun avantajı rolün içinde yapılan değişiklikler hemen kullanıcılara yansır. Tek tek kullanıcılar ile uğraşılmaz.

Çalışanın görüp müdürün göremediği yetki fazla yaşanan bir durum değildir.  Statü olarak daha yukarıda olduğu için daha fazla yetkisi olmalıdır.

CREATE ROLE HR_MGR;
-- rolü yarattık.

GRANT DELETE,INSERT on hr.employees to HR_MGR;
--hr.employees tablosu için yetkiler verildi.

GRANT HR_CLERK TO HR_MRG;
--hr_clerk'in sahip olduğu yetkiler verildi.

GRANT HR_MGR to JENNY;
--hr_mgr rolü Jenny'ye verildi.
set role mgr1
-- daha sonradan rol tahsis edilirse session kapanmadan alınması için

 Create Role

Server > Roles Ekranı aşağıdaki gibidir.

Creating a Role

Aşağıdaki ekrandan role ait detayları ayarlayabiliriz.

create role

 

Önemli: CREATE ANY TABLE
— içinde any geçen yetkilerde herhangi bir kullancıınn tablosunda istediğin tabloyu yarat gibi işlemler yapabilir.

SET ROLE rolunadi;
--rolü set etmek için

Önceden Tanımlanmış Roller

Predefined Roles

Profiles and Users

Kullanıcıyı kısıtlamak için yapılan ayarlardır.

profiles

Kullanıcı session’a ne kadar bağlı kalacak?, Bu kullanıcı ne kadar idle kalabilecek? gibi soruların cevaplarını buradan yapabiliriz. Ekranda Default görünüm vardır.

profile password

180 gün son expire( şifre değiştirmesini iste), kaç gün kala haber versin?   Kaç kere yanlış girebilirsin? gibi ayarlamalar yapılır.

Complexity function kısmının VERIFY_FUNCTION_11G şeklinde bir ayarı vardır. Daha kompleks paralolar yaratmak için kullanılır. ( 10g veritabanlarında büyük küçük harf duyarlılığı yoktur)

ALTER USER ile bu profil set edilir.

Quotas ( Kota Alanı)

quota

grant create table to deneme;
–tablo yaratma yetkisi verildi

tablespace(default tablespace users) içinde yer oluşması için(en az 64k) yani segment olarak olması için data olması gerekir içinde bir kayıt eklemeye bunları düzenlemeden yaparsak eklememize izin vermez.

ALTER USER "DENEME" QUOTA 100 M ON "USERS"
yaptıktan sonra işlemleri yapabiliriz.