Oct 7, 2012

Oracle XE 11g σε virtual machine των 512MB RAM

Ίσως μερικοί να έχουν συνηθίσει στην ιδέα πως η εγκατάσταση της Oracle είναι δύσκολη υπόθεση, απαιτεί υψηλούς υπολογιστικούς πόρους, κ.ο.κ. H Oracle Express Edition (XE) αποτελεί μια εξαιρετική λύση για τη γρήγορη εγκατάσταση μια πλήρους έκδοσης της Oracle 11g R2 (11.2.0.1) σε ελάχιστους πόρους, με μερικούς περιορισμούς που όμως δεν επηρεάζουν το 90% θα τολμούσα να πω των περιπτώσεων ενός περιβάλλοντος εκμάθησης αλλά και προγραμματισμού. Η ΧΕ είναι διαθέσιμη για Linux 64-bit (rpm-based) και για Windows από εδώ.

Οι περιορισμοί της XE αναφέρονται φυσικά στην εμπορική της χρήση, στην χρησιμοποίηση CPU (όχι παραπάνω από μια), το μέγεθος της μνήμης διαθέσιμης στην Oracle (max 1G), την χωρητικότητα (max 11GB datafiles), κλπ. Αναλυτικές πληροφορίες στο http://docs.oracle.com/cd/E17781_01/install.112/e18802/toc.htm#BABIECJA

Θέλοντας λοιπόν να στήσω ένα νέο περιβάλλον δοκιμών στην Oracle XE, επέλεξα ένα virtualbox image που έχω φτιάξει βασισμένο στο CentOS 5.8 64-bit. Στο virtual machine έχω κάνει ανάθεση 512MB μνήμης, ενώ έχει οριστεί ως default runlevel το 3 (console mode, όχι Χ). Στο Linux, στην έκδοση 11g, η μνήμη SGA γίνεται allocate από το εικονικό σύστημα αρχείων /dev/shm, οπότε πριν προχωρήσω στην εγκατάσταση έκανα την εξής αλλαγή στο /etc/fstab:

tmpfs     /dev/shm    tmpfs size=400m,defaults

προορίζω λοιπόν το Oracle instance να καταλάβει 400Mbytes μνήμης. Για να ισχύσει η αλλαγή (ως root):

umount /dev/shm && mount -a

Τώρα είμαστε έτοιμοι για την εγκατάσταση. Στην ουσία πρόκειται για ένα απλό rpm (rpm -ivh oracle-xe....rpm) και ύστερα ένα βήμα ρύθμισης (/etc/init.d/oracle-xe configure) Εξ ορισμού, η Oracle καταλαμβάνει το 40% της μνήμης ενός μηχανήματος, οπότε στην περίπτωση μας (512ΜΒ) αισίως έχει καταλάβει 200ΜΒ.

Από την SQL*Plus ως sysdba, κάνω λοιπόν τις εξής αλλαγές, ώστε να αυξήσω τα μεγέθη της μνήμης (SGA+PGA) και να ξανα-ξεκινήσω την Oracle:

alter system set memory_max_target=400m scope=spfile;
alter system set memory_target=400m scope=spfile;
shutdown immediate;
startup;

No comments: