Giter VIP home page Giter VIP logo

docker-oracle-xe18c's Introduction

Oracle18c-XE para OracleLinux7 en Docker

Tabla de Contenido

I. Objetivo

Montar una Base de Datos Oracle18c XE en un Contenedor Oracle-Linux7

II. Requisitos

  1. Tener instalado Linux Centos7 en una máquina virtual.
  2. Tener instalado Docker-CE en la MV Linux Centos7.
  3. Tener instalado Git.
    $ su -
    $ yum install git
    
  4. Haber descargado el archivo de instalación en format RPM oracle-database-xe-18c-1.0-1.x86_64.rpm.
  5. Espacio de almacenamiento requerido
    • 5.1- Al menos 15GB (Oracle recomienda 7680 MB) de espacio libre en /opt ; esta carpeta se ubica en el root folder / en la instalación por defecto de Linux Centos7.
    • 5.2- Un Virtaul Disk de 20GB en el punto de montaje /docker ; montarlo después de haber instalado Linux Centos7 para evitar confusión.
  6. RAM de la Máquina Virtual Linux Centos7 con 4GB.

III. Consideraciones y Pre-Configuración

  1. Tu máquina virtual Linux Centos7 es considerada la máquina host para efectos de esta guía.
  2. Tu usuario Linux Centos 7 es el que se utiliza por defecto en esta guía a menos que se indique lo contrario.
  3. Desactiva el firewall en Linux Centos 7.
    $ systemctl stop firewalld
    $ systemctl disable firewalld
    
  4. Cambiar permisos a la carpeta /docker
    $ su -
    $ chmod 777 /docker
    
  5. Crea las siguientes carpetas dentro de /docker
    $ cd /docker
    $ mkdir oracle_product
    $ mkdir ./oracle_product/18cxe
    $ mkdir ./oracle_product/18cxe/oradata
    
  6. La carpeta de trabajo por defecto es /docker/oracle_product para efectos de esta guía.

