**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
# Howto Oracle Database 11Gr2
## Télécharger Oracle DB
Rendez-vous sur le site d'[Oracle](http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html). Vous devez avoir un compte, une fois connecté, récupérez l'adresse du lien qui contient un token, et vous pouvez le télécharger avec wget en copiant/collant l'URL, exemple de lien (plus valable évidemment) : <http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip?AuthParam=1323247397_1e374bb8429455952fa3a9acf468afc4>
/!\ Attention il faut au moins 1Go de libre sur /tmp et 15Go de swap (peut-être ignoré) ainsi que 13Go pour la base oracle ! /opt devrait donc faire plus de 15Go !
L'installation d'Oracle DB se fait via un GUI, pour cela il faut activer le forwading X11 sur votre serveur SSH et autoriser le compte "oracle" à se connecter en SSH (par clé de préférence).
On peut ainsi se connecter en SSH ainsi (avec compression + algorithme de chiffrement léger histoire d'améliorer un peu la vitesse d'affichage des fenêtres) :
Dans la partie pré-requis cela va échouer pour pratiquement tout ... « fixez » ce qui est possible en cliquant sur Fix ! On vous demandera alors d'exécuter un script :
Cela va modifier sysctl avec les valeurs recommandés.
En Wheezy il a y des erreurs lors de la compilation des outils.
Si vous avez :
~~~
/usr/bin/ld: note: 'B_DestroyKeyObject' is defined in DSO /u01/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so so try adding it to the linker command line
/u01/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
~~~
Il faut lancer le make à la main, récupérer la dernière ligne qui s'affiche et la corriger en ajoutant `-lnmemso -lcore11 -lnnz11`. Enfin cliquer sur « retry install ».
~~~
cd $ORACLE_HOME/sysman/lib
make -f ins_emagent.mk "agent"
~~~
Avec Oracle 12 si vous avez :
~~~
/usr/bin/ld: /opt/oracle/app/oracle/product/12.1.0/dbhome_1//rdbms/lib/houzi.o: undefined reference to symbol 'ztcsh'
/usr/bin/ld: note: 'ztcsh' is defined in DSO /opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/libnnz12.so so try adding it to the linker command line
/opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/libnnz12.so: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
~~~
Il faut éditer le fichier /opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/ldflags et ajouter -lons
Si vous avez :
~~~
/usr/bin/ld: /opt/oracle/app/oracle/product/12.1.0/dbhome_1//rdbms/lib/houzi.o: undefined reference to symbol 'ztcsh'
/usr/bin/ld: note: 'ztcsh' is defined in DSO /opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/libnnz12.so so try adding it to the linker command line
/opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/libnnz12.so: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
~~~
Il faut éditer /opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/sysliblist et mettre -lnnz12
Puis relancer l'installation avec « Retry ».
L'installation devrait se finir, mais il reste encore des scripts à exécuter en root !
Vous pouvez ensuite vous connectez en xxx ou avec la magnifique interface web du type : <https://mysuperserver:1158/em.> Pour se connecter en admin le login est SYS, le mot de passe est celui que vous avez renseigné pendant l'installation et il faut cliquer sur, « connect as SYSDBA ».
Rajouter cette ligne dans le .profile de l'utilisateur oracle :
Oracle DB n'étant officiellement supporté sous Debian, pour nous en faciliter l'installation et la maintenance nous allons l'installer dans un conteneur Docker.
## Installer Docker
Avant de commencer nous allons avoir besoin de l'ensemble des outils docker sur la machine.
Vous pouvez vous référer à notre [HowtoDocker](https://wiki.evolix.org/HowtoDocker)
## Pré-requis
Récupérer le dépot Oracle docker-images sur Github :
Télécharger la version 12R2 via le site d'Oracle : [http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html]()
## Installation
Décomprésser le dépot Oracle :
~~~
# unzip master.zip
~~~
Placer le fichier "linuxx64_12201_database.zip" correspondant à la version 12R2 que vous avez récupéré via le site d'Oracle dans le sous dossier docker-images-master/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/ du dépôt Oracle :
-p 1521:1521 → On redirige le port 1521 local vers le port 1521 du conteneur
-p 5500:5500 → On redirige le port 5500 local vers le port 5500 du conteneur
-v /path/to/your/persistent/oradata:/opt/oracle/oradata → On souhaite avoir une base de données persistente, /opt/oracle/oradata du conteneur sera donc relié à notre dossier local /path/to/your/persistent/oradata