
Ogan Ozdogan
Website bağlantısı: http://oganozdogan.blogspot.com/
DBMS_STATS Paketi Nedir ve Kullanımı / ANALYZE Komutu
DBMS_STATS paketi 9i ile birlikte aramıza katılan ve Oracle veritabanının kurulumu ile gelen bir "built-in" pakettir. Bu paketin amacı Cost Based Optimizer (CBO) için gerekli istatistikleri, objeler üzerinde toplamaktır. DBMS_STATS paketini ya da ANALYZE ifadesini kullanarak istatistikleri toplamanız mümkündür ancak Oracle 9i ile birlikte DBMS_STATS paketinin kullanılması tavsiye edilmektedir. Bu konuyla ilgili bir OTN forumuna cevap yazmıştım. Buradan görebilirsiniz.
SQL Nedir, Parse Call ve Plan / Optimizer
SQL
SQL hakkında 2008 yılından kalma bir yazı yazmıştım. Buradan ulaşabilirsiniz. Bu yazımda biraz SQL'in ne olduğundan, hangi amaçlara hizmet ettiğinden bahsedeceğim ve ardından optimizer ile olan ilişkisinden, SQL planından ve SQL çalışma mantığından bahsedeceğim.
Csv Dosyalarının Oracle Veritabanına Yüklenmesi
*.csv Dosyalarının Oracle Veritabanına Yüklenmesi (SQLLDR)
Merhaba,
Takip etmek istediğim konu ile biraz alakasız olacak fakat önemli bir konu ve hiç bahsetmediğim için yazacağım.
Belirli durumlarda Oracle veritabanına external verileri yüklememiz gerekebilir. Yani, bu veriler çoğu zaman bir Java veya C# arayüzünden gelmeyebilir. Bu veriler herhangi bir programlama dilinin arayüzünden gelmediği gibi, uzantıları da farklı olabilir. Bu durumda kullanabileceğimiz Oracle aracına SQL-LOADER diyoruz (komut olarak kullanım şekli ise SQLLDR).
Bir excel dosyasındaki bütün verileri .csv (comma seperated value) olarak değiştirebiliriz. Bu değişikliği yaptıktan sonra kısa bir örnek ile devam edelim. Bu arada sqlldr'ın çalışabilmesi için öncelikle bir control dosyası (.ctl) yaratmamız gerekiyor.
Veri Tipleri ve Temel SQL Queryleri
ORACLE VERİ TİPLERİ
Kullandığımız veritabanında, verileri saklayabilmemiz için tablolar yaratmamız gerekmektedir. Bu tablolarında bünyesinde de birtakım veri tipleri mevcuttur. Bu veri tipleri, saklanabilecek verinin bir anlamda kimliğini açığa çıkartmaktadır.
Veri tipleri arasında;
- CHAR(X): Büyüklüğü 1 byte ile 2000 byte arasındadır ve bu aralıktaki karakter değerlerini saklayabilmek için kullanılır. CHAR'ın özelliği, tablo yaratılırken eğer CHAR(5) olarak bir değişken yarattıysak, verilen değelerin tamamı doldurulacak demektir. Eğer 5'ten büyük bir karakter girmeye çalışırsanız hata alırsınız fakat düzeltemenin yoluda modify etmektir.
- VARCHAR2(X): Büyüklüğü 1 byte ile 4000 byte arasındadır. CHAR'dan en büyük farkı ve en büyük kullanılma sebeplerinden biri ise, VARCHAR(200) ile VARCHAR(2)'nin yaratıldıkları zaman aynı yeri kaplıyor olmasıdır. Yani, bir değer girilene kadar veritabanında aynı miktarda yeri işgal ediyorlar. Burada gelebilecek soru; neden varchar değilde varchar2 olabilir. varchar reserved keyworddür ve ileriki bir zamanda kullanılmak üzere saklanmıştır.
İlişkisel Veritabanı, Oracle ve SQL -ORACLE KURULUMU
ORACLE KURULUMU
Oracle veritabanının kurulumu ile yazılarımıza başlıyoruz. Yapılacak örnekler Oracle 10g üzerinde olacaktır ve Windows XP (32 bit) kullanılacaktır.
OTN (Oracle Technology Network) adresinden Win32 Database'i indirelim. Java tabanlı olan Oracle Universal Installer (OUI) başlatılmadan önce, bölgesel dil ayarlarımızın İngilizce'de olduğundan emin olalım. Türkçe olarak ayarlı ise kurulum sırasında problem yaşayabilirsiniz.
OUI çalıştırdıktan sonra Oracle kurulum dizinini seçiniz. Veritabanınız buraya kurulacaktır. Kurulum tipleri arasında Enterprise (bütün özellikleri), Standard (belirli bir kısmı kurulmaz) ve Personal (tek kullanıcı) vardır.
Install dedikten sonra ilk önce yazılımı, ardından veritabanını kuracaktır. Yükleme tamamlandıktan sonra Exit diyerek OUI'dan çıkıyoruz.
Oracle versiyon yükseltilmesi hakkında...
Oracle versiyon yükseltilmesi hakkında...
Merhaba,
Oracle versiyonunu yükseltirken en kritik noktalardan birisi belkide her sistemin en kritik varlığı olan "veri"nin taşınmasıdır. Gelin, en baştan başlayalım...
Diyelim veritabanınızın versiyonu 9i ve siz bu versiyonu 10g'ye yükseltmek istiyorsunuz. Peki ilk adım ne olmalı? İlk adım, sahip olduğunuz bütün verinin sağlam bir şekilde yedeğinin alınmasıdır. Bu verinin yediğini RMAN (Recovery Manager) ile almak istemek en doğal hakkınız. Zira incomplete recovery yapabilmeniz için de control file ve spfile yedeği RMAN ile alınabilmektedir. Ancak, burada çok kritik bir nokta vardır. O da RMAN'in sadece aynı Oracle versiyonlarında ve sadece aynı işletim sistemlerinde çalışabilmesi. RMAN'dan alınan yedek, ancak ve ancak belirttiğim sistemi sağlayabilirseniz ayağa kalkacaktır. Onun için de RMAN kullanımını gözden çıkarmalısınız.
Tabii Oracle'da çareler tükenmez. Elimizdeki bir diğer koz ise, "export/import" özelliğidir. Veritabanının "exp" ile komut satırındayken tam yedeğini alalım. Mutlaka hata oluşmadan aldığından emin olalım. Bu aşamada "yaşasın export aldım, hadi 10g'yi kuralım" deyip, hızlı bir adım atmayalım. Çünkü bu aşamadan sonra password file ile spfile'ı da mutlaka export ile birlikte bir yere kopyalayalım. Netice itibariyle, ayağa kalkacak olan veritabanı, halihazırda passwordfile ve spfile'ı aynı olacak bir veritabanı olacaktır.
Oracle Profiles
Oracle Profiles
Bugün, aslında hepimizin çok detaylı bilmesi gerektiği bir konuyu ele almak istedim. Oracle Profilleri. Peki Profil nedir?
Bağlı bütün kullanıcıları yaratırken, öncelikle bir profile belirleriz. Eğer, kullanıcı yaratırken belirtmezsek default profile ile yaratılacaktır. Tabii ki bu şekilde bir sistem oluşturmak son derece sakıncalı olabilmektedir. Profillerin içinde barındırdığı özellikleri sayesinde çoğu zaman oluşabilecek güvenlik açıklarından kurtulabilmekteyiz.
En çok kullanılan kaynakları ise;
CONNECT_TIME : Dakika bazında, sessionlar için kabul edilen bağlantı zamanını düzenler.
alter profile limit connect_time 300;
*** Burada belirtmeliyim ki, profile'a ait bir kaynağı değiştirirken mutlaka "limit" kullanılması gerekmektedir. Sık sık unuttuğum için belirtmem de fayda var :)
IDLE_TIME : En kritiklerinden birisi de idle_time'dır. Adından da anlaşılabileceği gibi, herhangi bir schemaya bağlı bir session'ın hiçbir DML/DDL komutu kullanmadan beklediği süreye denir. Eğer kullanıcı bu süreyi aşarsa, session'ı Oracle tarafından öldürülür. Yine dakika bazında değer verilebilmektedir.
alter profile limit idle_time 10;
SQL NEDİR ?
SQL NEDİR ?
Merhaba,
RDBMS (Relational DataBase Management Systems), yani "İlişkisel veritabanı yönetim sistemleri"'nin temeli 1980'li yıllarda atılmıştır. IBM tarafından Oracle tarafında geçen ve 2003 yılında vefat eden Dr. Edgar J. Codd bu temelin atılmasında çok büyük rol oynamıştır.
İlişkisel veritabanının mantığı veriye daha hızlı ve sağlam ulaşmaktan geçer, diyebiliriz. Veri modelleri arasındaki bağlar birbirleri ile ilişkilendirildiği zaman mantıklı ve stabil sonuçlar elde edildiği anlaşılmıştır.
Bu andan itibaren SQL (Structured Query Language)'in önemi o yıllardan başlayarak hızlı bir şekilde artmıştır. Devamında gelen PL/SQL (Procedural Language) ile de günlük veritabanı yönetimi işlemlerimiz için de bir dönüm noktası olmuştur.
Aslında bu yazımda SQL'den bahsetmek istiyorum. SQL'i nerelerde, neden, ne zaman ve ne için kullanıyoruz ona bakalım.
ORACLE - ORA HATALARI
ORACLE - ORA HATALARI
Merhaba,
Oracle veritabanını yönetirken, yedeğini alırken, performansını ayarlarken veya sql-pl/sql sorguları hazırlarken hepimizin, yaptığımız hatalardan dolayı aldığımız hatalar ORA- ile başlar ve hatanın algılanması için son derece kritiktir.
Destek verdiğiniz kurum, şahıs veya kuruluşta Oracle konusunda hatalar oluşuyorsa, bunu çözmenin en mantıklı yolu ORA hatasına bakmaktadır. İkinci olaraksa alert.log'a bakılabilir.
Sıklıkla karşılaştığımız ORA hatalarını kısaca şu şekilde özetleyebiliriz;
BLOCK CHANGE TRACKING
BLOCK CHANGE TRACKING
Merhaba,
Bu yazımda Oracle Database 10g'ye özel bir özellik olan ve RMAN ile incremental backuplarımızı çok kritik ölçülerde hızlandırabilen "BLOCK CHANGE TRACKING"den bahsedeceğim.
Bu tarz bir hız artışına neden ve hangi durumlarda ihtiyacımız olabilir?
1) Veritabanımız ciddi boyutlarda ve adette verileri barındırıyorsa, yedekleme işlemi saatlerce sürebilir.
2) Gelişen ve hızla büyüyen ülkemizde ve dünyada artık zamanın çok kritik olduğu.
3) Incremental backup ile geliştirilmiş bir yedekleme stratejisi oluşturmuşsak.