IV. Procedimiento

  1. Decargas

    • 1.1. Descargar de github este proyecto. Este va a crear una carpeta docker-oracle-xe18c
          $ cd /docker/oracle_product
          $ git clone https://github.com/jmedinaJBM/docker-oracle-xe18c.git
    
    • 2.2. Descargar imagen base de Oracle-Linux7
          $ docker pull oraclelinux:7.6
    
  2. Crear imagen oracledb/base-linux7:18cXE con la Imagen base oraclelinux:7.6

    • 2.1. Crear el Dockerfile a partir del archivo Dockerfile-1.txt
          $ cd /docker/oracle_product
          $ cp ./docker-oracle-xe18c/Dockerfile-1.txt ./Dockerfile
    
    • 2.2. Construir la imagen oracledb/base-linux7:18cXE
          $ su -
          $ docker build --tag oracledb/base-linux7:18cXE ./
    
  3. Crear el contenedor oracledb-base a partir de la imagen creada antes oracledb/base-linux7:18cXE

    $ docker run --name=oracledb-base -v /docker/oracle_product:/oracle_product -v /docker/oracle_product/18cxe/oradata:/opt/oracle/oradata -it -d oracledb/base-linux7:18cXE /bin/bash
    
  4. Copiar el archivo RPM (oracle-database-xe-18c-1.0-1.x86_64.rpm) en la carpeta del host /docker/oracle_product

  5. Instalación del Software

    • 5.1. Entrar al contenedor oracledb-base
          $ docker exec -it oracledb-base /bin/bash
    
    • 5.2. Comprueba variables de Ambiente y verifica la respuesta contra el archivo Dockerfile-1.txt
          $ echo ${ORACLE_DOCKER_INSTALL}
          $ echo ${ORACLE_HOME}
          $ echo ${ORACLE_BASE}
    
    • 5.3. Cambiarse a la carpeta oracle_product
          $ cd /oracle_product
    
    • 5.4. Ejecutar Instalación
      • 5.4.1. Insttalar oracle-database-preinstall-18c
      $ yum install -y oracle-database-preinstall-18c
             failed to link /usr/share/man/man1/ksh.1.gz -> /etc/alternatives/ksh-man: No such file or directory
             Complete! 
      
      • 5.4.2. Cambiar permisos a la carpeta opt/oracle
      $ chown oracle:oinstall /opt/oracle
      $ chown oracle:oinstall /opt/oracle/oradata
      
      • 5.4.3. Instalar oracle-database-xe-18c-1.0-1.x86_64.rpm
       $ yum localinstall -y oracle-database-xe-18c-1.0-1.x86_64.rpm
             [INFO] Executing post installation scripts...
             [INFO] Oracle home installed successfully and ready to be configured.
                   To configure Oracle Database XE, optionally modify the parameters 
                   in '/etc/sysconfig/oracle-xe-18c.conf' and then execute '/etc/init.d/oracle-xe-18c configure' as root.
             Installed:
             oracle-database-xe-18c.x86_64 0:1.0-1 
             Dependency Installed:
             file.x86_64 0:5.11-35.el7
             Complete!
       ```
      
  6. Crear una imagen oracledb/software-linux7:18cXE a partir del contenedor oracledb-base. Esta imagen es un respaldo antes de configurar la instancia de la Base de Datos.

    $ docker stop oracledb-base
    $ docker commit -a "Jairo Medina <[email protected]>" oracledb-base oracledb/software-linux7:18cXE
    
  7. Configuración de la Instancia de Base de Datos.

    • 7.1. Iniciar el contenedor oracledb-base
          $ docker start oracledb-base
    
    • 7.2. Entrar al contenedor
          $ docker exec -it oracledb-base /bin/bash
    
    • 7.3. Ejecutar
          $ /etc/init.d/oracle-xe-18c configure
          
          Configuring Oracle Listener.
          Listener configuration succeeded.
          Configuring Oracle Database XE.
          
          100% complete
          Database creation complete. For details check the logfiles at:
          /opt/oracle/cfgtoollogs/dbca/XE.
          Database Information:
          Global Database Name:XE
          System Identifier(SID):XE
          Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.
          
          Connect to Oracle Database using one of the connect strings:
          Pluggable database: 1219a23a0c49/XEPDB1
          Multitenant container database: 1219a23a0c49
          Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
    
    • 7.4. Tareas de Post-Instalación
      • 7.4.1. Cambiar la clave del usuario oracle del contenedor.
              $ passwd oracle
        
      • 7.4.2. Establecer la clave del usuario sys y system.
              $ docker exec -it -u oracle oracledb-base /bin/bash
              $ cd $ORACLE_HOME/bin
              $ ./sqlplus sys as sysdba
                    SQL> startup
                    SQL> ALTER USER sys IDENTIFIED BY Pa$$w0rd;
                    SQL> ALTER USER system IDENTIFIED BY Pa$$word;
      
      • 7.4.3. Activar Acceso remoto. (con la misma sesion anterior)
                    SQL> exec dbms_xdb_config.setlistenerlocalaccess(false);
                    SQL> exec dbms_xdb_config.setglobalportenabled(true);
                    SQL> exit;
      
  8. Crear imagen definitiva

    • 8.1. Iniciar el contenedor y crear la carpeta $ORACLE_BASE/scripts
          $ docker start oracledb-base
          $ docker exec -it oracledb-base /bin/bash
          $ cd $ORACLE_BASE
          $ mkdir scripts
          $ chown oracle:oinstall scripts
          $ exit
    
    • 8.2. Crear una imagen oracledb/temp-linux7:18cXE a partir del contenedor oracledb-base. Esta imagen contiene la instancia de la Base de Datos Oracle 18c XE configurada.
      • 8.2.1. Detener la instancia Oracle y el contenedor
             $ docker exec -it /oracledb-base /bin/bash
             $ /etc/init.d/oracle-xe-18c stop
             $ exit
             $ docker stop oracledb-base
      
      • 8.2.2 Crear la imagen
             $ docker commit -a "Jairo Medina <[email protected]>" oracledb-base oracledb/temp-linux7:18cXE
      
    • 8.3. Crear carpeta /docker/oracle_product/scripts
           $ mkdir /docker/oracle_product/scripts
    
    • 8.4. Copiar archivos scripts dentro /docker/oracle_product/scripts
           $ cd /docker/oracle_product
           $ cp ./docker-oracle-xe18c/scripts/* ./scripts/
    
    • 8.5. Crear el Dockerfile a partir del archivo Dockerfile-2.txt
           $ cd /docker/oracle_product
           $ cp ./docker-oracle-xe18c/Dockerfile-2.txt ./Dockerfile
    
    • 8.6. Construir la imagen definitiva oracledb/linux7:18cXE
           $ su -
           $ cd /docker/oracle_product
           $ docker build --tag oracledb/linux7:18cXE ./
    
  9. Crear contenedor oracledb-18cxe a partir de la imagen definitiva oracledb/linux7:18cXE

$ docker run --name=oracledb-18cxe -h oracle18cxe -p 5500:5500 -p 1521:1521 -v /docker/oracle_product/18cxe/oradata:/opt/oracle/oradata -d oracledb/linux7:18cXE 
  1. Tareas de Post-Creación del contenedor
    • 10.1. Configuracion del Listener Es probable que los archivos listener.ora y tnsnames.ora no tenga el nombre de host correcto.
      • 10.1.1. Conectar con el contenedor
             $ docker exec -it oracledb-18cxe /bin/bash
      
      • 10.1.2. Identificar el nombre del host
             $ /bin/hostname
      
      • 10.1.3. Revisa los archivos listener.ora y tnsnames.ora en $ORACLE_HOME/network/admin
             $ cd $ORACLE_HOME/network/admin
             $ more listener.ora
             $ more tnsnames.ora
      
      • 10.1.4. Modifica los archivos listener.ora y tnsnames.ora si el hostname no coincide.
             $ su oracle
             $ vi listener.ora
             $ vi tnsnames.ora
             $ exit
      
      • 10.1.5. Reinicia la base de datos
             $ /etc/init.d/oracle-xe-18c restart
      
      • 10.1.6. Conecta con la base de datos Entra al navegador web desde tu máquina física y accede a de forma remota https://virtual-machine:5500/em Reemplaza virtual-machine por el nombre de tu máquina virtual donde has instalado Linux Centos7. Tu base de datos ya está funcionando.

V. Referencias

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.