oracle客户端环境配置
方式一:安装oracle客户端相关rpm包
--安装基础包
# yum install oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
--安装开发包
# yum install oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
方式二:使用解压包
$ ll instantclient_12_2/
total 216688
-rwxrwxr-x 1 omm dbgrp 44220 jan 26 2017 adrci
-rw-rw-r-- 1 omm dbgrp 363 jan 26 2017 basic_readme
-rwxrwxr-x 1 omm dbgrp 57272 jan 26 2017 genezi
-rwxrwxr-x 1 omm dbgrp 8033199 jan 26 2017 libclntshcore.so.12.1
-rwxrwxr-x 1 omm dbgrp 71638263 jan 26 2017 libclntsh.so.12.1
-r-xr-xr-x 1 omm dbgrp 2981501 jan 26 2017 libipc1.so
-r-xr-xr-x 1 omm dbgrp 539065 jan 26 2017 libmql1.so
-r-xr-xr-x 1 omm dbgrp 6568149 jan 26 2017 libnnz12.so
-rwxrwxr-x 1 omm dbgrp 2218687 jan 26 2017 libocci.so.12.1
-rwxrwxr-x 1 omm dbgrp 124771800 jan 26 2017 libociei.so
-r-xr-xr-x 1 omm dbgrp 158543 jan 26 2017 libocijdbc12.so
-r-xr-xr-x 1 omm dbgrp 380996 jan 26 2017 libons.so
-rwxrwxr-x 1 omm dbgrp 116563 jan 26 2017 liboramysql12.so
-r--r--r-- 1 omm dbgrp 4036257 jan 26 2017 ojdbc8.jar
drwxrwxr-x 5 omm dbgrp 97 jan 26 2017 sdk
-rwxrwxr-x 1 omm dbgrp 240476 jan 26 2017 uidrvci
-rw-rw-r-- 1 omm dbgrp 74230 jan 26 2017 xstreams.jar
配置环境变量:方式二解压为例,配置ld_library_path
export ld_library_path=$gausshome/lib:$gausshome/lib/postgresql/:/usr/local/lib:/usr/local/lib64:/usr/lib64:/home/omm/instantclient_12_2
ld_library_path变量最后增加配置/home/omm/instantclient_12_2
oracle访问插件准备
上传文件oracle_fdw_centos7_x86_64.tar.gz,后续会发布到mogdb的插件包里
安装插件
先解压oracle_fdw_centos7_x86_64.tar.gz,使用普通用户omm操作即可
$ tar zxvf oracle_fdw_centos7_x86_64.tar.gz
拷贝相应的文件到mogdb安装目录
$ cp oracle_fdw/oracle_fdw--1.1.sql /opt/mogdb300/share/postgresql/extension/
$ cp oracle_fdw/oracle_fdw.control /opt/mogdb300/share/postgresql/extension/
$ cp oracle_fdw/oracle_fdw.so /opt/mogdb300/lib/postgresql/
创建扩展
需要使用具有sysadmin权限,才能创建扩展,admin用户拥有sysadmin管理权限。
$ gsql -u admin postgres
mogdb=> create extension oracle_fdw with schema public;
create extension
查看扩展版本
mogdb=> select oracle_diag();
oracle_diag
--------------------------------------------------------------
oracle_fdw 2.2.0, postgresql 9.2.4, oracle client 12.2.0.1.0
(1 row)
普通用户使用fdw权限配置
admin用户拥有sysadmin管理权限,赋予普通用户opengauss使用oracle_fdw权限
$ gsql -u admin postgres
mogdb=> grant usage on foreign data wrapper oracle_fdw to mes;
grant
普通用户创建server
普通用户mes操作创建server
$ gsql -u mes postgres
mogdb=> create server server_oracle foreign data wrapper oracle_fdw options(dbserver '192.168.137.227:1521/orcl');
create server
普通用户创建用户映射
注意:为了提升安全,需要对用户映射的密码加密存储,必须通过gs_guc generate命令生成user mapping的key。
$ gs_guc generate -s admin@1234 -d /opt/mogdb300/bin -o usermapping
如果不执行上面的gs_guc generate命令,会出现如下的错误提示:
mogdb=> create user mapping for mes server server_oracle options(user 'scott',password 'admin');
error: no key file usermapping.key.cipher
hint: please create usermapping.key.cipher file with gs_guc and gs_ssh, such as :gs_ssh -c "gs_guc generate -s xxx -d $gausshome/bin -o usermapping"
执行完gs_guc generate命令,接着创建用户映射
mogdb=> create user mapping for mes server server_oracle options(user 'scott',password 'admin');
create user mapping
普通用户创建外部表
mogdb=> create foreign table f_oracle_t2(
id int
)server server_oracle
options (
schema 'scott',
"table" 't2'
);
create foreign table
普通用户使用外部表
通过外部表查询oracle数据库t2表数据
mogdb=> select * from f_oracle_t2;
id
-----
100
(1 row)
写入数据到oracle数据库t2表
mogdb=> insert into f_oracle_t2 values(200);
insert 0 1
再次查看数据
mogdb=> select * from f_oracle_t2;
id
-----
100
200
(2 rows)
最后修改时间:2022-10-22 12:33:51
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。