Database versus instantie
Oracle is een RDBMS (object-relationeel databasebeheersysteem) dat veel wordt gebruikt in ondernemingen. Het is ontwikkeld door de Oracle Corporation. Een Oracle-systeem bestaat uit minimaal één Instance en een database. Instantie is een verzameling processen die communiceren met de gegevensopslag. Database is de eigenlijke opslag, die de verzameling bestanden bevat. De term Oracle-database wordt echter gebruikt om te verwijzen naar het hele Oracle-databasesysteem (instanties en databases). Hierdoor is er voor beginners altijd enige verwarring tussen de termen database en instance.
Wat is instantie?
Instance is een verzameling processen die bovenop het besturingssysteem worden uitgevoerd en het bijbehorende geheugen dat in wisselwerking staat met de gegevensopslag. De instantie is de interface tussen de gebruiker en de database. Processen die met de client kunnen communiceren en toegang hebben tot de database worden geleverd door de instantie. Deze processen zijn achtergrondprocessen en ze zijn niet voldoende om het ACID-principe (Atomicity, Consistentie, Isolatie en Duurzaamheid) in de database te handhaven. Een instance gebruikt dus ook weinig andere componenten zoals geheugencache en buffers. Meer specifiek bestaat een instantie uit drie delen. Het zijn SGA (System Global Area), PGA (Program Global Area) en achtergrondprocessen. SGA is een tijdelijke structuur met gedeeld geheugen, die een levensduur heeft van het opstarten tot het afsluiten van de instantie.
Database
De Oracle-database verwijst naar de feitelijke opslag van het Oracle RDBMS. Het is opgebouwd uit drie hoofdcomponenten. Het zijn controlebestanden, redo-bestanden en gegevensbestanden. Optioneel kunnen er wachtwoordbestanden in de database aanwezig zijn. De controlebestanden houden alle gegevensbestanden bij en herhalen bestanden. Het helpt ook om de database-integriteit intact te houden door het System Change Number (SCN), tijdstempels en andere kritieke informatie zoals back-up-/herstelinformatie bij te houden. Gegevensbestanden bevatten de werkelijke gegevens. Op het moment dat de database wordt gemaakt, worden er ten minste twee gegevensbestanden gemaakt. Deze bestanden worden fysiek gezien door de DBA (Database Administrator). Bestandsbewerkingen zoals hernoemen, vergroten/verkleinen, toevoegen, verplaatsen of neerzetten kunnen worden uitgevoerd op gegevensbestanden. Redo-logbestanden (ook wel online redo-logs genoemd), bewaar de informatie over de wijzigingen in de database met de chronologische informatie. Deze informatie is nodig voor het geval de gebruiker alle of een deel van de wijzigingen in de database opnieuw moet uitvoeren. Om een instantie de gegevens van de database te laten manipuleren, moet deze eerst worden geopend. Een instantie kan slechts één database openen. Een database kan echter door meerdere instanties worden geopend.
Wat is het verschil tussen database en instantie?
De termen instantie en database in Oracle RDBMS zijn sterk verwant, maar ze verwijzen naar de twee verschillende componenten binnen het systeem. De database verwijst naar de daadwerkelijke opslag van het RDBMS, terwijl Instance een verzameling processen is die bovenop het besturingssysteem worden uitgevoerd en het bijbehorende geheugen dat interageert met de gegevensopslag. De instantie moet de database openen voordat gegevens worden gemanipuleerd. Meerdere instanties kunnen een enkele database openen, maar een instantie kan niet meerdere databases openen.