programmera.net -> oracledba -> normal     för utskrift      info@programmera.net

Datalagring i Oracle

1. Hur fungerar datalagring i Oracle?
2. Logisk of Fysisk struktur
3. Exempel på filer och segment

1. Hur fungerar datalagring i Oracle?

Oracle har en datalagringsmodell som innefattar många typer av objekt. Följande bild illustrerar de olika lagringsobjecten ur ett fysiskt och logiskt perspektiv:



Termerna har följande betydelse:

  1. Databasen är den största enheten för datalagring. En databas "äger" flera tabellutrymmen och filer.
  2. Tabellutrymmen (tablespaces): All datalagring för ett objekt (tabell eller index) sker i ett tabellutrymme.
  3. Filer: Varje tabellutrymme har en eller flera filer där själva datat lagras.
  4. Segment: Varje tabellutrymme kan innehålla flera segment. Varje objekt får ett eget segment i vilket dess data lagras.
  5. Extent: Varje segment består av ett eller flera extent. Ett extent är sammanhängande serie av block.
  6. Oracleblock: Ett block är den minsta logiska enheten för datalagring. Alla block i tabellutrymmet har samma storlek. Blockstorleken är en multipel av det underliggande operativsystemets blockstorlek. Ett block kan till exempel ha storleken 8KB.
  7. Operativssytemsblock: Ett os-block är den minsta fysiska enheten för datalagring. Operativsystemet läser alltid hela os-block från disken.

2. Logisk of Fysisk struktur

Man delar in de olika arkitekturen i två delar:

  • Fysisk struktur: Den fysiska strukturen består av de delar som är synliga för operativsystemet, nämligen filer och operativsystemsblock. Det är i den fysiska strukturen som data "i verkligeheten" lagras.
  • Logisk struktur: Inifrån Oracle beskrivs datalagringen i logiska termer, oberoende av hur data faktiskt lagras på operativssystemsnivå. Man definierar upp begrepp som Tabellutrymme, segment, extent och Oracleblock. Den logiska strukturen finns till för att lyfta beskrivningen av lagringen till en nivå som är lättare att arbeta med, men under ytan är det så klart bara filer och block.
Bilden nedan beskriver hur de olika delarna hänger samman:



I bilden ser vi att segmentet "Department" (som svarar mot en tabell med samma namn) ligger i båda filerna. Bilden försöker illustrera att segment inte behöver ligga helt och hållet i en fysisk fil, utan kan vara utspridd på flera filer. Du som DBA kan inte kontrollera i vilken av tabellutrymmets filer ett enskilt segment kommer att hamna, men det spelar hur som helst ingen roll var segmentet lagras.

3. Exempel på filer och segment

Följande bild visar olika typer av filer och segment som förekommer i Oracle.