28 Temmuz 2012 Cumartesi

Tablonun Farklı Bir Tablespace'e taşınması

Oracle de oluşturduğumuz nesnelerimizi (tale,index...) farklı tablespace'e taşıma ihtiyacı duyduğumuzda aşağıdaki işlem adımlarını izleyebiliriz.

--TESPİT
select * from dba_segments where tablespace_name<>'ORNEK_TABLESPACE' 
and owner not in ('SYS','SYSTEM')

--TAŞIMA SQL OLUŞTURULMASI
SELECT 'ALTER TABLE ' || OBJECT_NAME || ' MOVE TABLESPACE ' ||'ORNEK_TABLESPACE;' FROM ALL_OBJECTS WHERE OWNER = 'ORNEK_USER' AND OBJECT_TYPE ='TABLE';


--INDEX REBUILD SQLLERININ OLUŞTURULMASI
SELECT 'ALTER INDEX '||INDEX_NAME||' ORNEK_TABLESPACE;' FROM ALL_INDEXES WHERE OWNER = 
'ORNEK_USER';


   Bu tarz durumlara tekrar düşmemek için kullandığımız systemlerde var olan userların default tablespace lerini kontrol etmemiz gerekiyor. Çünkü default tablespace’imiz ne ise oluşturacağımız tüm nesnelerde o tablespace üzerinde oluşacaktır. 

-- Kullanıcıların default tablespace lerini kontrol etmek için ;
SELECT username, account_status, default_tablespace FROM dba_users WHERE account_status = 'OPEN' AND DEFAULT_TABLESPACE<>'ORNEK_TABLESPACE'


-- Kullanıcıların default tablespace’lerini değiştirmek için ;
ALTER USER ORNEK_USER DEFAULT TABLESPACE  ORNEK_TABLESPACE;

24 Temmuz 2012 Salı

SGA - PGA parametreleri ile performans arttırımı.

SQLPlus ile SGA – PGA değerleri üzerinden performans iyileştirme çalışmaları.
Oracle ilk kurulduğunda gelen default memory dağılımı yeterli olmayabilir.

Aşağıdaki kod blokları ile Oracle veritabanının Memory dağılım işlemlerini manuel yapabiliriz.Dolayısıyla hem sistem hızlanacak hem de daha fazla kişi veri tabanına erişebilecektir.

ü Önce cmd ekranından SQLPLUS ile veritabanına bağlanılır.

> SQLPLUS "SYS/password AS SYSDBA"
ü Sonra Oraclenin mevcut parametre dosyası olan init.ora… dosyasını okunabilir , değiştirilebilir dosya formatında dışarı alırız.

> CREATE PFILE='C:\xx.initora' from spfile;
ü Dışarı alınan XX.initora dosyasının önce yedeğini alarak , WordPad uygulaması ile açıp içerisindeki parametre değerleri üzerinde gerekli görülen düzenlemer yapılıp kaydedilir. Not: Dosya içerisinde sadece koyu yazı ile belirtilen parametreler üzerinde değişiklik yapınız. Bu değerler db sunucusunun sistem , donanım özellikleri ve uygulamanının kullanım yoğunluğu dikkate alınarak belirlenmelidir. (Aşağıdaki örnek , 32 Bit 2003 Windows işletim sistemi üzerindeki, 4GB Ram bulunan Server için yapılan bir çalışmadır.)

Sga target değeri 32 bit işletim sistemlerinde Max=1600M – 1800M kullanılabilir.


Düznlenen yeni parametre değerlerini sisteme uygulamak için ilk adım olarak veritabanını kapatmamız gerekir.

> shutdown immediate;
Sonraki adım, veritanına yeni parametre değerlerini okutmak ve veritabanını başlatmak.

> CREATE SPFILE FROM PFILE='C:\PROJE.initora';
> startup open

Export - İmport (Mantıksal yedekleme)

11.2- Mantıksal yedekleme işlemi
Oracle’da mantıksal yedek alma denince Export ve Import anlaşılır. Bunlar Oracle firmasının geliştirdiği komut modunda çalışan yardımcı programlardır. Bu tür yedek alma veritabanı nesnelerinin yedeklenmesi olduğu için mantıksal yedek olarak adlandırılır. Yani export ile log dosyalarının ya da kontrol dosyalarının yedeği alınmaz.

Export
Export Oracle’ın mantıksal yedek alma işlemleri için geliştirdiği bir üründür. Mantıksal yedek alma veritabanının kapatılmaması gerektiği zaman kullanılan bir yedek alma türüdür. Bu yöntemle farklı modlarda yedek alınabilir. Bunlar aşağıda açıklanacaktır. Export ile alınan yedekler ancak Import ile geri yüklenebilir. Export kullanılarak bir veritabanının yapısı veriler olmadan yedeklenebilir, belli tablolar verilerle birlikte ya da sadece yapıları ile yedeklenebilir, yani yedeklenecek veritabanı nesnelerinin seçimi yapılabilir.

