Αυτό το άρθρο περιγράφει την εγκατάσταση της βάσης δεδομένων Oracle, έκδοση 11gR2, στο Ubuntu 11.04 64bit.
Αν έχετε αρκετή μνήμη, μπορείτε να δοκιμάσετε τα παρακάτω σε μια εικονική μηχανή, πχ με το VirtualBox.
Αρχεία εγκατάστασης
Κατεβάστε τα αρχεία εγκατάστασης από την Oracle, βρίσκονται στα Downloads --> Database 11g και είναι περίπου 2gb.
Προφανώς επιλέγετε την έκδοση Linux x86-64!
⚠ | Για να ενεργοποιηθούν οι σύνδεσμοι download πρέπει να αποδεχτείτε την άδεια χρήσης. Η άδεια επιτρέπει την ελεύθερη χρήση του για "developing, testing, prototyping and demonstrating your application" μόνο. |
⚠ | Η εγκατάσταση σε Ubuntu δεν υποστηρίζεται από την Oracle. |
Προκαταρκτικά
Ανοίξτε μια κονσόλα και εγκαταστήστε κάποια απαραίτητα πακέτα:
sudo apt-get install libaio1 libaio-dev unixODBC unixODBC-dev expat sysstat libelf-dev elfutils lsb-cxx pdksh libstdc++5 ia32-libs rlfe
Για να δουλεύουν τα άνω και κάτω βέλη στην sqlplus χρειάζεται να φτιάξετε ένα alias, πχ:
echo "alias sqlplus='rlfe sqlplus'" >> ~/.bashrc source ~/.bashrc
Για την εγκατάσταση απαιτούνται κάποιες εντολές σε συγκεκριμένες θέσεις. Δημιουργήστε τους παρακάτω συνδέσμους:
sudo ln -s /usr/bin/basename /bin/basename sudo ln -s /usr/bin/awk /bin/awk sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/ sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/ sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/ sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64
⚠ | Χρησιμοποιήστε οπωσδήποτε την παράμετρο -s. |
Δημιουργήστε ένα νέο προφίλ παραμέτρων πυρήνα δίνοντας την εντολή:
sudo cat - >> /etc/sysctl.d/60-oracle.conf
Μετά κάντε copy paste το παρακάτω κείμενο (απευθείας στην κονσόλα):
# Oracle 11gR2 kernel parameters fs.aio-max-nr=1048576 fs.file-max=6815744 net.ipv4.ip_local_port_range=9000 65500 net.core.rmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048586 kernel.sem=250 32000 100 128 kernel.shmmax=2147483648
Πατήστε ctrl-d για να γραφτεί το αρχείο.
⚠ | Η παράμετρος kernel.shmmax δηλώνει μέγιστη δυνατή τιμή, πχ το μέγεθος της RAM. |
Αν έχετε αμφιβολία, επαληθεύστε ότι γράφτηκε σωστά με την:
sudo cat /etc/sysctl.d/60-oracle.conf
Φορτώστε τις νέες παραμέτρους πυρήνα:
sudo service procps start
Επαληθεύστε:
$ sudo sysctl -q fs.aio-max-nr -> fs.aio-max-nr = 1048576
Δημιουργήστε ομάδες και χρήστες:
sudo groupadd oinstall sudo groupadd dba sudo useradd -m -g oinstall -G dba oracle sudo usermod -s /bin/bash oracle sudo passwd oracle sudo groupadd nobody sudo usermod -g nobody nobody
Επαλήθευση:
sudo id oracle -> uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
Για να αλλάξετε τα όρια του λογαριασμού oracle κρατήστε πρώτα ένα αντίγραφο του παλιού αρχείου:
sudo cp /etc/security/limits.conf /etc/security/limits.conf.original
Μετά δώστε:
sudo cat - >> /etc/security/limits.conf
Κάντε copy paste τα ακόλουθα (απευθείας στην κονσόλα):
#Oracle 11gR2 shell limits: oracle soft nproc 2048 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
Πατήστε ctrl-d για να γραφτεί το αρχείο.
Επαλήθευση:
sudo cat /etc/security/limits.conf
Προσθέστε τα εξής στο /etc/profile:
if [ "$USER" = oracle ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
Δημιουργήστε τους απαραίτητους φακέλους, πχ /u01/app για το λογισμικό της Oracle software και /u02/oradata για τα αρχεία της βάσης δεδομένων:
sudo mkdir -p /u01/app/oracle sudo mkdir -p /u01/app/oraInventory sudo mkdir -p /u02/oradata sudo chown oracle:oinstall /u01/app/oracle sudo chown oracle:oinstall /u01/app/oraInventory sudo chown oracle:oinstall /u02/oradata sudo chmod 750 /u01/app/oracle sudo chmod 750 /u01/app/oraInventory sudo chmod 750 /u02/oradata
Επιτρέψτε στο λογαριασμό oracle να χρησιμοποιεί sudo (για ευκολία):
usermod -G admin oracle
Εγκατάσταση
Προσαρτήστε με τον κατάλληλο τρόπο το μέσο εγκατάστασης, πχ ένα dvd στο φυσικό οδηγό ή ένα αρχείο iso σε εικονική μηχανή.
Ξεκινήστε το πρόγραμμα εγκατάστασης με:
runInstaller
Μπορεί να χρειαστεί αρκετή ώρα για να εμφανιστεί, μετά ακολουθήστε τα βήματα.
⚠ | Επιλέξτε "Ignore All" στο Prerequisites Check. |
Μετά την εγκατάσταση εκτελέστε το oraenv για να φτιάξετε τις μεταβλητές περιβάλλοντος:
/usr/local/bin/oraenv
Παράδειγμα μεταβλητών περιβάλλοντος:
ORACLE_SID=oracle_sid ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/dbhome_1/lib PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/u01/app/oracle/product/11.2.0/dbhome_1/bin
Κατά την εγκατάσταση μπορεί να σας εμφανίσει το παρακάτω λάθος:
Error in invoking target 'all_no_orcl' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/u01/app/oraInventory/logs/installActions2011-12-01_01-06-40PM.log' for details.
Αυτό οφείλεται στη χρήση hard links, βεβαιωθείτε ότι δώσατε ln -s πιο πάνω.
Εκτέλεση
Instance
Αφού έχετε φτιάξει τις μεταβλητές περιβάλλοντος δώστε:
sqlplus / as sysdba
Αυτό σας βγάζει στο prompt:
SQL>
Δοκιμάστε (μέσα στην sqlplus) να σηκώσετε το instance:
startup nomount
Θα πρέπει να απαντήσει το εξής (μαζί με κάποια επιπλέον νούμερα):
ORACLE instance started.
Δώστε (μέσα στην sqlplus):
select * from dual;
Θα επιστρέψει ένα record από τον πίνακα dual - συγχαρητήρια :)
Αν δε σηκωθεί το instance μπορεί να φταίει το /dev/shm. Το προεπιλεγμένο μέγεθος του /dev/shm είναι 4G. Αν θέσατε το MEMORY_TARGET στο "Initialization Parameter File" σε κάτι μεγαλύτερο από 4G, θα λάβετε μήνυμα λάθους όταν προσπαθήσετε να σηκώσετε το instance. Πρέπει να ορίσετε με το χέρι το κατάλληλο μέγεθος του /dev/shm στο αρχείο /etc/fstab, πχ για 8 gigabytes:
tmpfs /dev/shm tmpfs size=8g 0 0
Αν έχει σηκωθεί κανονικά το instance, τότε σε μια κονσόλα καλέστε το listener configuration tool:
netca
Αφού φτιάξετε το listener καλέστε το database creation assistant:
dbca
Αν λάβετε το μήνυμα λάθους "/bin/rpm: not found", πρέπει να φτιάξετε το:
ln -s /usr/bin/rpm /bin/rpm
Όταν τελειώσει η δημιουργία της βάσης, σημειώστε τη διεύθυνση (url) του Enterprise Manager και ανοίξτε την στο browser.
Μπορείτε να σταματήσετε το instance (μέσα στην sqlplus) με:
shutdown
Βγαίνετε από την sqlplus με:
quit
SqlDeveloper
Ξεκινήστε τον SqlDeveloper πχ με:
/u01/app/oracle/product/11.2.0/dbhome_1/sqldeveloper/sqldeveloper.sh
Μάλλον πρέπει να φτιάξετε κάποιο alias για αυτό!
Αν οι γραμματοσειρές φαίνονται πολύ μικρές, προσθέστε το παρακάτω στο αρχείο ide.properties (χρησιμοποιήστε την εντολή find στο φάκελο ~/.sqldeveloper):
Ide.FontSize=14
Αν οι γραμματοσειρές του SqlDeveloper δεν είναι anti-aliased, προσθέστε το παρακάτω στην αρχή του αρχείου $ORACLE_HOME/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf
AddVMOption -Dswing.aatext=true
Εναλλακτικά μπορείτε να προσθέσετε το παρακάτω στο .bashrc σας για JDK 1.5:
export _JAVA_OPTIONS='-Dswing.aatext=true'
Για JDK 1.6:
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'
Warehouse Builder
Ξεκινήστε τον Warehouse Builder πχ με:
/u01/app/oracle/product/11.2.0/dbhome_1/owb/bin/owb
Μάλλον πρέπει να φτιάξετε κάποιο alias και για αυτό!
Αν οι γραμματοσειρές του Warehouse Builder είναι πολύ μικρές, προσθέστε το παρακάτω στο αρχείο ide.properties (χρησιμοποιήστε την εντολή find στο φάκελο ~/.owb):
Ide.FontSize=14