22 Temmuz 2008 Salı

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.

Bu işlemleri de başarıyla tamamladıktan sonra, eğer aynı sunucuya Oracle kurulacaksa, temiz bir uninstallment aşaması bizi beklemektedir. İşletim sisteminiz Linux/Unix/Aix/Solaris vb. ise sıkıntı yaşamayacaksınız. Deinstall diyerek uninstall işlemini başarılı bir şekilde tamamlayabilirsiniz. Eğer işletim sisteminiz Windows ise -ki production serverlarda windows işletim sistemi kullanan varsa büyük bir alkış- işiniz birazcık daha zor. Deinstalldan sonra bir takım Oracle folderları kalmakta. Aynı zaman bir grup registry uzantıları da mevcut kalmaktadır. Onları tamamen silmezsek de bir sonraki sürüm yüklendiği zaman çakışmalar, çalışmamalar, install aşamasında hatalar, donmalar gibi bir takım acaip hata ile karşılaşabilirsiniz. Onun için nasıl verinin yedeğini alırken dikkatli davrandıysanız, deinstall aşamasında da son derece dikkatli olmalısınız. Zira, Oracle'da bir arıza oluştuğu zaman "Çözmek zor, format atın" şeklinde cevapları da veren Oracle yetkililerini, hocalarımızdan duyuyoruz. Deinstall gözünüzde büyümesin, başarmayı istemek, başarmanın yarısıdır ve kalan yarısıda bunu deneyebilmektir.

10g kurulumuna geçebiliriz. Bu noktadan sonra önümüzde temiz bir 10g kurulumu var. Bu konuda çok ciddi dökümanlara google'dan ulaşabilmek mümkün. Zira yine Linux türevi işletim sistemlerinde son derece kolay fakat belli trickleri olan bir kurulum ve Windows'da garip aşamalardan oluşan bir kurulum sizi beklemekte. Bu konuda çok fazla detaya girmek istemiyorum çünkü google sizi son derece iyi bir şekilde yönlendirecektir.

En önemli noktadayız. Verinin, taze yüklenmiş olan 10g sürümüne yüklenmesi. Export ile aldığımız backup'ı, import ile veritabanına geçirmeden önce, 9i'deki passwordfile ve spfile'ı veritabanı tamamen kapalı iken yapıştıralım. Ardından veritabanımızı yine açmadan önce import işlemini komut satırından "imp" komutu ile gerçekleştirelim. Yalnız passwordfile geçerli olduktan sonra export'u hangi yetkili user ile aldıysak, aynı user ile import edelim. Yoksa bir Oracle hatası alırsınız.

Bu işlemin arkasında yatan en büyük temel mantık, export ile import işlemidir. Bu işlemlerin düzgün yapıldığı takdirde sürüm yükseltilmesinin hiçbir zor tarafı mevcut değildir. Yalnız dikkatli adım atılmalı ve temel noktalar gözden kaçmamalıdır. Unutmadan, 10g'de sağlıklı bir veritabanı kurduğunuzu gördüğünüz anda, mutlaka RMAN ile hot backup alın ve RMAN ayarlarına mutlaka dikkat ederek yapın, bu işlemi (Controlfile ve spfile ayarları).

İyi çalışmalar.


Ogan

3 Temmuz 2008 Perşembe

Oracle Profiles

Uzun bir aradan sonra tekrar merhaba,


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;
SESSIONS_PER_USER : Bir kullanıcı için kabul edilebilen toplam session sayısıdır. Bir schemaya tanımladığımız kullanıcı, eğer bu değeri 2 olarak belirlersek en fazla 2 session yaratabilir. Yani 1 schema'da 1 kullanıcıya ait toplam 2 session açılabilir.
alter profile limit sessions_per_user 2; --> Default olarak unlimited seçilir.
FAILED_LOGIN_ATTEMPTS : Güvenlik açısından kritik bir kaynaktır. Bu değeri eğer belirlemezsek, bağlanmak isteyen kullanıcılar sürekli deneme yanılma yöntemi uygulayabilirler.
alter profile limit failed_login_attempts 4; --> 4 denemeden sonra kullanıcının hesabı kilitlenecektir.

Eğer yeni bir profil yaratmak istersek;
Create profile deneme LIMIT
failed_login_attempts 4
sessions_per_user 14
private_sga 400K
logical_reads_per_call 900;

Veritabanı yöneticisi olarak, default profile kullanmaktansa, her kullanıcıya ait, özel isimler altında profiller yaratmak çok daha sağlıklı olacaktır. Bu kaynakların komutlarının düzgün ayarlanması halinde, içerideki ve dışarıdaki tehlikelere karşı sistem bir nebze olsa korunacaktır.

İyi çalışmalar.

Ogan
Takip et: @oganozdogan