Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Comience con Oracle en contenedores

Comience con Oracle en contenedores

Los contenedores de Linux son soluciones rápidas, eficientes y portátiles que son bien conocidas por ejecutar aplicaciones y servicios. Estos beneficios se aplican igualmente a las bases de datos Oracle, sin embargo, siguen siendo poco comprendidos en la comunidad de bases de datos debido a conceptos erróneos que llevan a los administradores de bases de datos a pasarlos por alto. Incluso la explicación común, que describe los contenedores como máquinas virtuales "ligeras", sugiere que son menos capaces que las tecnologías heredadas. ¡Ese no es el caso! De hecho, los contenedores son iguales o superiores a los hosts físicos y virtuales.

Vaya de "cero a héroe" y aprenda lo fácil que es ejecutar bases de datos de Oracle en contenedores, utilizando casi cualquier hardware (incluso computadoras portátiles) para crear entornos para pruebas de rendimiento, perfeccionar procedimientos de recuperación ante desastres, prepararse para certificaciones, evaluar nuevas funciones y más. Los participantes aprenderán a crear y ejecutar bases de datos de Oracle en contenedores y obtendrán información valiosa sobre cómo funcionan los contenedores e interactúan con los sistemas host.

Sean Scott

August 05, 2024
Tweet

More Decks by Sean Scott

Other Decks in Technology

