You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RHES 7.7下使用ora2pg迁移Oracle数据报错Can't locate DBD/Pg.pm

解决ora2pg导出数据到平面文件时的DBD::Pg缺失问题

1. 修正命令参数(优先方案)

你当前命令中指定的--pg_dsn参数是用于直接将数据导入PostgreSQL数据库的场景,但实际需求是导出到本地平面文件(通过> data/data.csv重定向)。ora2pg导出到平面文件仅需连接Oracle读取数据,完全不需要依赖PostgreSQL驱动,因此可以直接去掉该参数,修改后的命令:

ora2pg -c config/ora2pg.conf -t COPY > data/data.csv

执行此命令后,不会再触发DBD::Pg的依赖检查,即可正常导出数据到平面文件。

2. 若确实需要安装perl-DBD-Pg(如后续需直接导入PG)

如果之后需要直接将数据导入PostgreSQL,必须安装perl-DBD-Pg,解决yum无可用包的方法如下:

  • 启用RHEL官方可选频道:RHEL7的perl-DBD-Pg包存在于官方可选频道中,执行以下命令启用并安装:
    subscription-manager repos --enable rhel-7-server-optional-rpms
    yum install perl-DBD-Pg
    
  • 使用EPEL源:若未订阅RHEL官方源,可先安装EPEL源,再执行安装命令:
    # 先安装EPEL源发布包(若本地yum无此包,需手动获取对应RHEL7的rpm文件安装)
    yum install epel-release
    yum install perl-DBD-Pg
    
  • 源码编译安装:如果以上方法均不可行,可手动编译安装DBD::Pg:
    1. 先安装编译依赖:
      yum install perl-DBI postgresql-devel gcc make
      
    2. 通过CPAN安装:
      cpan DBD::Pg
      
      或手动编译源码:
      # 从CPAN下载DBD::Pg源码包并解压后执行
      perl Makefile.PL
      make
      make test
      make install
      

补充说明

ora2pg导出schema功能正常,说明Oracle相关的Perl驱动(DBD::Oracle)已正确配置,问题仅出在PostgreSQL驱动的不必要依赖上。若仅需导出到平面文件,优先采用修正命令参数的方案即可快速解决问题。

内容的提问来源于stack exchange,提问作者Mich Talebzadeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 19:55:15