Install orafce for AlloyDB Omni

Select a documentation version:

This page describes how to manually add the orafce extension to an existing AlloyDB Omni installation. The orafce extension provides functions and operators that emulate a subset of functions and packages from the Oracle database. This extension simplifies migration of applications from Oracle to PostgreSQL-compatible databases such as AlloyDB Omni.

Before you begin

Install AlloyDB Omni on your system.

Add orafce to your AlloyDB Omni installation

To add the orafce extension to your AlloyDB Omni installation, follow these steps:

  1. Find your installed AlloyDB Omni version labels:

    Docker

    docker run --rm -it  google/alloydbomni cat VERSION.txt
    

    Podman

    podman run --rm -it  google/alloydbomni cat VERSION.txt
    

    The output is similar to the following:

    AlloyDB Omni version: 16.8.0
    

    Take note of the AlloyDB Omni version number because you need it in the next step.

  2. Create a new AlloyDB Omni container that includes orafce:

    Linux

    $ mkdir ~/alloydb-omni-orafce
    
    $ tee -a ~/alloydb-omni-orafce/Dockerfile << EOF
    ARG OMNI_VERSION
    FROM google/alloydbomni:${OMNI_VERSION}
    RUN apt-get update && \
          apt-get install -y --no-install-recommends postgresql-16-orafce && \
          apt-get purge -y --auto-remove && \
          rm -rf /var/lib/apt/lists/*
    EOF
    
    $ cd ~/alloydb-omni-orafce
    
    $ sudo docker build --build-arg OMNI_VERSION=OMNI_VERSION --tag google/alloydbomni-with-orafce:OMNI_VERSION .
    

    MacOS

    $ mkdir ~/alloydb-omni-orafce
    
    $ tee -a ~/alloydb-omni-orafce/Dockerfile << EOF
    ARG OMNI_VERSION
    FROM google/alloydbomni:OMNI_VERSION
    RUN apt-get update && \
          apt-get install -y --no-install-recommends postgresql-16-orafce && \
          apt-get purge -y --auto-remove && \
          rm -rf /var/lib/apt/lists/*
    EOF
    
    $ cd ~/alloydb-omni-orafce
    
    $ sudo docker build --build-arg OMNI_VERSION=OMNI_VERSION --tag google/alloydbomni-with-orafce:OMNI_VERSION .
    

  3. Create a new container with AlloyDB Omni named my-omni-orafce:

    docker build -t google/alloydbomni-with-orafce:latest
    docker run --name my-omni-orafce  -e POSTGRES_PASSWORD=NEW_PASSWORD  -d google/alloydbomni-with-orafce:OMNI_VERSION
    
  4. Connect to your database with the orafce extension:

    docker exec -it my-omni-orafce psql -h localhost -U postgres
    
  5. Enable orafce:

    CREATE EXTENSION IF NOT EXISTS ORAFCE;
    
  6. Confirm that orafce is installed and enabled:

    SELECT oracle.sysdate();
    

    The output is similar to the following:

    postgres=# SELECT oracle.sysdate();
    sysdate
    ---------------------
    2024-06-10 16:36:30
    (1 row)