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
「喜歡這篇文章,您的關注和贊賞是給作者最好的鼓勵」
關注作者
【版權聲明】本文為墨天輪用戶原創內容,轉載時必須標注文章的來源(墨天輪),文章鏈接,文章作者等基本信息,否則作者和墨天輪有權追究責任。如果您發現墨天輪中有涉嫌抄襲或者侵權的內容,歡迎發送郵件至:contact@modb.pro進行舉報,并提供相關證據,一經查實,墨天輪將立刻刪除相關內容。




