Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Veri Tabanı Yönetim Sistemleri 2 Ders 1 Oracle Veritabanı Mimarisi Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü.

Benzer bir sunumlar


... konulu sunumlar: "Veri Tabanı Yönetim Sistemleri 2 Ders 1 Oracle Veritabanı Mimarisi Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü."— Sunum transkripti:

1 Veri Tabanı Yönetim Sistemleri 2 Ders 1 Oracle Veritabanı Mimarisi Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü

2 Oracle, büyük miktarda veriyi çok kullanıcılı ortamda, birçok kullanıcının aynı anda aynı veriye erişmesine izin verecek şekilde idare edebilen bir ilişkisel veri tabanı yönetim sistemidir (İVTYS- RDBMS). Yüksek performansı, yetkisiz kullanıcıların girişlerini engellemesi ve beklenmedik durumlarda oluşabilecek veri kaybını engelleyecek çözümler sunması en önemli özelliklerinden bazılarıdır. Farklı işletim sistemleri (Unix, Linux, OsX, …) üzerinde çalışabilmesi sayesinde, bu işletim sistemlerinin yüklü olduğu büyük sunucu sistemlerinde en çok tercih edilen VYTS'lerden biridir. MS SQL Server sadece Windows ortamında çalışması nedeniyle büyük sistemlerde kullanım oranı azdır. Oracle

