Overview

By using Oracle you can benefit from features in Oracle infrastructure such as backup and restore.

For Artifactory to run with Oracle you must create a dedicated Oracle database instance and then configure Artifactory to use it as described in the following sections.

Before proceeding with the steps below, please make sure you have read and followed the steps described in Configuring the Database.

To avoid a regression of performance while upgrading the Oracle database (as a result of changes in the execution plans), make sure to preserve the optimizer's behavior from the previous version. For more details, please refer to Oracle documentation on.



Creating the Artifactory Oracle Database

Artifactory supports Oracle versions 12.2, 18, and 19.

You can choose between two configurations to set up your Oracle Database

  1. DB-Filesystem
    This configuration stores metadata in Oracle Database and artifact binary data is stored on the file system (under $JFROG_HOME/artifactory/var/data/artifactory/filestore). This option has the advantage of being very lightweight on the Oracle database.

  2. Full DB
    This configuration stores both metadata and BLOBs in Oracle Database. This option requires minimal maintenance and allows you to rely solely on Oracle for failover and backup procedures, since all data is in the database.
    When using this option, make sure you have created a table space big enough to accommodate your binaries.

Artifactory creates all tables automatically first time it is run. When performing a software upgrade Artifactory may have to alter tables and indices, so make sure you grant the configured connection the appropriate user permissions to perform such actions.

With both of the above options (Full DB and DB-Filesystem), it is recommended to create a dedicated table space and use AL32UTF8 encoding.

For efficiency, Artifactory uses a checksum to ensure that only one copy of any binary data is stored, however, you may want to reclaim deleted BLOB space from time to time by shrinking the BLOB table space as follows:

{schema}.binary_blobs modify lob (data) (shrink space cascade);



Configuring Artifactory to use Oracle

  1. Download and install the libaio Library.

    #For example, on Ubuntu:
    apt-get install libaio1
    #For example, on Redhat: 
    rpm install libaio


  2. Copy the libaio directory to the Artifactory tomcat lib directory, for example:

    cp -rp /usr/lib64/libaio.so $JFROG_HOME/artifactory/var/bootstrap/artifactory/tomcat/lib
  3. Download the Oracle Instant Client lib.
  4. Extract the Oracle Instant Client and copy the ojdbc.jar to the $JFROG_HOME/artifactory/var/bootstrap/artifactory/tomcat/lib directory.


    Make sure your driver has the same permissions as the rest of the files in the $JFROG_HOME/artifactory/var directory.

  5. Set the LD_LIBRARY_PATH, in the Artifactory System YAML, to point to the extracted Oracle Instant Client directory. 

    shared:  
      env:
        LD_LIBRARY_PATH: <path Oracle Instant Client directory, for ex: /usr/lib64>


  6. Set the DB connection details in the Artifactory System YAML .

    shared:
      database:
        type: oracle
        driver: oracle.jdbc.OracleDriver
        url: jdbc:oracle:thin:@<your db server url, for example: localhost:1521>:ORCL
        username: artifactory
        password: password
    
    
  7. Start Artifactory.