Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Veri Tabanı Yönetim Sistemleri 2 Ders 1 Oracle Veritabanı Mimarisi

Benzer bir sunumlar


... konulu sunumlar: "Veri Tabanı Yönetim Sistemleri 2 Ders 1 Oracle Veritabanı Mimarisi"— 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 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.

3 Oracle Veritabanı Mimarisi: Genel Bakış
Instance (RAM'de) SMON PMON Others SGA Shared pool Database buffer cache Redo log buffer Library cache Data dictionary cache Sunucu işlemi PGA Server process DBWn CKPT LGWR ARCn Veritabanı (diskte) Kullanıcı işlemi Oracle Veritabanı Mimarisi Bir Oracle veritabanı sunucusu, bir oracle veritabanı ve bir yada daha çok veritabanı anından (instance) oluşur. Veritabanı anı, hafıza yapıları ve arkaplan işlemlerinden oluşur. Bir "an" başladığında, SGA (System Global Area) adı verilen bir hafıza bölümü RAM üzerinde oluşturulur ve arkaplan işlemleri başlatılır. Veritabanı hem fiziksel hem de mantıksal yapılardan oluşur. Bu iki yapının farklı olmasından dolayı, verinin fiziksel olarak saklanması mantıksal saklama yapılarına erişimi etkilemeden gerçekleştirilebilir. User process Arşivlenmiş log dosyaları Online redo log dosyaları Veri Dosyaları Kontrol Dosyaları Oracle Database 11g: Administration Workshop II

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 Kullanıcı işlemi KULLANICI Veritabanına Bağlanma Bağlantı ve oturum, kullanıcı işlemi ile yakın ilişkili ama farklı anlamlarda iki kavramdır. Bağlantı, kullanıcı işlemi ile Oracle veritabanı anı (instance) arasında iletişim yoludur. Eğer hem kullanıcı işlemi hem de Oracle veritabanı aynı bilgisayarda ise, bu iletişim yolu bir iç iletişim kanalı ile kurulabilirken, eğer ikisi farklı bilgisayarlarda ise TCP/IP gibi bir ağ protokolü üzerinden kurulur. Oturum, veritabanı instance'ına yapılan kullanıcı bağlantısının durumunu temsil eder. Örneğin, SQL*Plus gibi bir veritabanı yönetim uygulaması başlatıldığında kullanıcı adı ve şifre bilgileri kullanılarak yeni bir oturum açılır, ve bu oturum kullanıcı bağlantıyı kesene kadar (veya uygulamayı kapatana kadar) devam eder. Bir kullanıcı aynı anda aynı bilgisayar veya farklı bilgisayar üzerinden Oracle veritabanı üzerinde birden çok oturum açabilir. Bağlantı Oracle Database 11g: Administration Workshop II

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. Oracle Database 11g: Administration Workshop II

6 Oracle Veritabanı Sunucu Yapıları
Instance Hafıza Yapıları SGA Shared pool Database buffer cache Redo log buffer Library cache User process Server process Data dict. cache İşlemler (Processes) DBWn CKPT LGWR SMON PMON ARCn Others Veritabanı Veri Dosyaları Kontrol Dosyaları Online redo log Dosyaları Saklama Yapıları Her çalışan Oracle veritabanı bir instance ile ilişkilendirilir. ORACLE_SID ile işletim sistemine tanıtılan instance, belirli bir zamanda sadece bir veritabanını açıp kullanabilir. Instance başladıktan sonra, Oracle yazılımı bu instance'ı belirli bir veritabanı ile ilişkilendirir. Bu işleme veritabanını "mount" etme denir. Mount konumunda iken veritabanı sadece yetkili kullanıcılara açıktır. Open konumuna getirildiğinde ise tüm kullanıcılar veritabanına bağlanabilir. Bir bilgisayar üzerinde her biri kendi fiziksel veritabanına erişebilen birçok instance aynı anda çalışabilir. You can look at the Oracle Database architecture as various interrelated structural components. An Oracle instance uses memory structures and processes to manage and access the database. All memory structures exist in the main memory of the computers that constitute the database server. Processes are jobs that work in the memory of these computers. A process is defined as a “thread of control” or a mechanism in an operating system that can run a series of steps. Oracle Database 11g: Administration Workshop II

7 Oracle Hafıza Mimarisi
Server process 1 Server process 2 Background process PGA PGA PGA SGA Data Dictionary cache Shared SQL area Library cache Other Redo log buffer Shared pool Free memory I/O Buffer Database buffer cache Oracle Memory Structures Oracle Database creates and uses memory structures for various purposes. For example, memory stores program code being run, data shared among users, and private data areas for each connected user. Two basic memory structures are associated with an instance: The System Global Area (SGA) is a group of shared memory structures, known as SGA components, that contain data and control information for one Oracle Database instance. The SGA is shared by all server and background processes. Examples of data stored in the SGA include cached data blocks and shared SQL areas. The Program Global Areas (PGAs) are memory regions that contain data and control information for a server or background process. A PGA is nonshared memory created by Oracle Database when a server or background process is started. Access to the PGA is exclusive to the server process. Each server process and background process has its own PGA. Response queue Request queue Java pool Streams pool Large pool Oracle Database 11g: Administration Workshop II

8 System Global Area (SGA)
Oracle Memory Structures (continued) The SGA is the memory area that contains data and control information for the instance. The SGA includes the following data structures: Database buffer cache: Caches blocks of data retrieved from the database Redo log buffer: Caches redo information (used for instance recovery) until it can be written to the physical redo log files stored on the disk Shared pool: Caches various constructs that can be shared among users Large pool: Is an optional area that provides large memory allocations for certain large processes, such as Oracle backup and recovery operations, and I/O server processes Java pool: Is used for all session-specific Java code and data within the Java Virtual Machine (JVM) Streams pool: Is used by Oracle Streams to store information required by capture and apply When you start the instance by using Enterprise Manager or SQL*Plus, the amount of memory allocated for the SGA is displayed. With the dynamic SGA infrastructure, the size of the database buffer cache, the shared pool, the large pool, the Java pool, and the Streams pool changes without shutting down the instance. 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. Oracle Database 11g: Administration Workshop II

9 Process Global Area (PGA)
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. A Program Global Area (PGA) is a memory region that contains data and control information for each server process. An Oracle server process services a client’s requests. Each server process has its own private PGA that is created when the server process is started. Access to the PGA is exclusive to that server process, and the PGA is read and written only by the Oracle code acting on its behalf. The Oracle database uses initialization parameters to create and configure memory structures. For example, the MEMORY_TARGET parameter specifies the Oracle systemwide usable memory, and the Oracle database tunes memory to the MEMORY_TARGET value, reducing or enlarging the SGA and PGA components as needed. Oracle Database 11g: Administration Workshop II

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 Instance SGA Shared pool Database buffer cache Redo log buffer Library cache PGA Data dictionary cache Process Architecture The processes in an Oracle Database system can be categorized into two major groups: User processes that run the application or Oracle tool code. Oracle Database processes that run the Oracle database server code. They include server processes and background processes. When a user runs an application program or an Oracle tool such as SQL*Plus, Oracle Database creates a user process to run the user’s application. Oracle Database also creates a server process to execute the commands issued by the user process. In addition, the Oracle server also has a set of background processes for an instance that interact with each other and with the operating system to manage the memory structures and asynchronously perform I/O to write data to disk, and perform other required tasks. The process structure varies for different Oracle Database configurations, depending on the operating system and the choice of Oracle Database options. The code for connected users can be configured as a dedicated server or a shared server. With dedicated server, for each user, the database application is run by a user process that is served by a dedicated server process that executes Oracle database server code. A shared server eliminates the need for a dedicated server process for each connection. A dispatcher directs multiple incoming network session requests to a pool of shared server processes. A shared server process serves any client request. User process Server process Arkaplan İşlemleri Kullanıcı işlemi Sunucu işlemi DBWn CKPT LGWR SMON PMON ARCn Others Oracle Database 11g: Administration Workshop II

11 Veritabanı İşlemleri: Sunucu ve Arkaplan
Server Server Server Server Server Sunucu İşlemleri Server Processes SGA Shared pool Database buffer cache Redo log buffer Library cache SGA Data dict. cache Process Structures Server Processes Oracle Database creates server processes to handle the requests of user processes connected to the instance. In some situations when the application and Oracle Database operate on the same computer, it is possible to combine the user process and corresponding server process into a single process to reduce system overhead. However, when the application and Oracle Database operate on different computers, a user process always communicates with Oracle Database through a separate server process. Server processes created on behalf of each user’s application can perform one or more of the following tasks: Parsing and running SQL statements issued through the application Reading necessary data blocks from data files on disk into the shared database buffers of the SGA, if the blocks are not already present in the SGA Returning results in such a way that the application can process the information Background Processes To maximize performance and accommodate many users, a multiprocess Oracle Database system uses some additional Oracle Database processes called background processes. An Oracle Database instance can have many background processes. CKPT RECO PMON SMON DBWn LGWR ARCn Others Oracle sunucusunda disk girdi/çıktı işlemleri gibi arkaplan işlemlerini gerçekleştiren background process’ler Oracle Database 11g: Administration Workshop II

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. Her Oracle instance’ı, farklı arkaplan işlemlerine sahip olabilir. RAC (Real Application Clusters) ve ASM (Automatic Storage Management) kullanılmadığı durumlarda instance içinde yer alan arkaplan işlemleri: Database Writer process (DBWn) Log Writer process (LGWR) Checkpoint process (CKPT) System Monitor process (SMON) Process Monitor process (PMON) Recoverer process (RECO) Job Queue processes Archiver processes (ARCn) Queue Monitor processes (QMNn) Eğer RAC veya ASM kullanılıyorsa daha fazla sayıda arkaplan işlemi kullanılır. V$BGPROCESS görünümü içinde arkaplan işlemleri ile ilgili bilgiler yer alır. Bazı arkaplan işlemleri instance başladığında otomatik olarak yaratılırken, bazıları ise gerekli olduğu durumlarda başlatılır. Oracle Database 11g: Administration Workshop II

13 Database Writer (DBWn)
Instance SGA Shared pool DBWn Database buffer cache Veri Dosyaları Kontrol dosyaları Redo log dosyaları Database Writer (DBWn): Server Process, değişiklikleri database buffer cache’deki veri ve rollback bloklarına kaydeder. Database Writer (DBWn), dirty buffer’ları database buffer cache’ten veri dosyalarına yazar. Yeterli sayıda serbest buffer’ın (Server process’in veri dosyalarından blok okuması gerektiğinde, üstüne yazılabilecek buffer’lar) database buffer cache’de bulunmasını sağlar. Server process direkt olarak veri dosyalarına ulaşmadığı için performans artar. DBWn aşağıdaki olaylardan biri gerçekleşince çalışır: 1 Dirty buffers sayısı eşik değerine ulaştığında 2 Bir işlem belirli sayıda boş blok arayıp bulamadığında 3 Bir zamanaşımı oluştuğunda 4 Veritabanı kapanırken

14 Log Writer (LGWR) Instance SGA Shared pool Redo log buffer LGWR Veri
Dosyaları Kontrol dosyaları Redo log dosyaları Log Writer (LGWR): Girdileri redo log buffer’dan redo log dosyalarına yazan arkaplan işlemidir. Aşağıdaki durumlarda LGWR redo log dosyasına sıralı yazma işlemi gerçekleştirir. 1 Redo log buffer'ın 1/3'ü dolduğunda 2 Bir zamanaşımı oluştuğunda (her 3 saniyede bir defa) 3 DBWR değişen blokları database buffer cache'ten veri dosyalarına aktarmadan önce 4 Bir transaction commit edildiğinde (işlendiğinde) 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.

15 Bir Sorgunun İşlenmesi
Parse Statement Handle Execute SELECT * FROM emp ORDER BY ename; Handle Fetch OK OK Results User process Server process 1 Parse Bu bölümde, kullanıcı process'i sorguyu server process'e, yazım kontrolü için bir istek ile gönderir veya sorguyu işler. Server process, komutun geçerliliğini kontrol eder, ve SGA'daki Shared Pool alanını ifadeyi derlemek için kullanır. Bu safhanın sonunda server process user process'e olumlu yada olumsuz bir yanıt gönderir. Parse aşamasında kullanılan Shared Pool içinde bulunan Library Cache, en son kullanılan SQL ifadeleri ile ilgili bilgileri saklar. Bir ifade yeniden çalıştırılırken, eğer çalıştırma planının üzerine başka ifadelerin çalıştırma planları yazılmadıysa, server process ifadeyi yazım açısından incelemek (parse) zorunda kalmaz. Data Dictionary Cache ise, tablo ve kolon tanımlamaları, kullanıcı isimleri ve şifreler, ve ayrıcalıklar gibi en son kullanılan veri kütüphanesi bilgilerini içerir. 2 Execute Bu safhada server process veriyi almak için hazırlar. 3 Fetch Sorgu tarafından seçilen satırlar bu safhada server'dan user'a gider. Transfer için kullanılan hafızanın büyüklüğüne bağlı olarak, sorgunun sonucunu kullanıcıya aktarmak için bir yada daha çok fetch (alıp getirme) gereklidir.

16 Bir DML İfadesinin İşlenmesi
3 UPDATE emp SET sal=sal*1.1 WHERE empno=7369 Instance SGA Shared pool Library cache Redo log buffer Database buffer cache Data dictionary cache 4 5 Server process 2 1 Kontrol dosyaları Bir DML (Data Manipulation Language) ifadesi (UPDATE, DELETE, INSERT) sadece Parse ve Execute safhalarını içerir. 1 Server process, veri ve rollback bloklarını buffer cache’de bulamazsa, bu blokları veri dosyalarından okur. 2 Okunan blokları buffer cache’e kopyalar. 3 Server process veriyi kilitler. 4 Server process, yapılan değişikliği, redo log buffer içindeki rollback (önceki değer) ve veri (yeni değer) kısımlarına kaydeder. 5 Server process, database buffer cache içindeki rollback bloğuna önceki değeri kaydeder ve veri bloğunu da günceller. Buffer cache’teki her iki blok, diskteki ilgili bloklarla aynı değerlere sahip olmadıklarını belirtmesi için, dirty buffers olarak işaretlenir. Database Buffer Cache: En son kullanılan veri bloklarını saklamak için kullanılır. Her bir buffer'ın büyüklüğü, DB_BLOCK_SIZE parametresi ile belirlenen blok boyutu ile aynıdır. Buffer sayısı DB_BLOCK_BUFFERS ile belirlenir. Oracle server Buffer Cache'de yeni blok alanları temin etmek için Least Recently Used (LRU) algoritmasını kullanır. Veri dosyaları Redo log dosyaları Veritabanı

17 1 4 3 2 COMMIT İşlemi Server process User process Instance SGA
Shared pool Server process Database buffer cache Redo log buffer 4 2 3 LGWR User process Kontrol dosyaları 1 Server process, redo log buffer’a bir commit kaydı yapar. Bu kaydı yaparken SCN (System Change Number) kullanır. Bir transaction commit edildiğinde, Oracle Server bu transaction’a, veritabanı için unique olan ve devamlı artan bir SCN verir. 2 LGWR redo log buffer girdilerini, commit kaydı ile beraber, redo log dosyalarına yazar. Bu noktadan sonra, dosya okuma hatası oluşmadıkça, Oracle server değişiklerin kaybolmayacağını garanti eder. 3 COMMIT’in tamamlandığı kullanıcıya bildirilir. 4 Server process, transaction’ın bittiğine ve kilitlerin kaldırılabileceğine dair bilgiyi kaydeder. COMMIT’in avantajları: Log dosyalarına sıralı yazmak, veri dosyalarındaki farklı bloklara yazmaktan daha hızlıdır. Log dosyalarına yazılan değişiklikleri kaydeden bilgi çok küçüktür. Bunun yanında veri dosyalarına yazmak, verinin tüm bloklarının yazılmasını gerektirir. Transaction’ın büyüklüğü COMMIT işleminin harcadığı zamanı etkilemez. Veri dosyaları Redo log dosyaları Veritabanı

18 Veritabanı Saklama Mimarisi
Kontrol dosyaları Veri dosyaları Online redo log dosyaları Parametre dosyası Yedek dosyaları Arşivlenmiş redo log dosyaları Kontrol dosyaları: Kontrol dosyasında veritabanının fiziksel yapısı ile ilgili bilgiler (veritabanının adı, veri dosyaları ve redo log dosyalarının yerleri ve adları, …) tutulur. Bir veritabanı en az bir kontrol dosyası içerir. Veri dosyaları: Veri kütüphanesini, kullanıcı (şema) nesnelerini ve transaction’lar tarafından değiştirilen eski değerleri saklar. Bir veritabanı en az bir veri dosyasına sahiptir. Online redo log dosyaları: Beklenmedik durumlar karşısında veri kaybını önlemek ve veritabanını yeniden oluşturmayı sağlamak için veritabanında olan değişikliklerin kaydını tutar. Bir veritabanına en az 2 redo log gereklidir. Parametre dosyası: Bir Oracle instance’ının kendisini başlatırken gerek duyduğu tanımların saklandığı metin tabanlı dosyadır. Şifre dosyası: SYS gibi ayrıcalıklı veritabanı kullanıcılarının şifrelerini saklar. Yedek dosyaları: Orijinal veri dosyasının hasar görmesi durumunda kullanılır. Arşivlenmiş redo log dosyaları: Redo log dosyalarının offline kopyalarıdır. Disk bozukluğu gibi durumlarda kurtarma işlevi görür. Trace dosyaları: Her process kendisi ile ilişkilendirilen trace (iz) dosyasına hata durumlarının kaydını yazar. Gerekli olduğu durumlarda veritabanı yöneticisi veya Oracle destek birimi çalışanı tarafından incelenir. Alert log dosyası: Veritabanındaki hataların kronolojik olarak yazıldığı dosyadır. Belirli aralıklarla göz atılması tavsiye edilir. Şifre dosyası Alert log ve trace dosyaları

19 Parametre Dosyası db_name = VT1
control_files = (c:\data\control01.con, d:\data\control02.con) db_block_size = 8192 db_block_buffers = # 550 (ORTA), 3200 (BÜYÜK) db_files = # 400 (ORTA), 1000 (BÜYÜK) shared_pool_size = # (ORTA), (BÜYÜK) log_buffer = # (ORTA), (BÜYÜK) processes = # 100 (ORTA), 200 (BÜYÜK) db_file_multiblock_read_count = # 16 (ORTA),32 (BÜYÜK) log_checkpoint_interval = # 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: 8 yada daha az sayıda karakterden oluşur. Veritabanını tanımlar. ORACLE_SID ile aynı olmak zorunda değildir, ama CREATE DATABASE’de kullanılan isimle aynı olmalıdır. CONTROL_FILES: Kontrol dosyalarının listesini belirler. (Eğer mümkünse farklı disklerde yer alan en az 2 kontrol dosyası yaratın. Bu aşamada kontrol dosyasının var olup olmaması önemli değildir. Oracle Server veritabanını yaratırken, yeni işletim sistemi dosyaları yaratabilir.) DB_BLOCK_SIZE: Veritabanı block genişliğini belirler. (Veritabanı yaratıldıktan sonra bu büyüklük değiştirilemez.) Yukarıdaki 3 parametreyi instance’ı başlatabilmek için mutlaka tanımlamak gerekir. Seçimlik parametrelerin bazıları: DB_BLOCK_BUFFERS: SGA’daki block sayısı. Varsayılan ve en az değer 50. SHARED_POOL_SIZE: Paylaşım havuzunun byte cinsinden büyüklüğü. Varsayılan değeri MAX_DUMP_FILE_SIZE: Kullanıcı işaret dosyalarının (trace files) alabileceği en büyük değer. (birimi: işletim sistemi bloğu) BACKGROUND_DUMP_DEST: Arkaplan işaret dosyasının ve ALERT dosyasının yerini belirler. USER_DUMP_DEST: Kullanıcı isteği ile yaratılacak işaret dosyalarının yerini belirler.

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 Schema Tablespace Data file Segment Extent Logical and Physical Database Structures The database has logical structures and physical structures. Tablespaces A database is divided into logical storage units called tablespaces, which group related logical structures together. For example, tablespaces commonly group all of an application’s objects to simplify some administrative operations. You may have a tablespace for application data and an additional one for application indexes. Databases, Tablespaces, and Data Files The relationship among databases, tablespaces, and data files is illustrated in the slide. Each database is logically divided into one or more tablespaces. One or more data files are explicitly created for each tablespace to physically store the data of all logical structures in a tablespace. If it is a TEMPORARY tablespace, then instead of a data file, the tablespace has a temporary file. Oracle data block OS block Oracle Database 11g: Administration Workshop II

22 Oracle Database 11g: Administration Workshop II 1 - 22
Logical and Physical Database Structures (continued) Schemas A schema is a collection of database objects that are owned by a database user. Schema objects are the logical structures that directly refer to the database’s data. Schema objects include such structures as tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links. In general, schema objects include everything that your application creates in the database. Data Blocks At the finest level of granularity, an Oracle database’s data is stored in data blocks. One data block corresponds to a specific number of bytes of physical database space on the disk. A database uses and allocates free database space in Oracle data blocks. Extents The next level of logical database space is called an extent. An extent is a specific number of contiguous data blocks (obtained in a single allocation) that are used to store a specific type of information. Segments The level of logical database storage above an extent is called a segment. A segment is a set of extents allocated for a certain logical structure. The types of segments include the following: Data segments: Each nonclustered, non-index-organized table has a data segment with the exception of external tables, global temporary tables, and partitioned tables where each table has one or more segments. All of the table’s data is stored in the extents of its data segment. For a partitioned table, each partition has a data segment. Each cluster has a data segment. The data of every table in the cluster is stored in the cluster’s data segment. Index segments: Each index has an index segment that stores all of its data. For a partitioned index, each partition has an index segment. Undo segments: One UNDO tablespace is created per database instance that contains numerous undo segments to temporarily store undo information. The information in an undo segment is used to generate read-consistent database information and, during database recovery, to roll back uncommitted transactions for users. Temporary segments: Temporary segments are created by the Oracle database when a SQL statement needs a temporary work area to complete execution. When the statement finishes execution, the temporary segment’s extents are returned to the instance for future use. Specify a default temporary tablespace for every user or a default temporary tablespace, which is used databasewide. The Oracle database dynamically allocates space. When the existing extents of a segment are full, additional extents are added. Because extents are allocated as needed, the extents of a segment may or may not be contiguous on the disk. Oracle Database 11g: Administration Workshop II

23 Segment, Extent ve Block
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. Segments, Extents, and Blocks Database objects, such as tables and indexes, are stored as segments in tablespaces. Each segment contains one or more extents. An extent consists of contiguous data blocks, which means that each extent can exist only in one data file. Data blocks are the smallest unit of I/O in the database. When the database requests a set of data blocks from the operating system (OS), the OS maps this to an actual file system or disk block on the storage device. Because of this, you need not know the physical address of any of the data in your database. This also means that a data file can be striped or mirrored on several disks. The size of the data block is defined by the DB_BLOCK_SIZE parameter. The default size of 8 KB is adequate for most databases. If your database supports a data warehouse application that has large tables and indexes, then a larger block size may be beneficial. If your database supports a transactional application where reads and writes are random, then specifying a smaller block size may be beneficial. The maximum block size depends on your OS. You can have tablespaces with a nonstandard block size. For details, see the Database Administrator’s Guide. Segment Extents Data blocks Disk blocks Oracle Database 11g: Administration Workshop II

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. Tablespaces and Data Files A database is divided into logical storage units called tablespaces, which can be used to group related logical structures together. Each database is logically divided into one or more tablespaces. One or more data files are explicitly created for each tablespace to physically store the data of all logical structures in a tablespace. Note: You can also create bigfile tablespaces. These tablespaces can have only a single file, which is often very large. The file may be any size up to maximum that the row ID architecture will permit. The maximum size is the block size for the tablespace times 2 to the 36th power, or 128 TB for a 32 KB block size. The traditional smallfile tablespaces (which are the default) usually contain multiple data files, but the files cannot be as large. For more information about the bigfile tablespaces, see the Database Administrator’s Guide. Data file 1 Data file 2 USERS tablespace Oracle Database 11g: Administration Workshop II

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. SYSTEM and SYSAUX Tablespaces Each Oracle database must contain a SYSTEM tablespace and a SYSAUX tablespace. They are automatically created when the database is created. The system default is to create a smallfile tablespace. You can also create bigfile tablespaces, which enable the Oracle database to manage ultralarge files. A tablespace can be online (accessible) or offline (not accessible). The SYSTEM tablespace is always online when the database is open. It stores tables that support the core functionality of the database, such as the data dictionary tables. The SYSAUX tablespace is an auxiliary tablespace to the SYSTEM tablespace. The SYSAUX tablespace stores many database components, and it must be online for the correct functioning of all database components. Note: The SYSAUX tablespace may be taken offline to do tablespace recovery, whereas this is not possible for SYSTEM tablespace. Neither of them may be made read-only. Oracle Database 11g: Administration Workshop II

26 Veritabanının Yaratılması
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; MAXLOGFILES Veritabanı için yaratılabilecek en fazla log dosyası grubu sayısı MAXLOGMEMBERS Bir log dosyası grubu için en fazla üye sayısı MAXDATAFILES Veritabanı için yaratılabilecek en fazla veri dosyası sayısı MAXLOGHISTORY Oracle Parallel Server’ın otomatik recovery yapması için oluşturabileceği en fazla redo log sayısı LOGFILE GROUP Kullanılacak log dosyalarının ve ait oldukları grupların isimlerini belirler DATAFILE Kullanılacak veri dosyalarını tanımlar AUTOEXTEND ON Otomatik büyümeye izin verir OFF Otomatik büyümeye izin vermez CHARACTER SET Veritabanının veriyi saklamak için kullanacağı karakter kümesi (örneğimizdeki WE8ISO885P9, Türkçe karakter setidir)

27 Database Configuration Assistant
Veritabanını “Configuration and Migration Tools” altında yer alan “Database Configuration Assistant” uygulamasını kullanarak ta yaratabiliriz. Bu uygulama ilgili servisleri başlatır, parametre dosyasını yaratır ve düzenler, veritabanını yaratır, veri sözlüğünü oluşturmak için ve PL/SQL için gerekli olan tüm script’leri yürütür. Bu uygulama aynı zamanda veritabanlarını ve servisleri sistemden kaldırmak için de kullanılabilir.

28 Startup ve Shutdown OPEN STARTUP MOUNT NOMOUNT SHUTDOWN SHUTDOWN
Bu instance için control dosyası tarafından tanımlanan tüm dosyalar açıldı. MOUNT Bu instance için control dosyası açıldı. NOMOUNT SHUTDOWN Instance başladı. SHUTDOWN NOMOUNT Veritabanı yaratılırken, veya kontrol dosyaları tekrar yaratılırken kullanılır. Instance başlarken; parametre dosyası (init<SID>.ora) okunur, SGA oluşturulur, arkaplan işlemleri başlatılır, trace ve ALERT dosyaları açılır. MOUNT Özel bakım işlemlerini gerçekleştirmek için kullanılır. Örneğin veritabanı şu işlemler için, açılmadan, sadece mount edilmelidir; Veri dosyalarının isimlerinin değiştirilmesi Redo log arşivleme seçeneklerinin değiştirilmesi Veritabanının yedeğinin alınması Mount edilirken; önceden açılmış instance ile veritabanı ilişkilendirilir, parametre dosyasında belirtilen kontrol dosyaları açılır, veri ve redo log dosyalarının durumlarını ve isimlerini elde etmek için kontrol dosyası okunur. OPEN Veritabanı açılınca tüm kullanıcılar veritabanına bağlanabilir. Veritabanı açılırken; online veri dosyaları ve online redo log dosyaları açılır.

29 Shutdown Seçenekleri Shutdown Modu Yeni bağlantılara izin verme
Session’ların bitmesini bekleme Transaction’ların bitmesini bekleme Checkpoint ile tüm dosyaları kapama A I T N Shutdown modu: A Abort I Immediate T Transactional N Normal Normal Default kapanma modudur. Yeni bağlantılara izin verilmez. Oracle Server tüm kullanıcıların bağlantılarını kesmelerini bekler. Oracle instance’ı kapatmadan önce veritabanını dismount eder ve kapatır. Bir sonraki startup instance recovery gerektirmez. Transactional Hiçbir istemci yeni bir transaction’a başlayamaz. Devam eden transaction’ı biten istemcinin bağlantısı kesilir. Tüm transaction’lar bittiğinde shutdown immediate oluşur. Bir sonraki startup instance recovery gerektirmez. Immediate Devam etmekte olan SQL ifadeleri bitirilmez. Oracle Server, veritabanına bağlı olan kullanıcıların, bağlantılarını kesmelerini beklemez. Aktif transaction’lar rollback edilir ve bağlı tüm kullanıcıların bağlantısı kesilir. Oracle instance’ı kapatmadan önce veritabanını dismount eder ve kapatır. Bir sonraki startup instance recovery gerektirmez. Abort Diğer 3 yöntemle kapanma gerçekleştirilemezse, veritabanı instance’ı gözardı edilerek kapatılabilir. Devam etmekte olan SQL ifadeleri derhal sonlandırılır. Oracle, veritabanına bağlı olan kullanıcıların, bağlantılarını kesmelerini beklemez. Commit edilmeyen transaction’lar rollback edilmez. Dosyalar kapatılmadan instance sonlandırılır. Bir sonraki startup instance recovery gerektirir.

30 Dinamik Performans Görünümlerine Erişim
OPEN Veri sözlüğü (Data dictionary) MOUNT Veriyi diskten okuyan dinamik performans görünümleri NOMOUNT Hafızadan okunan dinamik performans görünümleri SHUTDOWN Veritabanı açık ve kullanımda olduğu sürece güncellenen görünümlere (view) dinamik performans görünümleri denir. Sadece veritabanı yöneticisine açık olan bu görünümlerin içerikleri performansla doğrudan ilgilidir. Dahili disk yapıları ve hafıza yapıları hakkında veri sağlarlar. Dinamik performans görünümleri V_$ ile başlar (V$ ön eki ile başlayan eş anlamlı (synonym) görünümler de vardır). Instance NOMOUNT konumunda açıldığında, hafızadan okunan V$ görünümlerine erişilebilir. Kontrol dosyasından okunan görünümler ise veritabanının mount edilmesine ihtiyaç duyarlar. V$FIXED_TABLE, tüm dinamik performans görünümlerini görüntüler.

31 Dinamik Performans Görünümlerinden Örnekler
V$PARAMETER V$SGA V$OPTION V$PROCESS V$SESSION V$VERSION V$INSTANCE SGA V$THREAD V$CONTROLFILE V$DATABASE V$DATAFILE V$DATAFILE_HEADER V$LOGFILE Control file 1) NOMOUNT konumunda erişilebilen dinamik performans görünümleri V$PARAMETER Başlangıç parametresi hakkında bilgi içerir V$SGA SGA üzerine özet bilgi içerir V$OPTION Oracle Server ile kurulan seçenekleri listeler V$PROCESS Aktif haldeki işlemler hakkında bilgi içerir V$SESSION O anki oturum bilgisini listeler V$VERSION Sürüm numarası ve bileşenleri listeler V$INSTANCE O anki instance’ın durumunu görüntüler 2) MOUNT konumunda erişilebilen dinamik performans görünümleri V$THREAD Bağ bilgisini içerir (Örneğin redo log grupları) V$CONTROLFILE Kontrol dosyalarının isimlerini listeler (NOMOUNT konumun-da kullanılabilmesine rağmen, hiç satır döndürmez) V$DATABASE Veritabanı bilgisini içerir V$DATAFILE Kontrol dosyasından veri dosyası bilgisini içerir V$DATAFILE_HEADER Kontrol dosyasından veri dosyası başlığı bilgisini görüntüler V$LOGFILE Online redo log dosyaları hakkında bilgi içerir

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) Temel Tablolar: Temel veri sözlüğü tabloları, veritabanı yaratılırken sql.bsq* script’i ile yaratılırlar. Bu tablolara Oracle sunucusu şifreli olarak bilgi yazar (DDL). INSERT, UPDATE ve DELETE gibi DML ifadeleri bu tablolar üzerinde çalıştırılmamalıdır. Veri Sözlüğü Görünümleri: catalog.sql* script’inin yürütülmesiyle yaratılırlar. Temel veri sözlüğü tablolarındaki bilgileri deşifre edip özetlerler. Kullanıcıların kolayca erişebilmesi için, bu görünümlerin eşanlamlıları da yaratılır. Çoğu kullanıcı veri sözlüğünü tablolarla değil görünümlerle sorgular. Veri sözlüğü görünümleri 3 değişik ön eke sahip olurlar. USER ön ekli olanlar, kullanıcının sahip olduğu nesneleri gösterirler (örnek: USER_TABLES). ALL ön ekli olanlar, kullanıcının sahip olduklarını ve erişmesine izin verilen tüm nesneleri gösterirler (örnek: ALL_TABLES). DBA ön ekli olanlar, veritabanındaki tüm nesneleri gösterirler. Veritabanı yöneticileri ve SELECT ANY TABLE sistem ayrıcalığına sahip kullanıcılar tarafından sorgulanabilirler (örnek: DBA_TABLES, DBA_USERS, DBA_ROLES).

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. Prosedürler ve Fonksiyonlar : Belirli işleri yapmak veya belirli bir problemi çözmek üzere bir araya getirilmiş PL/SQL ve SQL cümleleri kümeleridir. Bunlar derlenmiş bir şekilde veritabanında saklanır ve kullanıcılar yada veritabanı uygulamaları tarafından kullanılabilirler. Paketler : Birbiriyle ilişkili olan prosedürlerin, fonksiyonların, değişkenlerin ve diğer yapıların bir bütün haline getirildiği ve veritabanında saklandığı yapıdır. Bir global değişkenin tanımlanıp paket içindeki herhangi bir prosedürde çağrılabilmesi gibi ekstra özellikler sağlar. Ayrıca paketler bir bütün halinde bir kerede parse edilip, derlenip, belleğe yüklendiği için performans artışı da sağlar. Veritabanı Tetikleri: Bir tablo veya görünümde değişiklik olduğunda, bir kullanıcı yada veritabanı sistemi aksiyonu gerçekleştiğinde, veritabanı tarafından otomatik olarak çağrılan, PL/SQL, Java veya C prosedürleridir. Veritabanı tetikleri, veritabanı yönetimi için çeşitli yollar sağlar. Örneğin, veri yaratmayı otomatik hale getirmek, veri değişimini izlemek, kompleks güvenlik yetkilendirilmesi sağlamak gibi amaçlar için kullanılabilir. Bağımsız Bloklar : Bağımsız veritabanı hareketleri PL/SQL bloklarının içinden çağırılabilirler. Bir bağımsız PL/SQL bloğuna girildiğinde, onu çağıran veritabanı hareketi geçici olarak durdurulur. Bu operasyon, bu blok içinde yada bu blok içinden çağırılan diğer bloklarda yapılan işlemlerin, onları çağıran veritabanı hareketinin durumunu etkilememesini sağlar.

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 JDeveloper Java tabanlı yazılım geliştirme aracıdır. Genellikle web-tabanlı yazılım geliştirmede kullanılır. Forms Kullanıcıların veri girişi yapmaları için veya var olan verileri sorgulamaları için kullanacakları arayüzlerin geliştirildiği uygulamadır. Reports Veritabanından elde edilen bilgiler ile fatura, evrak gibi dokümanlar (raporlar) hazırlamaya yarayan uygulamadır. Designer Veritabanı nesnelerinin görsel olarak oluşturulabilmesi için geliştirilmiş bir uygulamadır.

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 Oracle Database 11g: Administration Workshop II


"Veri Tabanı Yönetim Sistemleri 2 Ders 1 Oracle Veritabanı Mimarisi" indir ppt

Benzer bir sunumlar


Google Reklamları