为 AlloyDB Omni 安装 orafce

选择一个文档版本:

本页面介绍了如何将 orafce 扩展程序手动添加到现有的 AlloyDB Omni 安装中。orafce 扩展程序提供模拟 Oracle 数据库中部分函数和软件包的函数和运算符。此扩展程序可简化将应用从 Oracle 迁移到与 PostgreSQL 兼容的数据库(如 AlloyDB Omni)的过程。

准备工作

在系统上安装 AlloyDB Omni

将 orafce 添加到 AlloyDB Omni 安装

如需将 Orafce 扩展程序添加到 AlloyDB Omni 安装,请按照以下步骤操作:

  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)