AlloyDB Omni 用 Orafce をインストールする

AlloyDB Omni には Orafce 拡張機能は含まれていませんが、このページの手順に沿って Oracle データベースから追加の関数と演算子を指定することで、既存の AlloyDB Omni インストールに手動で追加できます。

始める前に

システムに AlloyDB Omni がインストールされていることを確認します。

単一サーバー

AlloyDB Omni インストールに Orafce を追加する

AlloyDB Omni インストールに Orafce 拡張機能を追加する手順は次のとおりです。

  1. インストールされている AlloyDB Omni バージョンのラベルを確認します。
    docker run --rm -it  google/alloydbomni cat VERSION.txt

    出力は次のようになります。

    AlloyDB Omni version: 15.5.3
    

    AlloyDB Omni のバージョン番号をメモします。これは次のステップで必要になります。

  2. OMNI_VERSION 環境変数を設定します。
    OMNI_VERSION=VERSION

    VERSION は、前の手順で確認したデータベース サーバーの完全なバージョンに置き換えます(例: 15.5.3)。

  3. Orafce を含む新しい AlloyDB Omni コンテナを作成します。

    Linux

      mkdir ~/alloydb-omni-orafce
      tee -a ~/alloydb-omni-orafce/Dockerfile << EOF
      ARG OMNI_VERSION
    
      FROM postgres:15-bookworm AS postgres
    
      RUN apt-get update && \
      apt-get install -y --no-install-recommends \
      postgresql-15-orafce && \
      apt-get purge -y --auto-remove && \
      rm -rf /var/lib/apt/lists/*
    
      FROM google/alloydbomni:${OMNI_VERSION}
    
      COPY --from=postgres /usr/lib/postgresql/15/lib/orafce.so /usr/lib/postgresql/15/lib/orafce.so
      COPY --from=postgres /usr/share/postgresql/15/extension/orafce* /usr/lib/postgresql/15/share/extension/
    
      COPY --from=postgres /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu/
      COPY --from=postgres /lib/x86_64-linux-gnu/ /lib/x86_64-linux-gnu/
      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 postgres:15-bookworm AS postgres
    
      RUN apt-get update && \
      apt-get install -y --no-install-recommends \
      postgresql-15-orafce && \
      apt-get purge -y --auto-remove && \
      rm -rf /var/lib/apt/lists/*
    
      FROM google/alloydbomni:${OMNI_VERSION}
    
      COPY --from=postgres /usr/lib/postgresql/15/lib/orafce.so /usr/lib/postgresql/15/lib/orafce.so
      COPY --from=postgres /usr/share/postgresql/15/extension/orafce* /usr/lib/postgresql/15/share/extension/
    
      COPY --from=postgres /usr/lib/aarch64-linux-gnu/ /usr/lib/aarch64-linux-gnu/
      COPY --from=postgres /lib/aarch64-linux-gnu/ /lib/aarch64-linux-gnu/
      EOF
      cd ~/alloydb-omni-orafce
      sudo docker build --build-arg OMNI_VERSION=$OMNI_VERSION --tag google/alloydbomni-with-orafce:$OMNI_VERSION .
      

  4. my-omni-orafce という名前の AlloyDB Omni を使用して新しいコンテナを作成します。
    docker run --name my-omni-orafce  -e POSTGRES_PASSWORD=NEW_PASSWORD  -d google/alloydbomni-with-orafce:OMNI_VERSION
  5. Orafce 拡張機能を使用してデータベースに接続します。
    docker exec -it my-omni-orafce psql -h localhost -U postgres
    
  6. Orafce を有効にします。
    CREATE EXTENSION IF NOT EXISTS ORAFCE;
  7. Orafce がインストールされ、有効になっていることを確認します。
    SELECT oracle.sysdate();
    出力は次のようになります。
    postgres=# SELECT oracle.sysdate();
         sysdate
    ---------------------
    2024-06-10 16:36:30
    (1 row)