AlloyDB Omni용 Orafce 설치

문서 버전을 선택합니다.

이 페이지에서는 기존 AlloyDB Omni 설치에 orafce 확장 프로그램을 수동으로 추가하는 방법을 설명합니다. orafce 확장 프로그램은 Oracle 데이터베이스의 함수와 패키지의 하위 집합을 에뮬레이션하는 함수와 연산자를 제공합니다. 이 확장 프로그램은 Oracle에서 AlloyDB Omni와 같은 PostgreSQL 호환 데이터베이스로 애플리케이션을 쉽게 마이그레이션할 수 있도록 지원합니다.

시작하기 전에

시스템에 AlloyDB Omni를 설치합니다.

AlloyDB Omni 설치에 orafce 추가

AlloyDB Omni 설치에 orafce 확장 프로그램을 추가하려면 다음 단계를 수행합니다.

  1. PostgreSQL Yum 저장소를 추가합니다.

    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    
  2. PostgreSQL 서버 및 개발 패키지를 설치합니다.

    sudo dnf install -y "postgresql17-server"
    
  3. Orafce 확장 프로그램을 설치합니다.

    sudo dnf install -y orafce_17
    
  4. 확장 프로그램이 예상 경로에 있도록 필수 심볼릭 링크를 만듭니다.

    set -e
    PGVER="17"
    
    sudo mkdir -p "/usr/lib/postgresql/${PGVER}/share/extension"
    
    for file in /usr/pgsql-${PGVER}/share/extension/*; do
      target="/usr/lib/postgresql/${PGVER}/share/extension/$(basename "$file")"
      if [[ ! -e "$target" ]]; then
        sudo ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1)
        echo "Created extension link for $(basename "$file")"
      else
        echo "Target $target already exists."
      fi
    done
    
    sudo mkdir -p "/usr/lib/postgresql/${PGVER}/lib"
    
    for file in /usr/pgsql-${PGVER}/lib/*; do
        if [[ ! -e "$target" ]]; then
          sudo ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1)
          echo "Created lib link for $(basename "$file")"
        else
          echo "Target $target already exists."
        fi
    done
    
  5. orafce 확장 프로그램으로 데이터베이스에 연결합니다.

    /usr/lib/postgresql/17/bin/psql -h localhost -U postgres
    
  6. orafce를 사용 설정합니다.

    CREATE EXTENSION IF NOT EXISTS ORAFCE;
    
  7. orafce가 설치되고 사용 설정되었는지 확인합니다.

    SELECT oracle.sysdate();
    

    출력은 다음과 비슷합니다.

    postgres=# SELECT oracle.sysdate();
    sysdate
    ---------------------
    2025-12-12 16:36:30
    (1 row)