mirroir readonly du Gitit wiki.evolix.org (attention, ne rien commiter/merger sur ce dépôt) https://wiki.evolix.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

HowtoOracleDB.md 9.4 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. **Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
  2. # Howto Oracle Database 11Gr2
  3. ## Télécharger Oracle DB
  4. 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>
  5. ## Installer les pré-requis
  6. Pour Stretch, mettre dans son /etc/apt/sources.list :
  7. ~~~
  8. deb [arch=amd64,i386] http://mirror.evolix.org/debian/ stretch main
  9. deb [arch=amd64,i386] http://mirror.evolix.org/debian/ stretch-updates main
  10. deb [arch=amd64,i386] http://security.debian.org/debian-security stretch/updates main
  11. ~~~
  12. Puis :
  13. ~~~
  14. # dpkg --add-architecture i386
  15. # aptitude update
  16. # aptitude install build-essential gcc-multilib lib32z1 libaio1 libstdc++5 rpm xauth x11-utils
  17. ~~~
  18. ### Quelques hacks moches ...
  19. ~~~
  20. # ln -s /usr/bin/awk /bin/awk
  21. # ln -s /usr/bin/basename /bin/basename
  22. # ln -s /usr/bin/rpm /bin/rpm
  23. ~~~
  24. Sous Stretch, il faudra « linker » quelques librairies utilisées lors de l'installation pour compiler des outils Oracle.
  25. ~~~
  26. # mkdir /usr/lib64
  27. # chmod 755 /usr/lib64
  28. # ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
  29. # ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
  30. # ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib64/
  31. # ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
  32. ~~~
  33. ## Installation
  34. /!\ 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 !
  35. Il faut installer un compte Unix "oracle" :
  36. ~~~
  37. # addgroup oracle
  38. Adding group `oracle' (GID 1001) ...
  39. Done.
  40. # adduser --system --home /opt/oracle --ingroup oracle oracle
  41. Adding system user `oracle' (UID 107) ...
  42. Adding new user `oracle' (UID 107) with group `oracle' ...
  43. Creating home directory `/opt/oracle' ...
  44. # passwd oracle
  45. ~~~
  46. 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).
  47. 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) :
  48. ~~~
  49. $ ssh -c arcfour,blowfish-cbc -YC oracle@server.example.com
  50. ~~~
  51. Enfin on lance l'installeur :
  52. ~~~
  53. # /opt/oracle/install/runInstaller
  54. ~~~
  55. 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 :
  56. ~~~
  57. # bash /tmp/CVU_11.2.0.1.0_oracle/orarun.sh /tmp/CVU_11.2.0.1.0_oracle/fixup.response /tmp/CVU_11.2.0.1.0_oracle/fixup.enable /tmp/CVU_11.2.0.1.0_oracle
  58. ~~~
  59. Cela va modifier sysctl avec les valeurs recommandés.
  60. En Wheezy il a y des erreurs lors de la compilation des outils.
  61. Si vous avez :
  62. ~~~
  63. /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
  64. /u01/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so: could not read symbols: Invalid operation
  65. collect2: error: ld returned 1 exit status
  66. ~~~
  67. 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 ».
  68. ~~~
  69. cd $ORACLE_HOME/sysman/lib
  70. make -f ins_emagent.mk "agent"
  71. ~~~
  72. Avec Oracle 12 si vous avez :
  73. ~~~
  74. /usr/bin/ld: /opt/oracle/app/oracle/product/12.1.0/dbhome_1//rdbms/lib/houzi.o: undefined reference to symbol 'ztcsh'
  75. /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
  76. /opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/libnnz12.so: could not read symbols: Invalid operation
  77. collect2: error: ld returned 1 exit status
  78. ~~~
  79. Il faut éditer le fichier /opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/ldflags et ajouter -lons
  80. Si vous avez :
  81. ~~~
  82. /usr/bin/ld: /opt/oracle/app/oracle/product/12.1.0/dbhome_1//rdbms/lib/houzi.o: undefined reference to symbol 'ztcsh'
  83. /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
  84. /opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/libnnz12.so: could not read symbols: Invalid operation
  85. collect2: error: ld returned 1 exit status
  86. ~~~
  87. Il faut éditer /opt/oracle/app/oracle/product/12.1.0/dbhome_1//lib/sysliblist et mettre -lnnz12
  88. Puis relancer l'installation avec « Retry ».
  89. L'installation devrait se finir, mais il reste encore des scripts à exécuter en root !
  90. ~~~
  91. # bash /opt/oracle/app/oraInventory/orainstRoot.sh
  92. # bash /opt/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
  93. ~~~
  94. Et voilà !
  95. 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 ».
  96. Rajouter cette ligne dans le .profile de l'utilisateur oracle :
  97. ~~~
  98. ORACLE_HOME=/opt/oracle/app/oracle/product/11.2.0/dbhome_1
  99. ORACLE_HOME_LISTNER=$ORACLE_HOME
  100. export ORACLE_HOME
  101. export ORACLE_HOME_LISTNER
  102. PATH=/usr/sbin:/opt/oracle/app/oracle/product/11.2.0/dbhome_1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R
  103. 6/bin; export PATH
  104. export ORACLE_UNQNAME=oracle
  105. export ORACLE_SID=oracle
  106. ~~~
  107. ## Gestion
  108. Lancement de ??? :
  109. ~~~
  110. sudo -u oracle lsnrctl start
  111. ~~~
  112. Lancement du serveur d'application et de l'interface web :
  113. ~~~
  114. sudo -u oracle emctl start dbconsole
  115. ~~~
  116. Note : N'est plus dispo en Oracle 12. C'est EM Express à la placé, lancé par défaut sur le port 5500. <https://localhost:5500/em/login>
  117. Lancement du SGBD :
  118. ~~~
  119. sudo -u oracle dbstart
  120. ~~~
  121. ## Erreurs bizarre
  122. ~~~
  123. sqlplus "/ as sysdba"
  124. SQL*Plus: Release 11.2.0.1.0 Production on Mon Oct 15 18:01:54 2012
  125. Copyright (c) 1982, 2009, Oracle. All rights reserved.
  126. ERROR:
  127. ORA-01031: insufficient privileges
  128. ~~~
  129. Assurez-vous d'avoir
  130. ~~~
  131. #define SS_DBA_GRP "dba"
  132. #define SS_OPER_GRP "dba
  133. ~~~
  134. dans le fichier $ORACLE_HOME/rdbms/lib/config.c et « relinkez » le binnaire oracle.
  135. `$ORACLE_HOME/bin/relink all`
  136. ### dbstart ne démarre pas la DB
  137. Essayez
  138. ~~~
  139. sqlplus "/ as sysdba"
  140. alter system register;
  141. startup;
  142. ~~~
  143. Vérifiez aussi que db_name soit bien mis dans $ORACLE_HOME/dbs/init.ora
  144. ### Mot de passe perdu ?
  145. <http://rolfje.wordpress.com/2007/01/16/lost-oracle-sys-and-system-password/>
  146. ## Sources
  147. <http://wiki.debian.org/DataBase/Oracle>
  148. <http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-un-serveur-oracle-sur-debian-5-0-lenny>
  149. <http://www.debian-administration.org/articles/656>
  150. # Howto Oracle Database 12R2 sous Docker
  151. ## Avant propos
  152. 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.
  153. ## Installer Docker
  154. Avant de commencer nous allons avoir besoin de l'ensemble des outils docker sur la machine.
  155. Vous pouvez vous référer à notre [HowtoDocker](https://wiki.evolix.org/HowtoDocker)
  156. ## Pré-requis
  157. Récupérer le dépot Oracle docker-images sur Github :
  158. ~~~
  159. wget https://github.com/oracle/docker-images/archive/master.zip
  160. ~~~
  161. ## Télécharger Oracle DB
  162. Télécharger la version 12R2 via le site d'Oracle : [http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html]()
  163. ## Installation
  164. Décomprésser le dépot Oracle :
  165. ~~~
  166. # unzip master.zip
  167. ~~~
  168. 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 :
  169. ~~~
  170. # mv linuxx64_12201_database.zip docker-images-master/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/
  171. ~~~
  172. Lancer l'installation :
  173. ~~~
  174. # ./buildDockerImage.sh
  175. Usage: buildDockerImage.sh -v [version] [-e | -s | -x] [-i] [-o] [Docker build option]
  176. Builds a Docker Image for Oracle Database.
  177. Parameters:
  178. -v: version to build
  179. Choose one of: 11.2.0.2 12.1.0.2 12.2.0.1
  180. -e: creates image based on 'Enterprise Edition'
  181. -s: creates image based on 'Standard Edition 2'
  182. -x: creates image based on 'Express Edition'
  183. -i: ignores the MD5 checksums
  184. -o: passes on Docker build option
  185. * select one edition only: -e, -s, or -x
  186. LICENSE UPL 1.0
  187. Copyright (c) 2014-2017 Oracle and/or its affiliates. All rights reserved.
  188. # ./buildDockerImage.sh -v 12.2.0.1 -e
  189. ~~~
  190. Une fois l'installation terminée, on peut lancer notre image docker :
  191. ~~~
  192. # docker run --name oracle -p 1521:1521 -p 5500:5500 -v /path-to-your-persistent-oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee
  193. ~~~
  194. --name oracle → On donne le nom de notre choix
  195. -p 1521:1521 → On redirige le port 1521 local vers le port 1521 du conteneur
  196. -p 5500:5500 → On redirige le port 5500 local vers le port 5500 du conteneur
  197. -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