Export almada 4 mod vardır:
Birincisi Tablo Modu(Table Mode)’dur. Bu modda kullanıcılar kendi tablolarının yedeklerini alabilirler ya da hakkı olan kullanıcı bir başka kullanıcnın tablolarının yedeklerini alabilir. İkincisi Kullanıcı Modu(User Mode)’dur. Bu modda bir kullanıcının nesnelerinin yedeği alınabilir. Üçüncüsü Tam Veritabanı Modu’dur(Full Database Mode). Bu modda tüm veri tabanının yedeği alınabilir. Bu modu gerçekleştirmek için kullanıcının bazı özel haklara sahip olması gerekir. EXP_FULL_DATABASE rolüne sahip olan kullanıcı ya da DBA rolüne sahip olan kullanıcılar bu modu kullanabilir. Dördüncüsü Tablo Uzayı Modu’dur. Bu modda da tablo uzaylarının yedeği alınır.

Export yardımcı programını çalıştırmak için komut moduna geçilmelidir. Aşağıdaki örnekler bu dizine geçip komut modunda yazılarak çalıştırılabilir.

Tam Veritabanı Modu örnekleri:
>exp MASCA/password@PROJE full=Y file=d:\yedek.dmp
Yukarıdaki komut tüm veritabanının yedeğini alır. Eğer tüm veritabanı içerisinde istenilen belli özelliklerin yedeği alınmak istenirse etkileşimli metod kullanılır(aşağıdaki gibi).
>exp MASCA/password@PROJE
........
Enter array buffer size:4096>(return) ‘veri tamponunun büyüklüğü
Export file:EXPDAT.DMP>d:\yedek.dmp ‘varsayılan yedekleme dosyası ismi EXPDAT.dmp
E(ntire databese), U(sers), T(ables):U>e ‘tüm veritabanı mı? Kullanıcı ya da Tablo yedeği mi?
Export grants(Y/N):Y>y ‘kullanıcı haklarının yedeği alınsın mı?
Export Table Data(Y/N):Y>y ‘ veriler kopyalansın mı?
.......
Kullanıcı Modu Örnekleri:
>exp MASCA/password@PROJE file=d:\yedek.dmp
MASCA kullanıcısının tüm nesneleri ve verileri yedek.dmp dosyasına yedeklenir. Etkileşimli mod için yine “>exp MASCA/password@PROJE” şeklinde komut girilir.

Tablo Modu Örnekleri:
>exp MASCA/password@PROJE tables(‘il_listesi’,muhasebe.personel,finans.birimler) rows=n
MASCA kullanıcısı kendisine ait olan il_listesi tablosunu, MUHASEBE kullanıcısına ait olan personel tablosunu ve FINANS kullanıcısına ait olan birimler tablosunu yedekliyor. “rows=n” bildirisiyle tablo verilerinin alınmamasını sadece tablonun yapılarının kopyalanmasını sağlıyor.

Import
Export ile yedeklenen veriler Import yardımcı programıyla geri getirilebilir. Yedeklenmiş dosyanın tamamı ya da bir kısmı yedekleyen kullanıcı için geri getirilebildiği gibi bir başka kullanıcıya da aktarılabilir.
>imp MASCA/password@PROJE file=d:\yedek.dmp touser=MASCA fromuser=MASCA tables=(personel,birimler)
MASCA kullanıcısının yedek.dmp tablosuna yedeklediği personel ve birimler tabloları geri getirilir.
>imp MASCA/password file=d:\yedek.dmp fromuser=MUHASEBE touser=MASCA tables=(*)
MASCA kullanıcısının yedek.dmp isimli yedek dosyasındaki tüm tablolar MUHASEBE kullanıcısına aktarılır. Tüm tablolar için “*” işareti kullanılır.

Windows7 Oracle Client Kurulum Hatası

windows7 , vista gibi işletim sistemlerine Oracle client kurulumu yaparken
hata oluşabliyor.

Hata, mesaj ekranında
"Unknown"
"Unknown"
"Unknown"
şeklinde gelir.

Uyarıyı geçip kuruluma devam etmek için kurulumu aşağıdaki yöntemle yapabilirsiniz.

setup -ignoresysprereqs

Oracle Clientin Kaldırılması

•Servislerden ( services.msc) oracle ile ilgili servisleri durdurun.
•Registryden (regedit) HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE altında bulunanları silin.
•HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services oracle ile ilgili anahtarlar var mı bakın? Var ise silin, yoksa bir sonraki adıma geçin.
•C:\Program Files altındaki oracle klasörünü silin.
•Artık oracle client sistemden kaldırılmıştır.

18 Temmuz 2012 Çarşamba

64 bit Windows ta TOAD bağlantı hatası


64 Bit Windows kullanıyorsanız TOAD programını default path olan "Program Files (x86)" altına kurduğunuzda bağlantı hatası ile karşılaşılır.

Programı "Program Files (x86)" altına değil de farklı bir dizine  C:\ , D:\ ,  v.b. bir lokasyona
kurduğunuzda problem çözülecektir.

17 Temmuz 2012 Salı

SID set etmek

LINUX-UNIX sistemlerde birden fazla db var ise sql plus vb.. bağlantı yöntemlerinde sorun çıkabilmektedir. Burada hangi db' ile ilgili işlem yapılacak ise ilgili db'in SID bilgisi set edilmeli;

export ORACLE_SID=MASCA