AlloyDB Omni용 Orafce 설치

AlloyDB Omni에는 Oracle 확장 프로그램이 포함되어 있지 않지만 이 페이지의 안내에 따라 기존 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. Oracle 확장 프로그램을 사용하여 데이터베이스에 연결합니다.
    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)