All Projects → bofm → Docker Oracle12c

bofm / Docker Oracle12c

Licence: mit
Docker image for Oracle Database 12c

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Docker Oracle12c

Oracle Db Examples
Examples of applications and tool usage for Oracle Database
Stars: ✭ 843 (+1238.1%)
Mutual labels:  oracle, database, oracle-database
Dockerfiles
Just some Dockerfiles I'm playing around with.
Stars: ✭ 88 (+39.68%)
Mutual labels:  oracle, database, oracle-database
oracdc
Oracle database CDC (Change Data Capture)
Stars: ✭ 51 (-19.05%)
Mutual labels:  oracle, oracle-database
Docker Oracle Xe
Docker build for Oracle Database Express Edition (XE)
Stars: ✭ 266 (+322.22%)
Mutual labels:  oracle, oracle-database
Tpt Oracle
Tanel Poder's Troubleshooting & Performance Tools for Oracle Databases
Stars: ✭ 429 (+580.95%)
Mutual labels:  oracle, database
okcli
An Oracle-DB command line client
Stars: ✭ 47 (-25.4%)
Mutual labels:  oracle, oracle-database
docker-apex-stack
Utility scripts for creating an Oracle Application Express stack as a Docker container.
Stars: ✭ 67 (+6.35%)
Mutual labels:  oracle, oracle-database
Utplsql
Testing Framework for PL/SQL
Stars: ✭ 402 (+538.1%)
Mutual labels:  oracle, oracle-database
Ocilib
OCILIB (C and C++ Drivers for Oracle) - Open source C and C++ library for accessing Oracle databases
Stars: ✭ 245 (+288.89%)
Mutual labels:  oracle, oracle-database
Docker Images
Official source for Docker configurations, images, and examples of Dockerfiles for Oracle products and projects
Stars: ✭ 5,120 (+8026.98%)
Mutual labels:  oracle, oracle-database
Jooq
jOOQ is the best way to write SQL in Java
Stars: ✭ 4,695 (+7352.38%)
Mutual labels:  oracle, database
Typeorm
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
Stars: ✭ 26,559 (+42057.14%)
Mutual labels:  oracle, database
oracle-jdbc-tester
A simple command line Java application to test JDBC connection to Oracle database
Stars: ✭ 37 (-41.27%)
Mutual labels:  oracle, oracle-database
ercole-agent
Proactive Software Asset Management. Agent component
Stars: ✭ 24 (-61.9%)
Mutual labels:  oracle, oracle-database
Capgemini-ADAPT-2020
All Solutions for Capgemini 2020-2021 ADAPT Program, use it for your reference after you have tried the problems by yourself THANK YOU!
Stars: ✭ 37 (-41.27%)
Mutual labels:  oracle, oracle-database
Oracle.jl
Oracle Database driver for the Julia language.
Stars: ✭ 32 (-49.21%)
Mutual labels:  oracle, oracle-database
Dbeaver
Free universal database tool and SQL client
Stars: ✭ 23,752 (+37601.59%)
Mutual labels:  oracle, database
Liquibase
Main Liquibase Source
Stars: ✭ 2,910 (+4519.05%)
Mutual labels:  oracle, database
Sqlfiddle3
New version based on vert.x and docker
Stars: ✭ 242 (+284.13%)
Mutual labels:  oracle, database
Symmetric Ds
SymmetricDS is a database and file synchronization solution that is platform-independent, web-enabled, and database agnostic. SymmetricDS was built to make data replication across two to tens of thousands of databases and file systems fast, easy and resilient. We specialize in near real time, bi-directional data replication across large node networks over the WAN or LAN.
Stars: ✭ 450 (+614.29%)
Mutual labels:  oracle, database

Goals

  • Provide an easy way to build a lightweight Docker image for Oracle Database.
  • Just run a database and skip the complexities of installation and configuration.