3 Veritabanı (diskte) Veri Dosyaları Online redo log dosyaları Kontrol Dosyaları Oracle Veritabanı Mimarisi: Genel Bakış Database buffer cache Shared pool Data dictionary cache Library cache PMONSMON Others Server process PGA Arşivlenmiş log dosyaları User process Instance (RAM'de) ARCn SGA DBWn Redo log buffer LGWRCKPT Kullanıcı işlemi Sunucu işlemi

4 Veritabanına Bağlanma Bağlantı (Connection): Bir veritabanı anı (instance) ile bir kullanıcı işlemi arasındaki iletişimdir. Oturum (Session): Bir kullanıcının bir instance’a bir kullanıcı işlemi üzerinden kurduğu özel bir bağlantıdır. SQL> Select … Oturum Bağlantı KULLANICI Kullanıcı işlemi

5 Veritabanına Bağlanma Kullanıcı SQL*Plus gibi bir araç veya veritabanını kullanan bir uygulama çalıştırdığında, istemci makinede bir user process başlatılır. Kullanıcı, adını, şifresini ve ulaşmak istediği veritabanının ismini girerek Oracle Sunucusuna bağlandığı anda sunucu makinede bir server process yaratılır. – Eğer Dedicated Server değil de Shared Server yapısı kullanılıyorsa her user process için ayrı bir server process oluşturulmaz. Her oturum dispatcher tarafından paylaşımlı server process havuzuna yönlendirilerek, user process’in faaliyette olan bir server process ile ilişkilendirilmesi sağlanır. User process isteklerini server process’e iletir. Server process istekleri yerine getirir, ve sonucunu user process’e verir. Kullanıcı bağlantıyı kestiğinde server ve user process’ler bitirilir.

6 Veritabanı Oracle Veritabanı Sunucu Yapıları PMONSMONOthers Veri Dosyaları Instance ARCn Kontrol Dosyaları DBWn LGWRCKPT Saklama Yapıları User process Server process Online redo log Dosyaları Hafıza Yapıları İşlemler (Processes) Database buffer cache Shared pool Data dict. cache Library cache SGA Redo log buffer

7 Oracle Hafıza Mimarisi SGA Database buffer cache Redo log buffer Java pool Streams pool Shared pool Large pool PGA Background process Server process 1 Server process 2 Shared SQL area Library cache Data Dictionary cache Other I/O Buffer Response queue Request queue Free memory

8 System Global Area (SGA) Instance, SGA adında tüm sunucu ve arkaplan işlemleri tarafından paylaşılan bir hafıza yapısına sahiptir. SGA’nın içindeki bileşenler: Database Buffer Cache: Veri dosyalarından elde edilen veri bloklarını saklar. Değişikliğe uğrayan bloklar belirli zaman aralınlarında veri dosyalarına aktarılır. Redo Log Buffer: Instance’ın veritabanında yaptığı değişikliklerin kaydedildiği bölgedir. Gerektiğinde recovery işleminde kullanılmak üzere bu bilgiler belirli zaman aralıklarında redo log dosyalarına aktarılır. Shared Pool: En son çalıştırılan sorgu ve veri kütüphanesinden en son kullanılan veri gibi bilgileri saklar. Large Pool: Backup/Recovery işlemleri ve I/O sunucu işlemleri gibi bazı büyük işlemler için büyük miktarda hafıza tahsisi gerektiğinde kullanılan bölgedir. Java Pool: Java Sanal Makinesi (JVM) tarafından kullanılan tüm oturum-bazlı Java kodu ve verisini saklar. Streams Pool: Yakalama (capture) ve uygulama (apply) işlemleri için gerekli olan bilgileri saklamak için Oracle Stream’leri tarafından kullanılır.

9 PGA, bir sunucu işlemi veya bir arkaplan işlemi için veri ve kontrol bilgilerini içeren hafıza bölgesidir. Birçok process tarafından paylaşılabilen SGA'nın tersine, PGA sadece kendisini başlatan process tarafından kullanılabilir. Hafıza yapılarının büyüklüğünü belirlemek için çeşitli parametreler kullanılabilir. Örneğin MEMORY_TARGET parametresi ile Oracle'ın sistem üzerinde kullanabileceği RAM alanı belirlenebilir. Bu sayede belirlenen büyüklüğü aşmayacak şekilde SGA ve PGA bileşenlerinin boyutları Oracle veritabanı tarafından otomatik olarak değiştirilir. Process Global Area (PGA)

10 İşlem (Process) Mimarisi Kullanıcı işlemi – Bir kullanıcı veya işlem Oracle veritabanına bağlandığı anda başlatılır Veritabanı işlemleri – Sunucu işlemi: Oracle instance'ına bağlanır ve bir kullanıcı oturum açtığında başlatılır – Arkaplan işlemleri: Bir Oracle instance'ı başlatıldığında başlatılırlar PMONSMONOthers Instance ARCn DBWn LGWRCKPT PGA User process Server process Arkaplan İşlemleri Database buffer cache Shared pool Data dictionary cache Library cache SGA Redo log buffer Kullanıcı işlemi Sunucu işlemi

11 Veritabanı İşlemleri: Sunucu ve Arkaplan Sunucu İşlemleri Server Processes SGA PMONSMON Others RECOARCn DBWn LGWRCKPT Server Database buffer cache Shared pool Data dict. cache Library cache SGA Redo log buffer Oracle sunucusunda disk girdi/çıktı işlemleri gibi arkaplan işlemlerini gerçekleştiren background process’ler

12 Arkaplan İşlemleri (Background Processes) Arkaplan işlemleri kullanıcı işlemi ile doğrudan ilişkili değildirler. Belirli zaman aralıklarında veya belirli koşulların sağlanması durumunda çalışırlar. Database Writer (DBWn): Database buffer cache’te değişen veri bloklarını veri dosyalarına yazar. Log Writer (LGWR): Veritabanında değişikliğe neden olan DML komutlarını redo log buffer’dan redo log dosyalarına yazar. System Monitor (SMON): Veritabanı açıldığında recovery gerekip gerekmediğini araştırır. Veritabanının tutarlılığını kontrol eder. Process Monitor (PMON): Process’lerden biri sonlanmazsa bu process’in kullandığı tüm kaynakları temizler. Checkpoint process (CKPT): Buffer cache’teki değişiklikler veritabanına kaydedildiğinde, veritabanının durum bilgisini günceller.

13 Instance SGA Shared pool DBWn Database buffer cache Database Writer (DBWn) Kontrol dosyaları Redo log dosyaları Veri Dosyaları

14 Instance SGA Shared pool Redo log buffer LGWR Log Writer (LGWR) Kontrol dosyaları Redo log dosyaları Veri Dosyaları

15 User process Server process Bir Sorgunun İşlenmesi ParseParse Statement OK Handle ExecuteExecute OK Handle FetchFetch Results SELECT * FROM emp ORDER BY ename; SELECT * FROM emp ORDER BY ename;

16 Instance SGA Shared pool Library cache Redo log buffer Database buffer cache Data dictionary cache UPDATE emp SET sal=sal*1.1 WHERE empno=7369 UPDATE emp SET sal=sal*1.1 WHERE empno=7369 Bir DML İfadesinin İşlenmesi 1 Server process Kontrol dosyaları Redo log dosyaları Veri dosyaları Veritabanı

17 Shared pool Redo log buffer LGWR Kontrol dosyaları Redo log dosyaları Veri dosyaları Veritabanı COMMIT İşlemi Server process 1 2 User process 3 Database buffer cache 4 SGA Instance

18 Veritabanı Saklama Mimarisi Online redo log dosyaları Şifre dosyası Parametre dosyasıArşivlenmiş redo log dosyaları Kontrol dosyaları Veri dosyaları Alert log ve trace dosyaları Yedek dosyaları

19 db_name = VT1 control_files = (c:\data\control01.con, d:\data\control02.con) db_block_size = 8192 db_block_buffers = 200 # 550 (ORTA), 3200 (BÜYÜK) db_files = 100 # 400 (ORTA), 1000 (BÜYÜK) shared_pool_size = # (ORTA), (BÜYÜK) log_buffer = 8192 # (ORTA), (BÜYÜK) processes = 50 # 100 (ORTA), 200 (BÜYÜK) db_file_multiblock_read_count = 8 # 16 (ORTA),32 (BÜYÜK) log_checkpoint_interval = 10000# 10 saniyede 1 checkpoint max_dump_file_size = # en fazla 5MB olabilir background_dump_dest = (d:\oracle\admin\ORCL\backdump) user_dump_dest = (d:\oracle\admin\ORCL\userdump) # audit_trail = true # timed_statistics = true... db_name = VT1 control_files = (c:\data\control01.con, d:\data\control02.con) db_block_size = 8192 db_block_buffers = 200 # 550 (ORTA), 3200 (BÜYÜK) db_files = 100 # 400 (ORTA), 1000 (BÜYÜK) shared_pool_size = # (ORTA), (BÜYÜK) log_buffer = 8192 # (ORTA), (BÜYÜK) processes = 50 # 100 (ORTA), 200 (BÜYÜK) db_file_multiblock_read_count = 8 # 16 (ORTA),32 (BÜYÜK) log_checkpoint_interval = 10000# 10 saniyede 1 checkpoint max_dump_file_size = # en fazla 5MB olabilir background_dump_dest = (d:\oracle\admin\ORCL\backdump) user_dump_dest = (d:\oracle\admin\ORCL\userdump) # audit_trail = true # timed_statistics = true... Parametre Dosyası

20 Trace dosyaları ve Alert log dosyası Oracle instance'ı çalışırken bir hata oluşursa, mesajlar ALERT dosyasına kronolojik olarak yazılır. Veritabanı açılırken, eğer ALERT dosyası yoksa Oracle bir tane yaratır. Eğer hata bir arkaplan işlemi tarafından tespit edildiyse, bilgi bir iz (trace) dosyasına yazılır. İz dosyaları aynı zamanda kullanıcının isteği ile server işlemleri tarafından da yaratılabilir. Bu dosyalara kullanıcı iz dosyaları (user trace files) denir. Bu dosyaların konumu parametre dosyasındaki USER_DUMP_DEST ile, alabileceği en büyük değer ise MAX_DUMP_FILE_SIZE ile belirlenebilir. Aşağıdaki komut belirli bir oturum için bir işaret dosyasının kullanılmasını sağlar. –ALTER SESSION SET SQL_TRACE = TRUE;

21 Mantıksal ve Fiziksel Veritabanı Yapıları Database MantıksalFiziksel Tablespace Data file OS block Segment Extent Oracle data block Schema

22

23 Block: Veri blokları, Oracle veritabanında verinin saklandığı en küçük yapıdır. Oracle block’ları, işletim sistemi bloklarına eşit veya onların katları olabilir. DB_BLOCK_SIZE parametresi ile bu büyüklük belirlenebilir. Extent: Bir extent (uzantı), belirli sayıdaki ardışık veritabanı bloğundan oluşur, bir seferde alınır ve belirli bir tipteki bilgiyi tutmak için kullanılır. Extent’ler sadece bir veri dosyasında bulunabilirler. Segment: Segment (bölüm), belirli bir mantıksal yapı için tahsis edilmiş extentler kümesidir. Bir segmentin içindeki tüm extentler dolduğunda, Oracle dinamik olarak yeni yer tahsis eder. Bir segment, aynı tablespace’e ait olan dosyalar arasında bölüşülebilir. Segment tipleri; Table, Index, Temporary ve Rollback. Segment, Extent ve Block SegmentExtentsData blocks Disk blocks

24 Tablespace, Şema ve Veri Dosyası Tablespace: Tablespace yönetimsel işleri kolaylaştırmak için bütün uygulama nesnelerini birlikte gruplar. Kullanıcılara yer tahsis etmek, verinin ulaşılabilirliğini kontrol etmek, veri saklanmasını farklı disklere bölerek I/O performansını arttırmak, kısmi backup ve kısmi recovery işlemlerini gerçekleştirmek gibi kullanım alanları vardır. Her tablespace sadece bir veritabanına ait olabilir, ve bir yada daha çok veri dosyasından oluşur. Veritabanı çalışırken tablespace’ler offline konumuna getirilebilir. “Oracle Storage Manager” ile tablespace yaratılabilir. Schema (Şema): Bir veritabanı kullanıcısının sahip olduğu veritabanı nesnelerinin (tablo, görünüm, index, sequence, saklı yordam, …) kümesidir. Veri Dosyası: Her tablespace bir yada daha çok veri dosyası içerir. Bir veri dosyası sadece bir tablespace’e ait olabilir. Veritabanı yöneticisi, bir veri dosyasının büyüklüğünü, o dosyanın yaratılmasından sonra da değiştirebilir, veya tablespace nesnesinin büyümesiyle orantılı olarak büyümesini sağlayabilir. USERS tablespace Data file 1 Data file 2

25 SYSTEM ve SYSAUX Tablespace'leri SYSTEM ve SYSAUX tablespace'leri her veritabanında bulunmak zorundadır (veritabanı yaratılırken otomatik olarak yaratılırlar). SYSTEM tablespace veri sözlüğü tabloları gibi temel verileri saklar. Yardımcı (auxiliary) bir tablespace olan SYSAUX ise ek veritabanı bileşenleri (Enterprise Manager Repository gibi) içerir.

26 CREATE DATABASE VT1 MAXLOGFILES 32 MAXLOGMEMBERS 5 MAXDATAFILES 100 MAXLOGHISTORY 100 LOGFILE GROUP 1 ('c:\oradb\log1a.rdo','d:\oradb\log1b.rdo') SIZE 1 M, GROUP 2 ('c:\oradb\log2a.rdo','d:\oradb\log2b.rdo') SIZE 1 M DATAFILE 'c:\oradb\system01.dbf' size 32M autoextend on CHARACTER SET WE8ISO8859P9 NATIONAL CHARACTER SET WE8ISO8859P9; CREATE DATABASE VT1 MAXLOGFILES 32 MAXLOGMEMBERS 5 MAXDATAFILES 100 MAXLOGHISTORY 100 LOGFILE GROUP 1 ('c:\oradb\log1a.rdo','d:\oradb\log1b.rdo') SIZE 1 M, GROUP 2 ('c:\oradb\log2a.rdo','d:\oradb\log2b.rdo') SIZE 1 M DATAFILE 'c:\oradb\system01.dbf' size 32M autoextend on CHARACTER SET WE8ISO8859P9 NATIONAL CHARACTER SET WE8ISO8859P9; Veritabanının Yaratılması

27 Database Configuration Assistant

28 OPEN MOUNT NOMOUNT SHUTDOWN Bu instance için control dosyası tarafından tanımlanan tüm dosyalar açıldı. Bu instance için control dosyası açıldı. Instance başladı. SHUTDOWN STARTUP Startup ve Shutdown

29 T Shutdown modu: A AbortI Immediate T TransactionalN Normal Shutdown Seçenekleri I AShutdown Modu Yeni bağlantılara izin verme Session’ların bitmesini bekleme Transaction’ların bitmesini bekleme Checkpoint ile tüm dosyaları kapama N

30 OPEN MOUNT NOMOUNT Veri sözlüğü (Data dictionary) Dinamik Performans Görünümlerine Erişim Veriyi diskten okuyan dinamik performans görünümleri Hafızadan okunan dinamik performans görünümleri SHUTDOWN

31 V$PARAMETER V$SGA V$OPTION V$PROCESS V$SESSION V$VERSION V$INSTANCE Control file SGA V$THREAD V$CONTROLFILE V$DATABASE V$DATAFILE V$DATAFILE_HEADER V$LOGFILE Dinamik Performans Görünümlerinden Örnekler

32 Veri Sözlüğü Veri Sözlüğü, ilgili veritabanı hakkında bilgiler sağlayan tablolar ve görünümler içerir. Veritabanı kullanıcıları, yöneticileri ve Oracle sunucusu için bilgi kaynağı merkezidir. Bir DDL komutu çalıştırıldığında, veri sözlüğü Oracle sunucusu tarafından güncellenir. Veri sözlüğü SYSTEM tablespace’inde bulunur ve sahibi SYS kullanıcısıdır. Veri sözlüğü aşağıdaki bilgileri içerir: – Temel tablolar ve veri sözlüğü görünümleri – Mantıksal ve fiziksel veritabanı yapısı – İsimler, tanımlar ve şema nesnelerinin alan tahsis etmesi – Bütünlük sınırlamaları – Veritabanı kullanıcıları ve yetkileri – İzleme (Auditing)

33 PL/SQL PL/SQL, Oracle'ın normal SQL'e yaptığı prosedürel programlama eklentilerinden oluşur. SQL'in kullanım kolaylığı ve esnekliği ile yapısal programlama dillerinin prosedürel fonksiyonalitesini birleştirmiştir. PL/SQL'in şu avantajları vardır: – PL/SQL kodu direkt olarak veritabanında saklanabildiği için performansı çok daha iyidir. – PL/SQL kodu içinde veri erişimi kontrol edilebilir. Bu sayede PL/SQL kullanıcıları veriye uygulama geliştiricisinin istediği şekilde ulaşırlar. – Normal SQL'de olduğunun aksine cümle cümle yollamak yerine PL/SQL bloklar halinde yollanabilir, bu da kompleks işlemlerde gereksiz network trafiği yapılmasını engeller.

34 Oracle Developer Suite Oracle’da veritabanının ve onu kullanan çeşitli uygulamaların geliştirilmesine yardımcı olan araçların bulunduğu üründür. (Eski isimleri: Oracle Power Objects, Oracle Developer 2000). Bu üründe bulunan araçlardan bazıları: – Oracle JDeveloper – Oracle Forms – Oracle Reports – Oracle Designer – Oracle Discoverer – Oracle Software Configuration Manager – Oracle Business Intelligence Beans

35 Automatic Storage Management Taşınabilir ve yüksek performanslı dosya sistemi Oracle veritabanı dosyalarını idare eder. Yükü dengelemek için veriyi diskler arasında paylaştırır. Diskler arasında eşleme (mirroring) yapan entegre bir mekanizmaya sahiptir. Saklama idaresi ile ilgili birçok sorunu çözer ASM File system Volume manager Operating system Application Database


"Veri Tabanı Yönetim Sistemleri 2 Ders 1 Oracle Veritabanı Mimarisi Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü." indir ppt

Benzer bir sunumlar


Google Reklamları