Oracle: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Michiel1972 (overleg | bijdragen)
Michiel1972 (overleg | bijdragen)
Regel 15:
 
:''Zie verder [[Oracle/Database structuren]]''
 
De verschillende soorten fysieke bestanden dienen voor het opslaan van bepaalde type data. Datafiles zijn voor de opslag van data (rijen en indexen) en tempfiles voor het opslaan van tijdelijke, vluchtige, data. Op sommige bestanden heeft men veel invloed en beheermogelijkheden, datafiles, op andere praktisch niet, zoals de controlfiles. En weer andere bestanden, zoals de archivelog bestanden, zijn weer een kopie van andere, de redolog bestanden.
 
=== Logische eenheden ===
De logische structuren voor het opslaan van data is als volgt. Data wordt opgeslagen in (data)blok, een blok behoort bij een extent en een extent behoort bij een segment. Oftwel een segment heeft één of meerdere extents en een extent heeft minimaal een aantal blokken. Dus een tabel of index is een segment dat bestaat uit minimaal 1 extent en dat extent heeft een aantal blokken.
 
Het minimaal aantal blokken binnen een extent hangt af van meerdere factoren. Bijvoorbeeld is dit het eerste extent van een segment en in welk type tablespace wordt dit segment opgeslagen, een dictionary of locally managed tablespace. De omvang van het datablok is ook van belang in de bepaling wat het minimaal aantal blokken in een extent is.
 
[[Afbeelding:logstruc1.png|center|Logische structuur, van blok naar tablespace]]
 
 
Deze logische groepering van blokken geldt voor datafiles en tempfiles. Controlfiles en redolog files hebben wel blokken, van een andere omvang en indeling, dan een datablok, maar hebben geen extents of segmenten. Dit geldt ook voor archivelogfiles aangezien dit kopieën zijn van redologfiles.
 
==== blok ====
 
==== extent ====
 
==== tabel/index segment ====
 
==== undo segment ====
 
=== Fysieke structuren ===
 
Zoals gezegd bestaat een Oracle database uit een verzameling fysieke bestanden. Deze bestanden staan op de database server op filesystemen. Dit ook op verschillende soorten filesystemen, standaard filesystemen van het besturingssysteem zoals ext3 of NTFS. Maar ook speciale filesystemen zoals het Oracle Clustered Filesystem (OCFS) voor RAC installatie. Ook is het bij Unix/Linux systemen mogelijk om de fysieke database bestanden op een zogenaamd ''raw device'' te plaatsen.
 
Een ''raw device'' is een hele of een gedeelte van een disk zonder formatering, filesysteem. Doordat er geen filesysteem aanwezig is, scheelt dit in de I/O overhead en dus een performance voordeel. Echter ''raw devices'' hebben enkele grote beheerproblemen, het besturingssysteem ziet geen bestanden op een ''raw device'', daarom zijn de standaard utilities voor bestandsbeheer niet te gebruiken, wat het beheer extra lastig maakt.
 
Vanaf Oracle10g is het mogelijk om de fysieke bestanden op te slaan op schijven, die door Oracle volledig beheert worden. Deze technologie heet Automatic Storage Management (ASM). Met ASM is Oracle zelfs instaat om RAID technologie toe te passen op deze disks. Hiermee heeft men de performance voordelen van ''raw devices'' en niet de nadelen. Oracle regelt namelijk het bestandsbeheer van deze disks.
 
De benaming van de fysieke database bestanden kan tegenwoordig ook door Oracle beheert worden. Sinds Oracle9i bestaat de mogelijheid om de fysieke bestandsnaam achterwege te laten en dan zal Oracle een gegenereede naam aan het bestand geven,Oracle Managed Files (OMF). Een van de voordelen van OMF is dat ook logische directory structuren worden aagemaakt voor de verschillende type bestanden.
 
==== controlfiles ====
 
De Controlfile is een binaire file die informatie van alle fysieke datafiles heeft en de huidige transactie staat waarin ze verkeren.
In de controlfile wordt een SCN (System Change Number) bijgehouden, en als de datafile een andere SCN heeft als in de controlfile, dan is recovery vereist. De Controlfile is noodzakelijk voor het opstarten en recoveren van de database.
Het is zeker raadzaam om de Controlfile te multiplexen het liefts op verschillende harddisks.
 
 
Voor het maken van een backup van de controlfile in binair mode:
<pre>
alter database backup controlfile to '/home/user';
</pre>
Voor het maken van een backup van de controlfile in leesbaar ascii:
<pre>
alter database backup controlfile to trace;
</pre>
De trace controlfile staat in de udump directory van de database.
Als de OFA structuur wordt aangehouden zal het deze lokatie zijn:
/mount_point/app/oracle/admin/ORACLE_SID/udump
en hier moet je dan kijken in de laatste trace file die gegenereert is.
 
==== datafiles ====
 
De datafiles, dit zijn de fysieke bestanden op een harddisk (of SAN/NAS) waar de data in staat.
Het is gebruikelijk om een datafile de extensie .ora of .dbf mee te geven.
Het is vaak handig een conventie te verzinnen zodat je alleen al bij het zien van de datafile naam, je de tablespace naam weer en misschien zelfs of het om de indexdata gaat. (Bij grote databases is het vaak wenselijk om de data en indexen de splitsen, en de datafiles op verschillende hardde schijven te zetten. Dit geeft een betere performance)
 
==== tempfiles ====
 
De tempfiles zitten in een zogenaamde Temporary Tablespace. Het doel van deze tablespace is een stukje harddisk ruimte reserveren voor sorteringen wanneer deze niet meer in het geheugen passen. Bijvoorbeeld een GROUP BY sortering, maar ook voor joins ANALYZE en DISTINCT operaties, wordt de Temporary tablespace gebruikt. Er staat geen informatie van de Tempfile in de Controlfile.
 
==== redologfiles ====
 
De Redolog slaat alle veranderingen op die zijn gemaakt in de datafiles. Als er iets mis gaat met een datafile is het op die manier mogelijk om met behulp van een (online) backup en de redologs de datafile te herstellen tot een moment waar deze nog goed was.
 
==== archivelogfiles ====
 
Archive logfiles is niets anders als: gearchiveerde redolog files.
De lokatie waar dit plaats vindt is te zetten in de initSID.ora file.
 
==Geheugengebieden==
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.