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();