Transcript

  1. LAOUC Community Tour 2024 2 a 23 de Agosto 2024

    Comience con Oracle en contenedores
  2. Database Reliability Engineering MAA ⁘ RAC ⁘ RMAN Data Guard

    ⁘ Sharding ⁘ Partitioning Information Lifecycle Management Exadata & Engineered Systems Database Modernization Upgrades ⁘ Patching ⁘ Migrations Cloud ⁘ Hybrid Automation DevOps ⁘ IaC ⁘ Containers ⁘ Terraform Vagrant ⁘ Ansible Observability AHF ⁘ TFA ⁘ CHA ⁘ CHM
  3. www.viscosityna.com @ViscosityNA Oracle on Docker Running Oracle Databases in Linux

    Containers Free sample chapter: https://oraclesean.com
  4. km mi Mexico 3,584 2,227 Guatemala 1,056 656 Costa Rica

    854 531 Panama 1,813 1,127 Chile 4,985 3,098 Brazil 2,617 1,626 Uruguay 1,567 974 Argentina 221 137 Paraguay 1,037 644 Home 9,753 6,061 ------ ------ 27,487 17,081 ¡Me gustan los aviones! ¡Me gustas tú! ¡Me gusta viajar! ¡Me gustas tú! ~ Manu Chao
  5. www.viscosityna.com @ViscosityNA Los contenedores que creo en mi máquina funcionan

    en: Docker, Podman, Kubernetes Rancher, LXD, containerd...
  6. @ViscosityNA www.viscosityna.com www.viscosityna.com @ViscosityNA Oracle x 13 en un portátil

    2018 MacBook Pro 15", 2.2GHz 6-core Intel Core i7, 16GB, 1TB SSD
  7. www.viscosityna.com @ViscosityNA docker pull container-registry.oracle.com/database/free:23.4.0.0 # docker pull container-registry.oracle.com/database/free:23.4.0.0 23.4.0.0:

    Pulling from database/free 6d6e36f7c9fb: Pull complete 21def9023b6f: Pull complete 5e7b2cfeb7fa: Pull complete b4a24759beff: Pull complete 78bba54e9814: Pull complete 716b489ad5ad: Pull complete c23fd8c6cbee: Pull complete 79dea26b3a5a: Pull complete 5dfbcf799df3: Pull complete 154719a62576: Pull complete Digest: sha256:83edd0756fda0e5faecc0fdf047814f0177d4224d7bf037e4900123ee3e08718 Status: Downloaded newer image for container-registry.oracle.com/database/free:23.4.0.0 container-registry.oracle.com/database/free:23.4.0.0
  8. www.viscosityna.com @ViscosityNA docker images # docker images REPOSITORY TAG IMAGE

    ID CREATED SIZE container-registry.oracle.com/database/free 23.4.0.0 7510f8869b04 3 months ago 8.7GB container-registry.oracle.com/database/enterprise 19.19.0.0 979416fa8cea 12 months ago 6.21GB
  9. www.viscosityna.com @ViscosityNA Crear un directorio de base de datos #

    Crear un directorio de la base de datos base: ORADATA=~/oradata mkdir -p ${ORADATA}
  10. www.viscosityna.com @ViscosityNA Crear un directorio de scripts # Crear un

    directorio de la scripts: mkdir -p ${ORADATA}/scripts
  11. www.viscosityna.com @ViscosityNA Establecer variables # Dale un nombre al contenedor:

    CONTAINER_NAME=ORCL # Configure el SID de la base de datos y el nombre de PDB # (no es necesario para 23ai): ORACLE_SID=ORCL ORACLE_PDB=ORCLPDB
  12. www.viscosityna.com @ViscosityNA Crear directorios por archivos # Cree directorios para

    auditoría, datos y diagnósticos: for dir in admin data diag do mkdir -p ${ORADATA}/${CONTAINER_NAME}/${dir} # Limpiar archivos existentes: rm -fr ${ORADATA}/${CONTAINER_NAME}/${dir}/* done
  13. www.viscosityna.com @ViscosityNA Un comando útil para 23ai Free Edition docker

    rm -f ${CONTAINER_NAME} 2>/dev/null docker run -d \ --name ${CONTAINER_NAME} \ --volume ${ORADATA}/${CONTAINER_NAME}/data:/opt/oracle/oradata \ --volume ${ORADATA}/${CONTAINER_NAME}/diag:/opt/oracle/diag \ --volume ${ORADATA}/${CONTAINER_NAME}/admin:/opt/oracle/admin \ --volume ${ORADATA}/scripts:/scripts \ -p 51521:1521 \ container-registry.oracle.com/database/free:23.4.0.0 docker logs -f ${CONTAINER_NAME}
  14. www.viscosityna.com @ViscosityNA Nombre de host o la dirección IP Puerto

    mapeado ORACLE_SID localhost 51521 o193 Conéctese a Docker desde SQL Developer
  15. www.viscosityna.com @ViscosityNA ├── ORCLCDB │ ├── ORCLPDB1 │ │ ├──

    … │ ├── control01.ctl │ ├── pdbseed │ │ ├── … │ ├── redo01.log │ ├── redo02.log │ ├── redo03.log │ ├── sysaux01.dbf │ ├── system01.dbf │ ├── temp01.dbf │ ├── undotbs01.dbf │ └── users01.dbf └── dbconfig └── ORCLCDB ├── listener.ora ├── orapwORCLCDB ├── oratab ├── spfileORCLCDB.ora ├── sqlnet.ora └── tnsnames.ora
  16. www.viscosityna.com @ViscosityNA ├── ORCLCDB │ ├── ORCLPDB1 │ │ ├──

    … │ ├── control01.ctl │ ├── pdbseed │ │ ├── … │ ├── redo01.log │ ├── redo02.log │ ├── redo03.log │ ├── sysaux01.dbf │ ├── system01.dbf │ ├── temp01.dbf │ ├── undotbs01.dbf │ └── users01.dbf └── dbconfig └── ORCLCDB ├── listener.ora ├── orapwORCLCDB ├── oratab ├── spfileORCLCDB.ora ├── sqlnet.ora └── tnsnames.ora
  17. www.viscosityna.com @ViscosityNA Toda la base de datos se guarda en

    el directorio oradata: ¿Por que significa? •Archivos de datos •Archivios de temp •Registros de redo •Registros de archivar •Con fi guraciones TNS •Carteras •/etc/oratab •p fi le/sp fi le
  18. www.viscosityna.com @ViscosityNA Toda la base de datos se guarda en

    el directorio oradata: ¿Por que significa? •Archivos de datos •Archivios de temp •Registros de redo •Registros de archivar •Con fi guraciones TNS •Carteras •/etc/oratab •p fi le/sp fi le Podemos esos archivos en un directorio local: ${ORADATA}/${CONTAINER_NAME}/data
  19. www.viscosityna.com @ViscosityNA Copie los datos antiguos del origen al destino

    cp -rpT ${ORADATA}/${OLD_CONTAINER}/data \ ${ORADATA}/${NEW_CONTAINER}/data
  20. www.viscosityna.com @ViscosityNA ¡Base de datos instantánea! # Crear los nombres

    de origen/nuevo contenedor: OLD_CONTAINER=${CONTAINER_NAME} NEW_CONTAINER=CLONE # Crear nuevo directorios para auditoría y diagnósticos: for dir in admin data diag do mkdir -p ${ORADATA}/${NEW_CONTAINER}/${dir} done cp -rpT ${ORADATA}/${OLD_CONTAINER}/data \ ${ORADATA}/${NEW_CONTAINER}/data
  21. www.viscosityna.com @ViscosityNA ¡Base de datos instantánea! docker run -d \

    --name ${NEW_CONTAINER} \ --volume ${ORADATA}/${NEW_CONTAINER}/data:/opt/oracle/oradata \ --volume ${ORADATA}/${NEW_CONTAINER}/diag:/opt/oracle/diag \ --volume ${ORADATA}/${NEW_CONTAINER}/admin:/opt/oracle/admin \ --volume ${ORADATA}/scripts:/scripts \ -p 51522:1521 \ container-registry.oracle.com/database/free:23.4.0.0 docker logs -f ${NEW_CONTAINER}
  22. www.viscosityna.com @ViscosityNA Recursos Descargar Docker Desktop: •https://www.docker.com/products/docker-desktop/ Registro de contenedores

    de Oracle: •https://container-registry.oracle.com Repositorio de Oracle Docker: •https://github.com/oracle/docker-images Mi repositorio de bases de datos Oracle nativo en la nube: •https://github.com/oraclesean/cloud-native-oracle