Features

  • docker run creates and starts up a new database or the existing database, if it is already created.
  • docker logs shows all the logs prefixed with log source (in the style of syslog).
  • Uses trap to handle signals and shutdown gracefully.
  • Data and logs are stored in /data so that -v /data could be used.
  • Total memory used by Oracle instance (MEMORY_TARGET) is set depending on --shm-size parameter.
  • rlwrap can be installed by running bash /tmp/install/install_rlwrap.sh (+ 50 MB on disk).

Build

Optional: if you are using Vagrant, you can use this Vagrantfile for your build environment.

  1. download linuxamd64_12102_database_1of2.zip and linuxamd64_12102_database_2of2.zip from oracle.com and extract the archives to current directory.
  2. Execute the following lines in bash and wait ~15 minutes:
git clone https://github.com/bofm/docker-oracle12c.git
cd docker-oracle12c
make all

Usage

Note: In the following examples oracle_database is the name of the container.

  • Create or run database and listener

    • Daemon mode

      # Create and start
      docker run -d --shm-size 1GB --name oracle_database -p 1521:1521 -v /data bofm/oracle12c
      # Stop
      docker stop -t 120 oracle_database
      # Start again
      docker start oracle_database
      

      Important: Always stop with -t, otherwise Docker will kill the database instance, if it doesn't shut down in 10 seconds.

    • Foreground mode

      # Start
      docker run -it --shm-size 1GB --name oracle_database -p 1521:1521 -v /data bofm/oracle12c
      # `ctrl+c` (SIGINT) to stop
      
  • Create a gzipped tar archive suitable for docker load (an archive of the image with a created database and without volumes)

    It is recommended to use large (>=20GB, the default is 10GB) Docker base volume size, for which Vagrant with Vagrantfile can be used.

    # Build everything and save the created image to a file.
    #   This will echo something like this:
    #     Image saved to: /some/path/docker_img_oracle_database_created_YYYY-MM-DD.tgz
    make all docker-save
    
    # The saved image can be loaded from the file
    # The image will be loaded with tag bofm/oracle12c:created
    docker load < docker_img_oracle_database_created_YYYY-MM-DD.tgz
    
    # Run the image in the new container
    # Daemon
    docker run -d --shm-size 1GB --name oracle_database -p 1521:1521 bofm/oracle12c:created
    # Foreground
    docker run -it --shm-size 1GB --name oracle_database -p 1521:1521 bofm/oracle12c:created
    
  • Logs

    # Check all the logs in one place
    docker logs oracle_database
    
    # Check alert log
    docker logs oracle_database | grep alertlog:
    
    # Check listener log
    docker logs oracle_database | grep listener:
    
  • SQL*Plus, RMAN or any other program

    # Bash
    # as root
    docker exec -it -u root oracle_database bash
    # as oracle
    docker exec -it oracle_database bash
    
    # Run sqlplus in the running container
    docker exec -it oracle_database sqlplus / as sysdba
    
    # Run rman in the running container
    docker exec -it oracle_database rman target /
    
    # Run sqlplus in a separate container and
    # connect to the database in the linked container
    docker run -it --rm --link oracle_database:oradb bofm/oracle12c sqlplus sys/[email protected]/ORCL as sysdba
    
  • Start listener only (not sure if anybody needs it :) )

    docker run -d --name listener -p 1521:1521 bofm/oracle12c listener
    # Or link it to the running container
    docker run -d --name listener -p 1521:1521 --link <database_container> bofm/oracle12c listener
    

Compatibility

  • Tested on Docker 1.12

Limitations and Bugs

  • --shm-size option is required to mount /dev/shm to use Oracle's automatic memory management.
  • Oracle Database doesn't work with Docker ZFS storage driver by default. Check this issue for the workaround.
  • Database options and sample schemas installation through DBCA is a mystery. In this repo dbca is run with -sampleSchema true and db_template.dbt contains this line <option name="SAMPLE_SCHEMA" value="true"/>, but nothing happens, the database is always created without sample schemas. Well, that's Oracle Database after 30+ years of development.

License

TODO

  • create new databases faster
  • use spfile?
  • EM DBconsole
  • Archivelog mode option?
  • syslog-ng or rsyslog, maybe?
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].