ubuntu22.04.1 安装pg12的插件oracle_fdw,用于pg连接oracle

一、前期准备:
1.安装pg数据库(此步骤略)
2.执行如下指令,安装pg数据库需要用到的开发库,否则后期编译会报找不到 “postgres.h”文件
sudo apt-get install postgresql-server-dev-12
二、开始安装oracle_fdw插件
1.下载两个依赖包
下载地址:oracle 依赖包下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
instantclient-sdk-linux.x64-21.8.0.0.0dbru.zip
instantclient-basic-linux.x64-21.8.0.0.0dbru.zip
2.解压压缩包
$sudo unzip -d  /usr/lib/postgresql/12 instantclient-sdk-linux.x64-21.8.0.0.0dbru.zip
$sudo unzip -d  /usr/lib/postgresql/12 instantclient-basic-linux.x64-21.8.0.0.0dbru.zip
3.配置环境变量
$sudo  vim ~/.bashrc 在末尾输入
$export ORACLE_HOME=/usr/lib/postgresql/12/instantclient_21_8
$export PG_HOME=/usr/lib/postgresql/12
$export LD_LIBRARY_PATH=$PG_HOME/lib:$ORACLE_HOME:$LD_LIBRARY_PATH
$export PATH=$PG_HOME/bin:$PATH
4.环境变量生效设置
$source ~/.bashrc
5.查看环境变量设置是否存在
$  export
6.下载ORACLE_FDW插件
下载地址:https://github.com/laurenz/oracle_fdw/tags
解压文件:sudo unzip -d  /usr/lib/postgresql/12 oracle_fdw-ORACLE_FDW_2_4_0.zip
7.开始编译和安装
$/usr/lib/postgresql/12/oracle_fdw-ORACLE_FDW_2_4_0$ make && make install
(1)编译过程遇到可能遇到错误,例如/bin/sh: 1: gcc: not found
执行该语句:sudo apt install build-essential
8.在pgadmin中执行创建插件命令 create extension oracle_fdw;
出现类似问题 ERROR:  could not load library "/usr/lib/postgresql/12/lib/oracle_fdw.so": libclntsh.so.21.1: cannot
解决方法:sudo vim/etc/ld.so.conf.d/oracle-x86_64.conf ,添加完成后,执行sudo ldconfig,使之动态库链接生效。否则创建插件环节失败
9.再次在pgadmin中执行创建插件命令 create extension oracle_fdw;
提示:Connection to the server has been lost.CREATE EXTENSION 在Extensions中出现了oracle_fdw,证明成功安装了该插件

10.注意连接oracle数据库的时候可能包no listener,此时要注意listener.ora文件中host为计算机名,否则有问题
参考文章:https://www.modb.pro/db/431499
         https://my.oschina.net/postgresqlchina/blog/5346526

你可能感兴趣的:(linux,postgis,oracle,数据库,postgresql)