31 Temmuz 2013

EM Database Express Architecture

12c nin güzel özelliklerinden birtaneside SQL monitoring ve performans işlemlerini farklı bir konsolda (EM Database Express) yapıyor olması. 







DISPATCHERS parametresini bir kontrol ediyoruz.


dispatchers=(PROTOCOL=TCP)(SERVICE=sampleXDB)




DBMS_XDB_CONFIG.setHTTPsPort prosedürü ile port set edebiliriz.



exec DBMS_XDB_CONFIG.setHTTPsPort(5500);



Aşağıdaki sorgu ilede hangi portu kullandığımızı görüntüleyebiliriz.



SELECT dbms_xdb_config.gethttpsport FROM DUAL;


Enterprise Manager Database Express konsola EM konsola bağlanır gibi bağlanıyoruz.

https://hostname:5500/em


Hangi işlemleri yapabildiğini aşağıdaki resimden daha detaylı görebilirsiniz.

 

Bu arada Enterprise Manager Database Express konsol Single-instance ve Cluster database instance lar için çalışabiliyor.

Oracle Database 12c Multitenant/Container veritabanı mimarisi ve mantığı

Oracle, 12 cloud veritabanını 25 Haziran 2013 itibari ile yayınlamış durumda. RMAN, ASM, RAC, Dataguard vb. birçok başlıkta yenilikler mevcut. Multitenant yani kiracılı veritabanı mimarisi ile konteynır mantığı 12c nin öne çıkan yeni özellikleri olarak görülüyor.

Konteynır mantığı ile bir çok pluggable veritabanını barındıran tek bir instance yaratılmış. Bundaki amaç her bir instance için kullanılmasa bile yaratılmakta olan background processlerinin kaynak kullanımını minumuma indirgemek. Tek bir instance altında yaratılan (konteynır) bir çok PDB (pluggable database) aynı background processlerini kullanıyor.

Tabiiki Non-CDB yani bildiğimiz instance mantığı hala geçerli.


CDB yani container database mimarisi kullanımı zorunlu değil fakat eğer kullanırsak getireceği artılardan birkaç tanesi:

1- Daha az kaynak kullanımı
2- Yüksek performans
3- Patch ve upgrade kolaylığı (Tek bir instance a geçilen patch yada upgrade bütün PDB leride etkiler, dolayısıyla 1 upgrade yada patch ile 10larca PDB yi aynı anda güncellemiş oluruz)
4- Tek instance altında schema mantığı yerine tek instance altında bir çok pluggable database (Yönetim açısından kolaylık)

Yönetim açısından kolaylık çünkü herbir pluggable database aslında tek bir konteynır altında toplanıp o konteynırın kaynaklarını kullansada, ayrı bir database gibi kapatılabilir, nomount, mount, open mode lara getirilebilir, backup/restore, export/import gibi yedekleme işlemleri gerçekleştirilebilir. Eğer konteynır kapatılırsa bütün PBD ler kapanır. Eğer konteynır açılırsa sadece konteynır açılır, PDB ler mount mode da kalır. Bu bir sorun gibi gözüksede bir event trigger ı yazarak konteynır açıldığı zaman PDB lerinde açılmasını sağlayabiliriz.

Daha sonraki yazılarımda CDB ve PDB mimarilerini örneklerlede anlatıyor olacağım.



11 Temmuz 2013

Oracle Database 12c Architecture

Oracle Database 12c mimarisi haliyle biraz değişti. Yeni background process ler, memory alanları var. Bunları detaylı bir şekilde inceliyor olacağız.

Oracle Database 12c Architecture

Bu arada 12c New Features eğitimini Eylül 2013 itibari ile Bilginç IT Academy vermeye başlıyoruz.
bilginize.


Oracle 12c RAC New Features

Oracle 12c veritabanı ile beraber Real Application Cluster (RAC) tarafındada birçok yenilik ile beraber geldi. Bunlardan birkaçı. Detayları başlıklar halinde diğer yazılarımda bulabilirsiniz.



  • Universal Installer to execute root.sh
  • IPv6 Support
  • Application Continuity
  • Oracle ASM Flex
  • Flex Cluster (Hub Nodes - Leaf Nodes)
  • Grid Home Server
  • ASM Disk Scrubbing
  • Per Subnet multiple SCAN
  • GHCTL
  • Enhancements to Policy-based Databases
  • Standardized deployment and patching
  • Oracle Utility Cluster
  • Multi-purpose Installation



Oracle Database 12c New Features

