Πώς λειτουργεί η βάση δεδομένων της Oracle
- Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση - 2 Σεπτέμβριος 2024
- Πώς ρυθμίζουμε το replication του GoldenGate ώστε να διαβάζει από το Standby του Oracle Data Guard - 2 Αύγουστος 2024
- Πώς μπορούμε να συνδέσουμε Oracle Database με SQL Server με χρήση Oracle Gateway σε Linux - 1 Ιούλιος 2024
Ένα από τα πιο γνωστά RDBMS(σύστημα διαχείρισης βάσεων δεδομένων) με ένα από τα μεγαλύτερα ποσοστά στην αγορά είναι η Oracle Database.
Τι ξεχωριστό προσφέρει
Η Oracle DB σε σχέση με τον ανταγωνισμό προσφέρει τεχνολογία active/active δηλαδή ένα clustering διαφορετικών server που έχουν όλοι τη δυνατότητα και να διαβάζουν και να γράφουν στην βάση ταυτόχρονα που ονομάζετε RAC (Real Application Cluster). Ωστόσο πολύ σημαντικό είναι και ότι δεν κάνει blocking στο select ανεξάρτητος isolation level που αυτό σημαίνει ότι όταν ένας χρήστης διαβάζει μια πληροφορία ένας δεύτερος χρήστης μπορεί να την τροποποιεί ταυτόχρονα την πληροφορία αυτή χωρίς να επηρεάζει τον πρώτο. Επίσης είναι γνωστή για την ευκολία διαχείρισης βάσεων πολλών terabytes.
Πώς λειτουργεί
Η αρχιτεκτονική της Oracle Database στην έκδοση 12c είναι αυτή.
Δεν βγάλατε καμία άκρη ε;
Λογικό!! Οπότε έφτιαξα ένα διάγραμμα αρκετά πιο απλοποιημένο με τα πιο βασικά της στοιχεία:
Πάμε να εξηγήσουμε το κάθε κομμάτι του
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.
Κλείνοντας θέλω να σας αναφέρω ότι για την περιγραφή μέσο του διαγράμματος έχουν γίνει αρκετές υπεραπλουστεύσεις και έχουν αφαιρεθεί κάποια ενδιάμεσα μονοπάτια ώστε να μπορεί να γίνει εύκολα κατανοητό.