Πώς λειτουργεί η βάση δεδομένων της Oracle

Πώς λειτουργεί η βάση δεδομένων της Oracle
Πώς λειτουργεί η βάση δεδομένων της Oracle

Ένα από τα πιο γνωστά RDBMS(σύστημα διαχείρισης βάσεων δεδομένων) με ένα από τα μεγαλύτερα ποσοστά στην αγορά είναι η Oracle Database.

Τι ξεχωριστό προσφέρει

Η Oracle DB σε σχέση με τον ανταγωνισμό προσφέρει τεχνολογία active/active δηλαδή ένα clustering διαφορετικών server που έχουν όλοι τη δυνατότητα και να διαβάζουν και να γράφουν στην βάση ταυτόχρονα που ονομάζετε RAC (Real Application Cluster). Ωστόσο πολύ σημαντικό είναι και ότι δεν κάνει blocking στο select ανεξάρτητος isolation level που αυτό σημαίνει ότι όταν ένας χρήστης διαβάζει μια πληροφορία ένας δεύτερος χρήστης μπορεί να την τροποποιεί ταυτόχρονα την πληροφορία αυτή χωρίς να επηρεάζει τον πρώτο.  Επίσης είναι γνωστή για την ευκολία διαχείρισης βάσεων πολλών terabytes.

Πώς λειτουργεί

Η αρχιτεκτονική της Oracle Database στην έκδοση 12c είναι αυτή.

Πώς λειτουργεί η βάση δεδομένων της Oracle
Το official διάγραμμα αρχιτεκτονικής της 12c

Δεν βγάλατε καμία άκρη ε;

Λογικό!! Οπότε έφτιαξα ένα διάγραμμα αρκετά πιο απλοποιημένο με τα πιο βασικά της στοιχεία:

Πώς λειτουργεί η βάση δεδομένων της Oracle

Πάμε να εξηγήσουμε το κάθε κομμάτι του

Instance και Database

Στο RDBMS της Oracle ως instance ορίζεται όλο το software του RDBMS που διαχειρίζεται την βάση δεδομένων και ως βάση δεδομένων ορίζονται τα φυσικά αρχεία της.

Control file

Το control file είναι ένα αρχείο το οποίο περιέχει πληροφορίες για την δομή της βάσης δεδομένων όπως τα ονόματα και την τοποθεσία των datafiles και redo files όπως επίσης και το log sequence number (LSN) που βρίσκεται αυτή τη στιγμή.

SPFILE και PFILE

Στο SPFILE ή αλλιώς Server parameter file αποθηκεύονται όλοι οι παράμετροι της βάσης δεδομένων όπως το όνομα της, η τοποθεσία του control file, η μνήμη(ram) που καταλαμβάνει, την τοποθεσία και το μέγεθος του FRA (recovery area). Όμως αυτό το αρχείο δεν μπορούμε να το τροποποιήσουμε με έναν text editor. Για αυτό τον λόγο μπορούμε να δημιουργήσουμε ένα PFILE το οποίο περιέχει όλη την πληροφορία του SPFILE με την μόνη διαφορά ότι βρίσκεται σε κείμενο και μπορούμε να το τροποποιήσουμε. Τέλος έχουμε τη δυνατότητα να αντικαταστήσουμε το παλιό ή να φτιάξουμε καινούργιο SPFILE από το PFILE που τροποποιήσαμε.

Listener

Είναι το service που είναι υπεύθυνο για να επιτρέψει ένα database connection προς το σωστό instance της βάσης.

Program Global Memory (PGA)

Είναι η μνήμη(ram) που καταλαμβάνει το κάθε session-connection στην βάση.

System Global Memory (SGA)

Είναι η μνήμη(ram) που καταλαμβάνει το instance ως κοινόχρηστη για το σύνολο των εργασιών της μέσω buffers και cache.

Buffer cache

Φορτώνει blocks από τα datafiles στην μνήμη(ram) για ανάγνωση ή επεξεργασία. Όσο τα έχει φορτωμένα σε αυτή δεν χρειάζεται να προσπελασθεί ο σκληρός δίσκος, σε αντίθετη περίπτωση φορτώνονται όσα blocks χρειάζονται ακόμα στην buffer cache.

Redo Logs

Κάθε ενέργεια που γίνεται στην βάση καταγράφεται στα redo logs αυτό της δίνει την δυνατότητα να μπορεί να επανέλθει σε περίπτωση βλάβης ή restore έως αυτή την στιγμή.

Archived redo logs

Όταν η βάση είναι σε archived log mode τα redo logs δεν διαγραφούν την πληροφορία μόλις γεμίσουν μέχρι να γίνουν archived. Αυτό το mode δίνει την δυνατότητα να παίρνετε backup η βάση online δηλαδή ενώ είναι προσπελάσιμη από όλους καθώς και να μπορεί να επανέλθει σε οποιαδήποτε χρονική στιγμή σε περίπτωση restore.

Undo tablespace

Το undo έχει 2 χρήσεις, πρώτον γράφονται σε αυτό blocks από τα δεδομένα που πάνε να αλλάξουν ώστε σε περίπτωση που γίνει rollback η συναλλαγή να επανέλθουν από εκεί και δεύτερον σε περίπτωση που ξεκινήσουμε την εκτέλεση ενός select statement(για ανάγνωση δεδομένων) γράφονται εκεί ώστε τα datafiles με τα actual δεδομένα να συνεχίσουν να ενημερώνονται κανονικά χωρίς καθυστέρηση ή blocking.

Users tablespace

Είναι το default tablespace(χώρος αποθήκευσης) για τα μη-συστημικά objects, μπορούμε να φτιάξουμε κάλλιστα πολλά tablespaces με διαφορετικά ονόματα ώστε να έχουμε καλύτερη διαχείριση.

System/SysAUX/TEMP DB

Είναι συστημικά tablespaces που απαιτούνται για τη λειτουργία της βάσης.

Flashback logs

Είναι τα logs που χρειάζονται για τις λειτουργίες flashback query και physical flashback της βάσης(θα εξηγήσουμε σε άλλο άρθρο τι κάνουν αυτές οι λειτουργίες)

Fast/Flash Recovery Area(FRA)

Είναι ο default χώρος για flashback logs, archived logs και backups.

Κλείνοντας θέλω να σας αναφέρω ότι για την περιγραφή μέσο του διαγράμματος  έχουν γίνει αρκετές υπεραπλουστεύσεις και έχουν αφαιρεθεί κάποια ενδιάμεσα μονοπάτια ώστε να μπορεί να γίνει εύκολα κατανοητό.

Πηγές:

Μοιράσου το

Αφήστε μία απάντηση