Oracle enterprise manager 12c den sonra database versiyonunun Solaris, Linux ve Windows platformları için olan 64 bit verisyonlarınıda yayınladı. Birçok yeni özellik var. Bunlardan birkaçını aşağıda listeledim. Detaylarıda farklı yazılar halinde paylaşıyor olacağım.




  • Pluggable Databases
  • Database upgrade improvements
  • Restore/Recover data file over the network
  • New backup user privilege
  • How to execute SQL statement in RMAN
  • Data Pump enhancements
  • Invisible column
  • Multiple indexes on the same column
  • Restricting PGA size
  • Table partition maintenance enhancements
  • DDL logging
  • Temporary undo in- and- outs
  • Real-time ADDM
  • Implicit Result Sets
  • Concurrent statistics gathering
  • PL/SQL Unit Security
  • Online migration of an active data file
  • Online table partition or sub-partition migration
  • Table level recovery in RMAN
  • MapReduce in the Database
  • Interval-Ref Partitions
  • SQL WITH Clause Enhancement
  • Auto sequence on a Primary Key
  • 32k VARCHAR2 Support


10 Mayıs 2011

Oracle Database 11g Release 2 versiyonuna Upgrade Pathleri

Merhaba,

Oracle 11g R2 ye upgrade edeceğimiz databaseler için daha eski versiyonların bir kısmında farklı path ler izlemek gerekebilmektedir.

Örneğin; şu anki database versiyonumuz 8.1.6 olsun. İzlememiz gereken adımlar şunlar olmalıdır.

8.1.6 versiyonunu 8.1.7.4 ye upgrade etmemiz gerekmektedir. (Oracle8i Database Migration, Release 3 (8.1.7)). Daha sonra,

8.1.7.4 versiyonumuzu 10.2.0.4 e upgrade edebiliyor oluruz ki buda 11g R2 ye geçmeden önceki son step olacaktır. (Oracle Database Upgrade Guide 10g Release 2 (10.2)) Ve son olarak;

10.2.0.4 versiyonumuzu Oracle Database 11g Release 2 versiyonuna upgrade ediyoruz.


Yukarıdaki grafikte upgrade için önerilen Oracle versiyonlarını ve yükseltmemiz gereken versiyonları görebilmektesiniz.

29 Nisan 2011

Oracle Restart ve srvctl komutları

Merhaba,

Daha önceki konumuzda Oracle Restart komutları üzerine konuşmuştuk. Bu konudada Oracle Restart (ohasd) servisinin nasıl çalıştığını ve daha sonra bir database ve asm disk grubunu nasıl register edebileceğimiz üzerine biraz konuşalım.

Aşağıdaki komutla beraber "orcl" veritabanımıza hangi servislerin kayıtlı olduğunu, parametre dosyamızın yerini, ORACLE_HOME path imizi ve veritabanımızın primary/standby olup olmadığını anlayabiliriz.


Aşağıdaki örnekte ise orcl instance ına ait lgwr background process sini elimle kill ediyorum ve herhangi bir müdehaleye gerek kalmadan process i tekrar yarattığını görebiliyorum.


Eğer Oracle Restart komutlarına register etmediğim bir servis olsa idi veritabanım hang olacak ve veritabanıma startup komutunu göndermek zorunda kalacaktım.

Son olarak bir veritabanı nasıl otomatik restart komutlarından enable/disable edilir bir bakalım.

 
 
Bu tarz senaryoları çok daha detaylı şekilde Oracle 11g RAC and Grid Infrastructure Administration Accelerated Release 2 Eğitimi konuları içerisinde bulabilirsiniz.

Oracle 11g R2 Standalone Server ve Oracle Restart komutları

Merhaba,

11g R2 ile beraber Oracle Real Application Cluster (RAC) yapısında kullandığımız "srvctl" komutu ile beraber gelen merkezi yönetim komutlarını standalone server üzerindede kullanılabilir hale getirdiğini görüyoruz.

11g R2 kurulumunda eğer Oracle Grid Infrastructure for Standalone Server seçeneğini seçip kurulumu yapar isek OHASD (Oracle High Availability Service Deamon) yani Oracle Restart komutlarını aktif hale getirmiş oluyoruz (root.sh bunu yapmak üzere konfigure edilmiş).

"srvctl" komutu ile beraber hangi servisleri yönetebiliriz sorusunun cevabını hemen verelim ....
Database instances
Oracle Net listener
Database services
Automatic Storage Management (ASM) instance
ASM disk groups
Oracle Notification Services (ONS/eONS)

Evet ... Yukarıda adı geçen herbir servis yada herhangi bir yada birkaçını Oracle Restart'a register edip server'ın tutarsız yada istenmeyen bir durumda kapanması ve açılması durumunda yada herhangi bir background processin hang olması durumunda register olan bütün servislerin otomatik olarak başlatılmasını sağlamış oluruz.

