Dec 18 2011
Kitap – Teoman Dinçel’in Oracle 11g kitabı hakkında
Merhabalar,
1 aydır zevkli uÄŸraşım olan Teoman Dinçel’in Oracle 11g kitabını bitirdim. Kitap Oracle’a baÅŸlangıç için güzel bir giriÅŸ yapmış diyebilirim. Aldığım workshop I eÄŸitimi ardından bu kitabı kurcalamaya baÅŸladığımda tüm anlatılanları anladım. Ve kitap içerisindeki verilen minik örnekleri rahatça gerçekleyebildim.
Kitabın ilk amacı, Oracle veritabanı yönetim sistemine giriÅŸ ve onu diÄŸer veritabanı yönetim sistemlerinden ayıran özellikleri göstermek. Sonrasında SQL konusuna giriÅŸ yapılıyor ve örneklerle sürekli kullanılan SQL komutları açıklanıyor. Kitabın en arkasındaki “Bir Sonraki Adım” baÅŸlıklı kısmı da ayrıca çok beÄŸendiÄŸimi söyleyebilirim.
İlk amacı yol göstermek, sonrasında biraz SQL ile boğuşmamızı sağlayan ve Oracle veritabanı mimarisini anlatan bu kitabı okumanızı tavsiye ederim.
Türkiye’de Oracle ile ilgili Türkçe bir kitap bulmak zor. Ve artık İngilizce’nin zamanı! Bugün sipariÅŸ verdiÄŸim kitabın ismi Oracle Database 11g – Underground Advice for Database Administrators. Bu kitabı da baÅŸarıyla bitirirsem mutlaka blogumda incelemesini yazacağım.
Renkli günler…
Dec 10 2011
Oracle Sohbetleri V – Oturum içinde Türkçe dil desteği
Merhabalar,
Bir çok uzmanın önerdiÄŸi gibi Oracle’ı İngilizce kullanmak onu öyle anlamak gerekir. Piyasaya bakınca sadece bir iki kitabın Türkçe olması da bunu doÄŸrular nitelikte. Ama bazen alacağınız hatalarda siz de benim gibi çaylaksanız, sizin de Türkçe desteÄŸine ihtiyacınız var demektir.
Oracle’da iÅŸlemlerimizi yaptığımız yer “session” diye tabir edilen Türkçe’si “oturum” olan birimdir. Session üzerinde yaptığımız deÄŸiÅŸiklikler de sadece session içinde kalır ve sistemi tekrardan baÅŸlattığımızda tekrar eski haline geri döner. Bu bize kendi oturumumuzda oynama imkanı sunar.
Çalışırken aldığım bazı hataları yorumlamakta güçlük çekiyorum. Buna karşı savaşacak silahım Türkçe dil desteği. Bunu nasıl mı yapıyorum? SQLPlus satırımda;
ALTER SESSION SET NLS_LANGUAGE = ‘TURKISH’;
komutu ile bana gelen uyarıları kendi dilimde değerlendirip araştırıyorum.
KiÅŸisel olarak gördüğüm oturum iÅŸlemlerinde “ALTER SESSION” ibaresi kullanılmakta ve daha sonra deÄŸiÅŸtirilecek parametre yazılmaktadır. Bu ibareyi aklımda tutmak yararıma olacaktır.
Umarım Oracle Sohbetleri yarar sağlıyordur. Ben gördüklerimi, öğrendiklerimi buradan yazmaya devam ediyor olacağım.
Renkli günler…
Dec 1 2011
Oracle Sohbetleri IV – User lock/unlock İşlemleri
Merhabalar,
Oracle 11g sürümünde terminalden veritabanını karıştırırken, başlangıçta yüklü olan hr kullanıcısına girmek istememle bu konuyu öğrendim.
İşe önce kullanıcıyı kilitleme işlemiyle başlayacağım, sonra ise kilitli bir kullanıcıyı açmakla devam edeceğim.
Lock/unlock işlemlerini yapacağımız yer sysdba ile bağlandığımız sqlplus satırı olacak. Sizin veritabanı yönetici isminiz farklı ise onunla giriş yapınız. O zaman bağlanalım:
$ sqlplus / as sysdba
Yönetici olarak girişimi gerçekleştirdikten sonra şu komutu kullanarak kullanıcılarımı ve hesap bilgilerini alıyorum. Aşağıdaki ekran görüntüsünü inceleyelim.
SQL> SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS;
Benim önceden oluÅŸturduÄŸum “KUTUPHANECI” isimli bir kullanıcı var baÅŸtan 8. sırada. İşlemlerimi bu kullanıcı üzerinden gerçekleÅŸtireceÄŸim.
Şimdi bu kullanıcımızı kilitleyelim:
SQL> ALTER USER KUTUPHANECI ACCOUNT LOCK;
Bu işlemden sonra bakalım gerçekten kullanıcı kilitlendi mi? Hemen account_status kontrol etmek için dba_users içinde görüntüleme yapıyorum.
Üstteki ekran görüntüsünden “KUTUPHANECI” karşılığını bulursanız “LOCKED” yazdığını göreceksiniz.
Kilitleme iÅŸlemi tamamlandığına göre artık kullanıcımızı açalım. Tahmin edeceÄŸiniz üzere “unlock” kelimesi bize yardım edecek:
SQL> ALTER USER KUTUPHANECI ACCOUNT UNLOCK;
Bu kodu yazdıktan sonra tekrardan sıralama yaptırarak kullanıcınızı kontrol edebilirsiniz. Hemen sıralama yaptırdığımız kodu ben size hatırlatayım:
SQL> SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS;
İşte herşey  bu kadar. Unutmamamız gereken kural tüm bu işlemler sysdba adı altında açtığımız (ya da sizin veritabanı yönetici isminiz ne ise) alanda yapılıyor olması.
Renkli günler…
Nov 23 2011
Oracle Sohbetleri III – Database baÅŸlatma parametreleri
Minik bir şekerleme tadında Oracle sohbetlerinden tekrar merhaba sevgili okuyucu.
Bugünkü üzerine düştüğüm konu database baÅŸlatmak. ÇeÅŸitli ÅŸekilleri ve kullanım amaçları var database start durumlarının. Normal hayatta duyduÄŸum ve gördüğüm kadarıyla sürekli açılıp kapanan bir database yok. Oracle kullanan sunucular hiç  kapanmıyorlar. Biraz düşününce de mantıklı geliyor deÄŸil mi? Benim bir alış veriÅŸ sitem olacak, Türkiye’de öğlen alış veriÅŸ yapan bir müşterim olacak ve bunun gibi Amerika’dan da Türkiye saatiyle gece 03:00′te alış veriÅŸ yapan müşterim olacak. Haliyle database hiç kapanmayacak.
Oldu da sistemime bir saldırı oldu. Ya da database-ime yama yükleme zamanı geldi. Ya da bir doğal afet neticesinde fiziksel sistem zarar gördü ve database kapandı. İşte bu senaryolar için farklı farklı database açma parametreleri var Oracle için.  Hemen sıralayacak olursam;
1.0 startup nomount
2.0 startup mount
3.0 startup
4.0 startup restrict
5.0 startup force
6.0 startup quiet
7.0 startup recover
8.0 startup upgrade
Tanım tanım gidelim.
1.0 startup nomount
Bu komutu sqlplus terminalinizde girdiğinizde Oracle önce init.ora parametrelerini okur ve buradan aldığı bilgilerle database-i çalıştırır. Bu parametre, recover modda kullanım için veya parametre değişiklikleri için kullanılır.
startup nomount;
 2.0 startup mount
