安裝 AlloyDB Omni 適用的 Orafce

選取文件版本:

AlloyDB Omni 不含 Orafce 擴充功能,但您可以按照本頁的說明,手動將其新增至現有的 AlloyDB Omni 安裝項目,藉此提供 Oracle 資料庫的其他函式和運算子。

事前準備

確認您已在系統上安裝 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. 使用 AlloyDB Omni 建立名為 my-omni-orafce 的新容器:
    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)