Yeni yarattığınız bazı servisler otomatik olarak ohasd servislerine eklenirler. Örnek:

Create a database with OUI or DBCA
Create an ASM instance with OUI, DBCA, or ASMCA
Create a disk group (any method)
Add a listener with NETCA
Create a database service with SRVCTL
Ama aşağıdaki servisleri sizin register ediyor olamanız gerekir. Örnek:
Create a database service by modifying SERVICE_NAMES initialization parameter
Create a database service with DBMS_SERVICE.CREATE SERVICE                
Create a database with SQL statement    
Genel olarak servisleri kontrol etmek için kullandığımız komut
srvctl status database -d burak
 Servisleri başlatmak/durdurmak için kullandığımız komutlar ise:


$ srvctl start database –d burak –o open
$ srvctl start listener –l listenername
$ srvctl start service –d burak –s "service1,service2"
$ srvctl start diskgroup –g "DATA,FRA"
$ srvctl start asm
$ srvctl start eons -v
$ srvctl start ons

$ srvctl stop database –d burak –o immediate
$ srvctl stop listener –l listenername -f
$ srvctl stop service –d burak –s "service1,service2"
$ srvctl stop diskgroup –g "DATA,FRA" -f
$ srvctl stop asm –o immediate -f
$ srvctl stop eons -v
$ srvctl stop ons 

29 Mart 2011

oracleegitimi.com yayında ....

Arkadaşlar merhaba,

Eğitimlerimin yoğunluğundan dolayı arada sıradada olsa yazmaya çalışıyorum. Buarada Bilginç IT Academy eğitmenlerinin yazılarını yayınlayacağı forum tadında bir siteyi hayata geçirdik ve ortalama 1 ay kadar bir süredir karşılaşılan hatalar, başınıza gelebilecek önemli işler, tuning ile ilgili bilgiler ve/veya genel bilgiler olmak üzere aklımıza ne gelirse, hangi sorunlarla karşılaşırsak, o an ne ile uğraşıyorsak onunla ilgili bir şeyler yazıp yayınladığımız bir forum olmasını ve ziyaret edenlerin birşeyler öğrenip gideceği bir blog olmasını temenni ederek yola çıktık. Evet hadi geçelim bizim siteye bir göz atalım .... :)

oracleegitimi.com

1 Mart 2011

DML Statement Auditlenmesi ve DBMS_FGA

Bu yazımda Insert, Update, Delete ve bunlara ek olarak Select cümlecikleri için specific audit yaratmak üzerine bilgiler paylaşıyor olacağım.

Öncelikle bu işi yaparken hangi objeleri, hangi kolonları ve hangi kriterleri sağlayan statementların audit lenmesi gerektiğini tasarlamamız gerekir. Örneğin;

begin
dbms_fga.add_policy (
object_schema => 'burak',
object_name => 'deneme',
policy_name =>  'audit_deneme_maas',
audit_condition =>  'department=90',
audit_column =>  'maas',
enable =>  TRUE,
statement_types=>  'select' );
end;

Yukarıdaki blogumuzda yarattığımız policy ile "Burak" schema sındaki "Deneme" tablosuna gelen, koşulunda "maas" kolonu ve "department=90" koşullarının geçtiği "Select" cümleleri için audit aktif hale getirmiş olduk.

Hangi sorgular audite takılır, hangiler takılmaz? ....

SELECT column1,column2 FROM burak.deneme; ---- Policy çalışmaz.
SELECT maas FROM burak.deneme; ---- Policy çalışır.
SELECT column2,maas FROM burak.deneme WHERE department = 90; --- Policy çalışır.
SELECT count(*) FROM burak.deneme WHERE department = 90 AND salary > &maas_gir; --- Policy çalışır.
SELECT maas FROM hr.employees; --- Policy çalışır.
SELECT column3 FROM hr.employees WHERE department = 90; --- Policy çalışmaz.
"Policy çalışmaz" olarak not düştüğümüz örnekler audit devreye girmeyecek olan statementlardır.

Auditlenen statementlar ise aşağıdaki tablodan sorgulanabilir.

SELECT to_char(timestamp, 'YYMMYYHH24MI') AS timestamp, db_user, policy_name, sql_bind, sql_text
FROM dba_fga_audit_trail;
 
Bu tarz senaryoları çok daha detaylı şekilde Oracle Database 11g Administration Workshop I Release 2 Eğitimi ve Oracle Database 11g Security DBA Release 2 Eğitimi konuları içerisinde bulabilirsiniz.