lunes, 13 de abril de 2020

Oracle 19 - docker

Os dejo la forma de crear una BDD Oracle 19.3.0 en local con docker.
Lo primero es descargarse de github todos los ficheros necesarios:


A continuación nos descargamos el zip con el binario de la versión que queramos, en nuestro caso la 19.3.0 Una vez descargado (alrededor de 3Gb) movemos el zip a la carpeta dockerfiles/versión (en nuestro caso a dockerfiles/19.3.0).

Nos movemos a la carpeta "dockerfiles" y lanzamos (en W10 habiendo habilitado WSL hacedlo con un debian o ubuntu - la carpeta /mnt mapea vuestro W10, pudiendo acceder a la unidad C:)

  • ./buildDockerImage.sh -e -i -v 19.3.0

Es posible que debamos pasarle el dos2unix de forma recursiva desde la carpeta actual.
Esperamos a que acabe, tras lo cual tendremos la imagen generada "oracle/database:19.3.0-ee".
Por último, creamos un "docker-compose.yml" para facilitar el run de la imagen


version: '3.5'
services:
  oracle19:
    container_name: oracle19
    image: oracle/database:19.3.0-ee
    ports:
      - "1521:1521"
      - "5500:5500"
    environment:
      ORACLE_SID: docker19sid
      ORACLE_PDB: docker19pdb
      ORACLE_PWD: dockerpass
      ORACLE_CHARACTERSET: AL32UTF8
    volumes:
      - oracle19_data:/opt/oracle/oradata

volumes:
  oracle19_data:
    driver: local


Ya sólo quedará lanzar el comando "docker-compose up -d" desde la ubicación del yaml anterior. El primer lanzamiento tarda un poco, paciencia. Si véis que le cuesta mucho o véis en el log del contenedor warnings por escasez de memoria, aumentar a 6 Gb la memoria asignada a Docker (en W10 acceded al dasboard, opción Resources)

Como consejo, si creáis un Tablespace, hacedlo indicando la ruta del datafile explicitamente, y dentro del directorio persistido vía volumen. Si no indicáis ruta lo crea en una por defecto que cae fuera de dicho volumen (¿?). En el siguiente run de la imagen obtendréis un catastrófico error al no encontrar dicho datafile no pudiendo arrancar la instancia.

Por ejemplo:

  • CREATE TABLESPACE T_MYTABLESPACE DATAFILE '/opt/oracle/oradata/datafiles/T_MYTABLESPACE.dbf' SIZE 1000M AUTOEXTEND ON ONLINE;
  • CREATE USER MYUSER IDENTIFIED BY "MYUSER" DEFAULT TABLESPACE T_MYTABLESPACE TEMPORARY TABLESPACE temp;
  • GRANT ALL PRIVILEGES TO "MYUSER";

Y listos!!!

No hay comentarios:

Publicar un comentario