Bu modda data dosyaları ve log dosyaları okunur. Kontrol dosyası yüklenir. Bu parametrenin kullanım amacı yapılan fiziksel yol deÄŸiÅŸimlerini ayarlamaktır. ÖrneÄŸin redo dosyasını 16 GB’tan 160 GB’ta yükseltmek gerektiÄŸinde bu modda giriÅŸ yapmak gerekir. Mount moda geçmek için;
1.0 startup nomount;
2.0 ALTER database mount;
3.0 ALTER database open;
3.0 startup
Normal database açılışları için yazılan komuttur. Data file ve database erişimleri açılır.
4.0 startup restrict
Kullanıcılara özel izinler vermek için bu modda açılış yapılır.
5.0 startup force
Geçici bir süre için database-i zorla açar. Database çöktüğü durumlarda başvurulacak yöntemlerden bir tanesidir.
6.0 startup quiet
Başlarken SGA bilgilerini de döken açılış parametresidir.
7.0 startup recover
Adından da anlaşılacağı gibi recovery operations-larda kullanılır.
8.0 startup upgrade
Database upgrade edildikten sonraki ilk açılışta kullanılması tavsiye edilen komuttur.
Renkli günler…
Oct 17 2011
Oracle Sohbetleri II – sysctl.conf ve limits.conf içi parametreler
Merhabalar,
Hepimiz çeşitli sitelerden kullandığınız sisteme göre Oracle Database için sysctl.conf ve limits.conf dosyaları ayarlarını görmüşüzdür. Ve bunları Linux sistemimizde etc/sysctl.conf ve etc/security/limits.conf adreslerindeki dosyalara yazmışızdır. Peki nedir bunlar? Ne işe yararlar? Bu makalemde bu konudan bahsedeceğim.
1.0 sysctl.conf parametreleri
Öncelikle sysctl.conf dosyasını ele almak istiyorum. Bu dosyanın içine yazacağımız parametreler aşağıdaki gibidir;
fs.suid_dumpable = 1fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 536870912kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default=4194304net.core.rmem_max=4194304net.core.wmem_default=262144net.core.wmem_max=1048586
Gelin sıra sıra inceleme yapalım;
fs.suid_dumpable = 1
Bu komut, yapılan işlemin(process) geçerli durumunu barındıran çekirdekteki alanın herhangi bir kaza(crash) anında kaydedilmesini sağlar.
fs.aio-max-nr = 1048576
AIO (Asynchronous Input Output), adından da anlaşılacağı gibi giriş ve çıkış process-lerinin düzenlendiği bir I/O çeşididir. Bu prametrede de giriş çıkış işlemlerinin maximum değeri belirtilmiştir.
fs.file-max = 6815744
İzin verilen maximum açık dosya sayısıdır.
kernel.shmall = 2097152
shmall(Shared Memory All), bellek içerisindeki paylaşılan segmentlerin büyüklüğüdür.
kernel.shmmax = 536870912
Tek bir process için paylaşılan segmentin maximum alanını tanımlar. Bu değer fiziksel RAM-den fazla olamaz.
kernel.shmmni = 4096
Sistem çapındaki maximum paylaşımlı segment sayısı. Bazı forumlarda bu parametreyi “kernel.shmmin” olarak deÄŸiÅŸtirenleri gördüm. Bu kullanım yanlıştır. Zaten terminalde sysctl.conf dosyasını akifleÅŸtirirken hata alırsınız. Koyu harflerle yazdığım kullanım doÄŸrudur.
kernel.sem = 250 32000 100 128
Bu parametre, çekirdeğimize verdiğimiz semaphore parametreleridir. Semaphore, bellek içerisindeki segmentleri kontrol eden birimdir. Kısaca bunlar için sistemin trafik polisleri de diyebiliriz.
net.ipv4.ip_local_port_range = 9000 65500
Lokal portumuzun ayarını tanımladığımız kısımdır.
net.core.rmem_default=4194304
Kernel network parametresidir. Sokete gelen, byte cinsinden, varsayılan sinyal ayarıdır.
net.core.rmem_max=4194304
Kernel network parametresidir. Sokete gelen, byte cinsinden, maximum sinyal ayarıdır.
net.core.wmem_default=262144
Kernel network parametresidir. Soketten giden, byte cinsinden, varsayılan sinyal ayarıdır.
net.core.wmem_max=1048586
Kernel network parametresidir. Soketten giden, byte cinsinden, maximum sinyal ayarıdır.
Bu dosyaya parametrelerini girdikten sonra terminalde “/sbin/sysctl -p” komutunu çalıştırmalı, kernel-i bu ÅŸekilde ayarlamalısınız.
2.0 limits.conf parametleri
Bu dosyanın sysctl.conf-a nazaran daha az parametresi vardır.
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
oracle soft nproc 2047
İşlemlerin(process) maximum sayısını belirler.
oracle hard nproc 16384
Eğer soft nproc-tan daha fazla işleme ihtiyaç duyulursa, işlem sayısının ulaşacağı maximum sayı bu parametrede yazılır. Bazı kullanıcılar bu iki parametreyi eşit yazar.
oracle soft nofile 1024
Kullanıcı login olduktan sonra açılabilecek dosya sayısını belirler.
oracle hard nofile 65536
Kullanıcı login olduktan sonra açılabilecek maximum dosya sayısını belirler.
Database iÅŸlemlerinde eÄŸer kullanıcı maximum dosya sayısında hata alıyorsa “ulimit -n 65536” yazarak dosya sayısını hard nofile olarak deÄŸiÅŸtirebilir. Bu parametreler bu yüzden önemlidir ve yazılması gerekir.
oracle soft stack 10240
Yazılması zorunlu olmamakla birlikte saklanacak yığın sayısıdır.
2 dosyamızın parametreleri böyledir. Yazdığım parametreleri ayrıntılı olmasada ne olduğunu bilerek yazmak her zaman beni mutlu etmiştir.
Renkli günler…
Oct 3 2011
Oracle Sohbetleri – I Tanışma
Merhabalar,
Yeni dönemde yeni çalışma konum Oracle veritabanı sistemini kavramak ve onu etkili bir biçimde kullanmayı öğrenmek. Malum 4. sınıf oldum, ilk sene aldığım C# ile yazılım geliÅŸtirme kursumdan sonra Microsoft sistemleri üzerinde bir dönem çalışıp, İtalya’ya gittiÄŸim sırada Python ile tanışmıştım. 1 senedir Python ile devam ettiÄŸim yazılım yolculuÄŸumda yavaÅŸ yavaÅŸ Microsoft ve yazılımlarından uzaklaşıp, Linux’e terfi etmiÅŸ bulunmaktayım. (Tabi hala Starcraft Windows’ta olduÄŸundan birazcık oraya bağımlıyım
) Kendimi geliştirme yolunda şimdi ise Oracle eğitimine başlangıç yaparak bu dünya hakkında bilgi toplamaya başladım. Ve topladığım bilgileri yine buradan sizlerle paylaşacağım.
İlk hedef Oracle 11g’yi Ubuntu üzerinde çalıştırmayı baÅŸarmak. Bunu gerçekleÅŸtirirsem buradan yayınlayacağım yazı ile nasıl kurulum yaptığımı anlatacağım. Okulumun kütüphanesinden “Oracle Veritabanı Yönetim Sistemi – Ali Öztürk” kitabını buldum. BaÅŸlangıç için hoÅŸ bir kitaba benziyor.
Durum böyle sevgili okuyucu. Tekrar görüşmek üzere.
Renkli günler…
Â














