Your SlideShare is downloading. ×
Oracle Database and Technologies Seminar - Istanbul University, 28.05.2014
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Oracle Database and Technologies Seminar - Istanbul University, 28.05.2014

887
views

Published on

Oracle Database ve Teknolojileri Semineri, İstanbul Üniversitesi, 28.05.2014 …

Oracle Database ve Teknolojileri Semineri, İstanbul Üniversitesi, 28.05.2014

Oracle Database and Technologies Seminar, Istanbul University, 28.05.2014

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
887
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
16
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1
  • 2. <Insert Picture Here> Oracle Database ve Teknolojileri Orhan Eripek, Senior Oracle DBA, Aksigorta http://orhaneripek.com/ Eğitim Kırgızistan-Türkiye Manas Üniversitesi, Bilgisayar Mühendisi, 2005 Mezunu Haliç Üniversitesi, Bilgisayar Mühendisliği Yüksek Lisans 2009 Mezunu İstanbul Aydın Üniversitesi, Bilgisayar Mühendisliği Doktora öğrencisi... İş Deneyimleri Şişli Etfal Eğitim ve Araştırma Hastanesi, Oracle DBA, 3 yıl, Vodafone, Oracle Datawarehouse Developer, 2 yıl, Turkcell, Operation Admin, 2 yıl, Vodafone, Oracle PLSQL Developer, 1 yıl, Aksigorta, Senior Oracle DBA, Eylül 2013…
  • 3. 3 • Oracle, Microsoft’un ardından dünyanın ikinci büyük yazılım firmasıdır ve kendi adını verdiği database sistemi ‘Oracle Database’, dünyanın en çok kullanılan ve tercih edilen veritabanıdır. • Uygulama geliştirme araçları, uygulama sunucusu ve de iş uygulamaları alanlarında yazılım çözümleri bulunmaktadır. • Oracle, ilişkisel veritabanı yönetim sistemidir-Relational Database Management Systems'dir (RDMS) • Büyük hacimli verilerin ilişkisel olarak bütünlüğünün korunarak saklandığı, aynı anda birden fazla kullanıcının bu bütünlüğe bozulmadan ulaşabildiği güvenli ve hızlı programlardır. • Oracle’ın programlama dili PL/SQL’dir. • Uzun süre kapatılmadan açık kalabilir. • Oracle Datawarehouse, Oracle RAC, Oracle Datamining, Oracle DataGuard, Oracle Cloud Computing,....vs. ve daha çok fazla teknoloji çözümleri vardır. • Tüm bu gelişmiş özellikleri ile Oracle’ın maliyeti (lisans ücreti) de oldukça yüksektir. Oracle Nedir?
  • 4. 4 Oracle sitelerini takip edin (oracle.com, oracle-base.com, tahiti.oracle.com,.....vs.) Oracle blog’larını takip edin (kamranagayev.com, tonguc.wordpress.com, gokhanatil.com, zekeriyabesiroglu.blogspot.com,.....vs.) PC’nize Oracle’ı ve üzerine kendi db’inizi kurun, merak ettiğiniz tüm Oracle ürünlerini (Datawarehouse, RAC, DataGuard, Datamining,..vs.) kurarak tecrübe edinin Çalıştığınız kurumlarda büyük projelere girin, cesaretli olun, kendinize güvenin, sorumluluk alın, daha hızlı öğrenin Paylaşımcı olun, paylaşmak öğrenmektir, daha çok şey öğrenmek ve en doğrusunu öğrenmek için paylaşın, anlatın Oracle Seminer, Eğitim ve Oracle Day etkinliklerine katılın Ne kadar çok şey öğrenirseniz öğrenin her zaman çırak, öğrenci olarak kalmaya devam edin. Oracle’ı gerçekten öğrenmek istiyormusunuz? Öyleyse ASLA PES ETMEYİN! ve KAPASİTENİZİN ÜZERİNE ÇIKIN! Oracle Kariyer Adımları: Bunları yapın...
  • 5. 5 ‘ASLA PES ETME.mp4’ izleyelim...
  • 6. 6 Oracle Kariyer Adımları: Bunları yapmayın... Google’dan aratıp bulduğunuz her bilgiye körü körüne inanmayın!, çünkü zamanla bilgi kirliliği artışı sözkonusu, güvenli adreslerdeki bilgileri de inceleyip tutarlılığını karşılaştırın. ‘Benden bi cacık olmaz’ demeyin! Kendinize güvenin, darlandığınızda aksine kendi kendinizi gaza getirin –sevdiğim sözlerden biri : ‘İnsanoğlunun başaramayacağı şey yoktur!’ Bazen doğru zannettiklerimiz gerçek doğru olmayabilir, ‘her bildiğim %100 doğrudur’ demeyin!, şüpheye düştüğünüz doğrularınızın doğruluğunu güvenilir üstadlardan teyit ettirin. ‘Ben çok emek, zaman harcadım, çok çalıştım, o da öyle öğrensin’ demeyin! Bilgilerinizi toprağa gömmeyin, anlatarak hem bilgilerinizi tazeleyin hem sevilen, sayılan biri olun. ‘Üstadım bu soruma güler mi acaba?’ demeyin! soru sorarak öğrenmek en hızlı öğrenme yöntemidir, üstadlarınıza soru sormaktan asla çekinmeyin, ona sormazsanız sürekli yine kendinize sormak durumunda kalacaksınız ve bu soru işareti belki uzun süre beyninizi meşgul edecek. Hiç kimseyi rakip olarak görmeyin! En büyük rakibiniz kendinizdir, başkalarıyla yarışarak ne hedefinize ulaşabilirsiniz ne de iş yaşamınızda sevilen biri olursunuz. ‘Üstadlarım zaten çok yoğun çalışıyorlar, benimle ilgilenemezler’ demeyin!, bıkmadan takipçileri olun, elbet uygun zamanlarında size döneceklerdir.
  • 7. 7 Oracle öğrenmeye nasıl başlamalı? • Oracle hakkında google’dan araştırma yapın, Oracle dokümanlarını okuyun, okuyun sonra tekrar okuyun  • Oracle 11g r2’yi veya Oracle APEX’i bilgisayarınıza kurun, (benim tavsiyem; Vmware Workstation sanal machine uygulamasını kurun, üzerine Oracle Linux veya Solaris’i kurun, bu sanal sisteminize de Oracle database’i kurun) • Test çalışmalarınızı yapabileceğiniz kendinize ait datanız, database’iniz olsun; table, index, constraints, procedure, function, package, triger, ..vs. objeleriniz olsun ve bunlar üzerinde denemeler yapın, pratiğinizi artırın
  • 8. 8 Oracle öğrenmeye nasıl başlamalı? • İlgi duyduğunuz veritabanı işlemlerini yapın, mesela backup-recovery, import-export, data moving, data replication, data partitioning, spool-sql*loader, ....vs. çalışmalarınızı yapın • En az 1 Oracle üstadı edinin  tecrübelerinden faydalanın
  • 9. 9 Oracle öğrenmeye nasıl başlamalı? • Büyük kurumsal şirketlerin IT departmanlarının Veritabanı birimlerinde Oracle DBA, Oracle Plsql Developer, Oracle Datawarehouse Developer, Oracle Application Developer, Oracle BI Developer,...vs. pozisyonlarından birinde kariyerinizi sürdürün • Oracle Day, konferans, sunum ve eğitimlerine katılın, seminerler verin, blog sitesi tutun, bildiklerinizi paylaşın, anlatın
  • 10. 10 Oracle öğrenmeye nasıl başlamalı? • Hayatınızdaki herşeye zaman ayırdığınız gibi belli aralıklarda Oracle öğrenmeye de sürekli zaman ayırın • Oracle sertifikalarını (OCA, OCP, OCM) kendinizi hazır hissettiğinizde alın • İngilizcenizi geliştirin
  • 11. 11 Oracle DBA ve Oracle PLSQL Developer • DBA, developer’ı genellikle ‘Production db’i düşünmediğinden’, Developer ise DBA’i genellikle ‘kodunu tam anlamadığını düşündüğünden’ eleştirir  • Birbirinden ayrılmaz 2 parçadır; DBA en az developer kadar SQL ve PLSQL bilmelidir, Developer ise veritabanı tasarımını ve nasıl çalıştığının farkında olmalıdır
  • 12. 12 • Şirketlerde genellikle bu 2 grup ayrı lokasyonlardadır, halbuki bu 2 grubun aynı yuvarlak masa etrafında birlikte çalışmaları gerekir  ✓x Oracle DBA Oracle Developer • DBA, ‘canım sıkıldı, biraz da kod yazayım’ diyerek başka bir şirkette Developer olarak veya Developer, ‘canım sıkıldı, biraz da veritabanı adminliği yapayım’ diyerek başka bir şirkette DBA olarak zaman zaman çalışabiliyor 
  • 13. 13 İyi PLSQL kodu nasıl yazılır? • Sql’in sayısal ve karakter fonksiyonları (substr, instr, length, regexp_substr,..vs.) ile sunduğu çözümlerin farkında olun, böylelikle daha performanslı kodlar üretmeye çalışın, • Plsql kodunda yapacağımız işin yükünü sql sorgularına yüklemeliyiz, procedure, function veya package yapılarına çevireceğimiz plsql kodlarını bu şekilde çok fazla yormamış oluruz, ‘iyi bir sql’den iyi bir plsql kodu çıkar’, • En basit ve kısa yoldan çözüme gidilmeli, karmaşık kodlamalardan uzak durulmalı, sade ve anlaşılır olmalı, • Bugün için kod yazmayın, kodlarımız yıllar sonra da çalışabilecek kadar esnek olmalı, • Olabilecek hata durumlarına karşı kodumuz hazır olmalı, exception, sqlerrm, raise_application_error() kullanılmalı, • Farklı case’leri düşünerek unit test yapılmalı, developer aynı zamanda kendi yazdığı kodun testçisidir,
  • 14. 14 İyi PLSQL kodu nasıl yazılır? • Çalıştığınız kurumun kod yazma standartlarına (kod formatlama, comment girme, procedure, function .. vs. isimlerinin başına veya sonuna standart ifadeler getirme..vs. ) uyun, • Kodunuz, yarım saatten fazla sizi uğraştırıyor ve çözüme ulaşamıyorsanız mutlaka yardım alın, • Db’deki tüm package, procedure, function,..vs. kodlarını zamanla inceleyin, kullanılan teknikleri görün, • Kodunuzu tamamladıktan sonra bir bilene kontrol ettirin, onaylatın, • Kod versiyonlama yapın (SVN, Clear Case..vs.),
  • 15. 15 ENCRYPTION & DESCRYPTION DES : Data Encryption Standart’ın kısaltılması olan DES algoritması yaklaşık 30 yıldır banka ve iletişim kurumlarının özellikle finansal işlemlerinde veri güvenliğinde kullanılmaktadır. 3DES : Three-DES veya Triple DES olarak adlandırılır, Brute Force saldırılara karşı koymakta zorlanan DES algoritmasının üzerine 1978 yılında IBM tarafından geliştirilmiştir. • Telekomünikasyon (GSM) şirketlerinde de diğer kurumsal şirketlerde olduğu gibi abonelerine ait bilgilerin güvenliği ve korunması önemlidir, aksi halde BTK (Bilgi Teknolojileri Kurumu)’nın cezalarına maruz kalınabilir. • GSM şirketlerinde aboneler isterlerse her ay otomatik olarak fatura ödemelerini kredi kartı bilgilerini vererek mail-order sistemi ile tahsil edebiliyorlar. Tüm kredi kart bilgileri sisteme şifreli olarak gelir ve Oracle database’de şifreli olarak tutulur. • Oracle’ın veriyi kendi bünyesinde şifreleme ve çözmesi için kullandığı paketleri vardır; • Oracle 8i/9i sürümlerinden itibaren dbms_obfuscation_toolkit (DES ve 3DES) • GSM şirketlerinden birinde kullanılan 3DES algoritması ile kredi kartı şifreleme (encrypt) ve çözme (descrypt) yöntemlerini örneklerle görelim...
  • 16. 16 Oracle’ın DES algoritması için kullandığı dbms_obfuscation_toolkit paketinde kullanılan DESEncrypt ve DESDecrypt örneği; DECLARE input_string VARCHAR2(16) := '&PASSWD'; raw_input RAW(128) := UTL_RAW.CAST_TO_RAW(input_string); key_string VARCHAR2(16) := 'gizlinumara'; raw_key RAW(128) := UTL_RAW.CAST_TO_RAW(key_string); encrypted_raw RAW(2048); encrypted_string VARCHAR2(2048); decrypted_raw RAW(2048); decrypted_string VARCHAR2(2048); error_in_input_buffer_length EXCEPTION; PRAGMA EXCEPTION_INIT(error_in_input_buffer_length, - 28232); INPUT_BUFFER_LENGTH_ERR_MSG VARCHAR2(100) := '*** DES INPUT BUFFER NOT A MULTIPLE OF 8 BYTES - IGNORING EXCEPTION ***'; double_encrypt_not_permitted EXCEPTION; PRAGMA EXCEPTION_INIT(double_encrypt_not_permitted, - 28233); DOUBLE_ENCRYPTION_ERR_MSG VARCHAR2(100) := '*** CANNOT DOUBLE ENCRYPT DATA - IGNORING EXCEPTION ***'; BEGIN dbms_output.put_line('Raw input : ' || UTL_RAW.CAST_TO_VARCHAR2(raw_input)); BEGIN dbms_obfuscation_toolkit.DESEncrypt(input => raw_input, key => raw_key, encrypted_data => encrypted_raw ); dbms_output.put_line('encrypted hex value : ' || rawtohex(encrypted_raw)); dbms_obfuscation_toolkit.DESDecrypt(input => encrypted_raw, key => raw_key, decrypted_data => decrypted_raw); dbms_output.put_line('Decrypted raw output : ' || UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw)); if UTL_RAW.CAST_TO_VARCHAR2(raw_input) = UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw) THEN dbms_output.put_line('Raw DES Encyption and Decryption successful'); END if; EXCEPTION WHEN error_in_input_buffer_length THEN dbms_output.put_line(INPUT_BUFFER_LENGTH_ERR_MSG ); END; END;
  • 17. 17 PLSQL batch’ini çalıştırdığımızda sonuç aşağıdaki gibi olacaktır: Key olarak ‘gizlinumara’ ifadesini tanımladığımız kodumuzda şifrelenmesini istediğimiz input değer olarak 8 karakter uzunluğunda örneğin ‘orhanorh’ ifadesini girdim, öncelikle DESEncrypt fonksiyonu key’imiz ile input değerimizi şifreliyor (Encrypt), ardından DESDecrypt fonksiyonu ile de şifrelenmiş (encrypted_raw) olan verimizi key’i de kullanarak aynı DES algoritmasını kullanarak tersi yönde çözümlüyor.
  • 18. 18 • Örnek GSM şirketinde kredi kartı şifreleme işlemi için Utility_Encdec paketinde 3DES algoritması kullanılmıştır. • credit_card_black_list tablosuna aboneye ait kredi kartı numarası insert edilirken aşağıda görüldüğü gibi şifrelenmiş olarak insert edilir; select * from credit_card_black_list
  • 19. 19 Bu şifrelenmiş olan kredi kartını sorgulayabilmemiz için aşağıdaki gibi utility_encdec paketi altındaki des3encrypt () fonksiyonunu kullanmalıyız; select * from ccb_credit_card_black_list where credit_card_number = utility_encdec.des3encrypt('53232489....') Aşağıdaki des3encdec_params parametre tablosunda şifreleme için kullanılan key saklı tutulmaktadır, bu key des3encrypt ve des3decrypt fonksiyonları tarafından kullanılmaktadır.
  • 20. 20 Oracle Application Express (Oracle APEX) • Ücretsizdir, • İnternetin olduğu her yerde kendi db’inize erişebilir ve yönetebilirsiniz, oldukça pratiktir, • Oracle APEX db’inize olan bağlantınız kolay kolay kesilmez, • Database uygulamaları geliştirir, raporlayabilirsiniz, • Oracle db’de yapılabilecek birçok işlemi yapabilirsiniz, Oracle Database Express Edition (Oracle XE) • Ücretsizdir, • Kullanımı kolaydır, pratiktir, • Bilgisayarınızda çok yer kaplamaz, • Oracle db’de yapılabilecek birçok işlemi yapabilirsiniz,
  • 21. 21 Oracle Linux 6 on Vmware Virtual Machine - Create user, - Create tablespace, - Create table, index, constaints, - Insert data, import data, - Create procedure, function, triger, package, job, db_link,..vs, - Grant roles, privileges... MY DB SQL> conn sys / as sysdba SQL> shutdown immediate; SQL> startup mount; cmd -> rman target / RMAN> BACKUP DATABASE PLUS ARCHIVELOG ALL; SQL> alter database open; MY DB (backup) Linux Database Server - listener.ora - tnsnames.ora (Oracle Net Manager) Windows Client
  • 22. 22 • Spotlight on Oracle ile hem single node db’leri hem de rac db’leri izleyebiliriz • Ana ekranındaki grafikler ile bize görsel olarak anlık bilgi verir • Problemli durum olduğunda yeşil renk kırmızıya, yoğunluk olduğunda truncu renge dönüşür • Üst menulerle session, cpu-ram-I/O, top sql, logs, vs. utilization bilgilerin detaylarını görebiliriz • Alert anında sistemin sağ alt köşesinde açılan pop-up ile de bilgilendirme yapar • Oracle Enterprise Manager yönetim, monitoring konsolu gibi kullanabilecek bir başka alternatif çözümdür Oracle DB İzleme Uygulamaları: Spotlight on Oracle
  • 23. 23 Oracle DB İzleme Uygulamaları: Oracle Enterprise Manager • Oracle Enterprise Manager konsolu db’i yönetmemize ve izlememize yardımcı olur • ‘Home’ tab’ı ile db hakkında özet bilgileri anlık olarak sunar • ‘Performance’ tab’ı ile Active Session, CPU, RAM, I/O utilization bilgilerini anlık olarak sunar • Diğer tab’lar ile de backup/recovery, storage, scheduler, security, db objects vs. yönetimleri yapılabilir • DBA için kullanışlıdır, sürekli db bilgileri izlenebilir • Oracle Database 12c ile gelen son sürümü Oracle Enterprise Manager 12c’dir
  • 24. 24 Oracle DB Yönetim Uygulamaları
  • 25. 25 • Dünyanın en iyi Uygulama sunucusudur • Çok fazla farklı platformlarda yazılmış uygulamaları tek konsolda yönetmemizi ve izlememizi sağlar • Uygulamaları daha hızlı açar, daha hızlı kapatır • Uygulamaları hızlı kurar ve hızlı derleme yapılır • Warning alan instance’ların thread dump’ları alınarak uygulamada yaşanan problem incelenebilir • Oracle Weblogic Server 12c son sürümüdür Oracle Teknolojileri: Oracle Weblogic Server
  • 26. 26 Oracle Teknolojileri: Oracle Datawarehouse (Dwh) • Oracle Veriambarı farklı production db’lerden beslenir • Raporlama amaçlı kullanılır, datalar ETL (Extract -> Transform -> Load) ile çeşitli filtrelerden geçerek özet rapor datası hazırlanır • Spool ile tablo datası txt veya csv formatında dışarıya çıkılır, Sql*Loader ile txt, csv file’larda tutulan datalar db’e aktarılır, en çok kullanılan dwh operasyonlarındandır • Gece saatlerine set edilen çok fazla Scheduler job, sh script saatlerce çalışır, ilgili kaynak db’lerden datalar dwh db’inde temp tablolarına aktarılır, burada çeşitli datasal işler yapılır ve işlenmiş data olması gereken dwh tablolarına aktarılır. • Tüm verileri analiz etmeye gerek olmadan sadece belirli veriler üzerinde analiz, işlem yapmak için veriambarının alt birimleri olan Data Mart’lar kullanılır.
  • 27. 27 Oracle Teknolojileri: Oracle RAC (Real Application Cluster) Oracle Real Application Clusters (RAC), birçok büyük kurumsal şirketlerin veritabanı sistemlerinde kullanılan bir teknolojidir. Kümelenmiş bir dizi sunucu üzerinde tek veritabanının çalıstırılmasına olanak tanıyan böylece yüksek süreklilik ve ölçeklenebilirlik sağlayan bir çözümdür. Bu teknoloji ile örneğin; iki işlemcinin iş yükünü tek bir işlemci gibi gösterir ve bir işlemcinin veritabanı işlemleri yarıda kaldıysa diğer işlemcinin bu işlemi kaldığı yerden devam ettirmesi sağlanır.
  • 28. 28 Oracle Teknolojileri: Oracle Data Guard • Data kaybının minumum, erişilebilirliğin maximum olmasını sağlayan Oracle’ın en önemli teknoloji çözümlerinden biridir • Data Guard (Disaster Recovery ortamı) fiziksel olarak başka bir lokasyonda bulunan ve istenildiği anda hazır Production database olarak kullanabileceğimiz yedeğimizdir • Redo log’lardan okunan data anlık olarak standby database’lere yazılır, db’ler eşitlenir
  • 29. 29 Oracle Teknolojileri: Oracle VM VirtualBox • Oracle VM sanallaştırma uygulaması ile şirketler sunucu maliyetlerini önemli ölçüde düşürebilirler • Single node kurulabildiği gibi network sistemi de kurulabilir • Fiziksel sunucunun Disk, Ram, Network kart kaynaklarını kullanır, sanal sunucuya verilecek makul değerlerle optimize edilebilir • Birçok Development ve Test ortamları kurulabilir • Sanal sistemin snapshot’ları alınarak istenilen eski durumuna gidilebilir, bu snapshotlar fiziksel image’lardır • Özellikle Oracle db’ini yeni öğrenmek isteyen kullanıcılar için oldukça kullanışlı ve faydalıdır • Birçok farklı işletim sistemini desteklediğinden kurulumları yapılabilir veya Oracle’ın sunduğu hazır template şablonlar ile direk kullanım sağlanabilir
  • 30. 30 Oracle Teknolojileri: Oracle Audit Vault ve Oracle Database Vault Oracle Audit Vault • Veritabanı denetim ayarlarını yapabileceğimiz ve kullanıcıların tüm veritabanı aktivitelerini raporlayabileceğimiz uygulamadır • Kaynak veritaban(lar)ındaki aktiviteleri izler (monitoring), loglar (logging), raporlar (reporting) ve uyarır(alerting) • Son sürümü Oracle Audit Vault and Database Firewall 12.1.1’dir Oracle Database Vault • DBA veya kullanıcıların şirket uygulamalarına doğrudan erişimlerinin OS user ve IP bazında kısıtlanabileceği, db seviyesinde bazı yetki kurallarını tanımlayarak güvenliği sağlayabileceğimiz uygulamadır.
  • 31. 31 Otomatik Alert Mail Audit Vault Tablespace Size durumu için Alert Mail: Audit Vault tablespace doluluk oranı belli bir eşik değeri (örnek olması açısından aşağıdaki örnekte %60 limiti verildi, biz kullanımda %90 limitini vereceğiz) aştığında otomatik Alert mailini alabiliriz.
  • 32. 32 Audit Vault Uygulaması için Alert Mail: Audit Vault uygulamalarının data toplayıcı kollektor’ları (Collectors) herhangi bir sebepten dolayı duracak olursa otomatik mail ile Alert durumu öğrenebiliriz.
  • 33. 33 Örnek Rapor
  • 34. 34 Teşekkürler 