oracle_fdw的安装和使用
1.下载instant oracle client
下载网址:https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
下载如下两个压缩包:
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
oracle_fdw依赖上述两个包,包里面的内容可以在oracle下载页查看,如下
Instant Client Package - Basic: All files required to run OCI, OCCI, and JDBC-OCI applications
Instant Client Package - SDK: Additional header files and an example makefile for developing Oracle applications with Instant Client
oracle_fdw官方(https://github.com/laurenz/oracle_fdw#5-installation-requirements)介绍里面有以下对依赖包的描述:
You need to install Oracle's C header files as well (SDK package for Instant Client). If you use the Instant Client ZIP files provided by Oracle, you will have to create a symbolic link from libclntsh.so to the actual shared library file yourself.
2.安装instant oracle client
# mkdir /usr/local/oracle
# unzip -d /usr/local/oracle instantclient-basic-linux.x64-11.2.0.4.0.zip
# unzip -d /usr/local/oracle instantclient-sdk-linux.x64-11.2.0.4.0.zip
3.下载并上传oracle_fdw
下载网址:https://github.com/laurenz/oracle_fdw/releases
4.配置环境变量(主要是动态链接库)
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib:/usr/local/oracle/instantclient_11_2
# export PATH=$PATH:/usr/local/pgsql/bin
# export ORACLE_HOME=/usr/local/oracle/instantclient_11_2
# cd /usr/local/oracle/instantclient_11_2
# oracle_fdw找的是libclntsh.so,因此要加一个软连接去掉版本号
# ln -s libclntsh.so.11.1 libclntsh.so
# unzip oracle_fdw-ORACLE_FDW_2_1_0.zip
# cd oracle_fdw-ORACLE_FDW_2_1_0
# make
# make install
注意:这些环境变量是临时的,安装oracle_fdw使用
在后面pg中创建插件的时候,还是会报找不到动态连接库(虽然我配置了postgres用户的LD_LIBRARY_PATH环境变量),后面通过修改ld.conf解决(详见第五步),因此这里的LD_LIBRARY_PATH环境变量配置可以直接使用后面的ld.conf解决,但为显示整个过程,这里暂时使用临时变量
5.进入数据库安装插件
# su - postgres
# psql
postgres=# create extension oracle_fdw;
执行会报错:ERROR: could not load library "/usr/local/pgsql-10.6/lib/oracle_fdw.so": libclntsh.so.11.1: cannot open shared object file: No such file or directory
通过以下步骤解决:
# cd /etc/ld.so.conf.d/
# vi oracle-x86_64.conf
-------------------------------------
/usr/local/oracle/instantclient_11_2
-------------------------------------
# ldconfig
将oracle的库加入动态链接库,再次添加擴展即可
6.創建tnsnames.ora
# cd /usr/local/oracle/instantclient_11_2/
# mkdir -p network/admin/
创建一个或者复制一个tnsnames.ora过来,配置TNS
7.外部表使用
创建外部服务器
create server oracle_test foreign data wrapper oracle_fdw options(dbserver 'db');
oracle_test为外部服务器的名称,db为上一步tnsnames.ora中配置的tns
授权
grant usage on foreign server oracle_test to postgres;
本步不是必须的,如果要给非外部服务器的创建者使用,可以赋权
创建mapping
create user mapping for postgres server oracle_test options (user 'oracle', password 'oracle');
进入oracle数据库的凭证
创建外部表
create foreign table
test_fdw( id int,
name varchar(10) ) server oracle_test options (schema 'USER01',table 'TEST01');
schema和table必须为大写,否则无法使用
查看外部服务的信息
select oracle_diag();
select * from test_fdw;
oracle_fdw的安装和使用的更多相关文章
- postgres外部表之-oracle_fdw
1. 安装Oracle客户端工具 编译安装oracle_fdw之前,需要安装Oracle的客户端程序:步骤略 下载地址:http://www.oracle.com/technetwork/databa ...
- Oracle_FDW 使用介绍
本文以例子的形式介绍 KingbaseES(Postgresql)数据库如何通过 oracle_fdw 扩展访问Oracle数据库.以下例子在PG12.3 与 KingbaseES V8R6进行过实际 ...
- PostgreSQL之oracle_fdw安装与使用
目的介绍 现在项目开发遇到一个问题,就是需要从PostgreSQL中访问Oracle数据库 身为渣渣猿一脸懵逼.于是乎请教了公司的数据库方面的大牛韩工.告诉我用oracle_fdw 可以实现,但是在实 ...
- oracle_fdw安装及使用(无法访问oracle存储过程等对象)
通过oracle_fdw可以访问oracle中的一些表和视图,也可以进行修改,尤其是给比较复杂的系统使用非常方便. (但不能使用oracle_fdw来访问oracle的存储过程.包.函数.序列等对象) ...
- oracle迁移postgres之-oracle_fdw
1. 安装oracle_fdw 在编译安装前,需要设置postgres的环境变量,如在.bash_profile中增加: export ORACLE_HOME=/u01/app/oracle expo ...
- 在PostgreSQL中使用oracle_fdw访问Oracle
本文讲述如何在PostgreSQL中使用oracle_fdw访问Oracle上的数据. 1. 安装oracle_fdw 可以参照:oracle_fdw in github 编译安装oracle_fdw ...
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
随机推荐
- Java IO流 FileOutputStream、FileInputStream的用法
FileOutputStream.FileInputStream的使用 FileOutputStream是OutputStream的继承类,它的主要功能就是向磁盘上写文件.FileOutputStre ...
- 手写开源ORM框架介绍
手写开源ORM框架介绍 简介 前段时间利用空闲时间,参照mybatis的基本思路手写了一个ORM框架.一直没有时间去补充相应的文档,现在正好抽时间去整理下.通过思路历程和代码注释,一方面重温下知识,另 ...
- css 03-CSS样式表和选择器
03-CSS样式表和选择器 #本文主要内容 CSS概述 CSS和HTML结合的三种方式:行内样式表.内嵌样式表.外部样式表 CSS四种基本选择器:标签选择器.类选择器.ID选择器.通用选择器 CSS几 ...
- python监控文件实时批量压缩脚本
# coding:utf-8 from shutil import make_archive import os import time # 指定需要监测的文件夹 image_path = './im ...
- Python高级语法-对象实例对象属性-类与实例,class方法静态方法等(4.6.1)
@ 目录 1.说明 2.代码 关于作者 1.说明 python中属性:类属性,实例属性 方法:类方法,实例方法,静态方法 想修改类属性,只能是类方法,因为只有类方法把cls(类)传入数据里面 静态方法 ...
- python简单爬去前程无忧信息招聘
import sys reload(sys) sys.setdefaultencoding('utf-8') import requests import csv from BeautifulSoup ...
- 卷积神经网络CNN-学习1
卷积神经网络CNN-学习1 十年磨一剑,霜刃未曾试. 简介:卷积神经网络CNN学习. CNN中文视频学习链接:卷积神经网络工作原理视频-中文版 CNN英语原文学习链接:卷积神经网络工作原理视频-英文版 ...
- 工具类输出当前ApplicationContext所有被装配的类
package org.springblade.desk.utils; import org.springframework.beans.BeansException; import org.spri ...
- [leetcode]207. Course Schedule课程表
在一个有向图中,每次找到一个没有前驱节点的节点(也就是入度为0的节点),然后把它指向其他节点的边都去掉,重复这个过程(BFS),直到所有节点已被找到,或者没有符合条件的节点(如果图中有环存在). /* ...
- 基于websocket的netty demo
前面2文 基于http的netty demo 基于socket的netty demo 讲了netty在http和socket的使用,下面讲讲netty如何使用websocket websocket是h ...