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

AlloyDB Omni には Orafce 拡張機能は含まれていませんが、このページの手順に沿って既存の AlloyDB Omni インストールに手動で追加できます。

始める前に

次のシステム要件を満たしていることを確認してください。

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

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

  1. インストールされている AlloyDB Omni バージョンのラベルを確認します。
    sudo alloydb version

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

    AlloyDB Omni CLI version: 1.0
    AlloyDB Omni database server version: 15.2.0
    

    データベース サーバーのバージョン番号をメモしておきます。これは次のステップで必要になります。

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

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

  3. Orafce を含む新しい AlloyDB Omni コンテナを作成します。
    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 gcr.io/alloydb-omni/pg-service:${OMNI_VERSION}
    
    COPY --from=postgres /usr/lib/postgresql/15/lib/orafce.so /lib/orafce.so
    COPY --from=postgres /usr/share/postgresql/15/extension/orafce* /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 gcr.io/alloydb-omni/pg-service-with-orafce:$OMNI_VERSION .
  4. データベース サーバーを停止します。
    sudo alloydb database-server stop
    
  5. テキスト エディタで /var/alloydb/config/dataplane.conf を開きます。
  6. PG_IMAGE 変数を定義する行を変更して、前の手順でビルドしたコンテナを参照するようにします。
    PG_IMAGE=gcr.io/alloydb-omni/pg-service-with-orafce
    
  7. AlloyDB Omni を起動します。
    sudo alloydb database-server start
    
  8. データベースに接続します。
    sudo docker exec -it pg-service psql -h localhost -U postgres
    
  9. Orafce を有効にします。
    CREATE EXTENSION IF NOT EXISTS ORAFCE;
  10. Orafce がインストールされ、有効になっていることを確認します。
    SELECT oracle.sysdate();