01
下载 Oracle 透明网关软件

02
安装Oracle透明网关软件

03
安装unixODBC
04
下载 openGauss ODBC驱动和libpq驱动

05
配置Oracle LISTENER/TNSNAME
cd $ORACLE_HOME/network/admin
n listener.ora
LISTENER_HS =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1567))
)
)
SID_LIST_LISTENER_HS=
(SID_LIST=
(SID_DESC=
(SID_NAME=mogdb)
(ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1)
(ENV="LD_LIBRARY_PATH=/u01/app/oracle/product/19c/dbhome_1/hs/odbc")
(PROGRAM=dg4odbc)
)
(SID_DESC=
(SID_NAME=mogdb2)
(ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1)
(ENV="LD_LIBRARY_PATH=/u01/app/oracle/product/19c/dbhome_1/hs/odbc ")
(PROGRAM=dg4odbc)
)
)
LISTENER_HS为监听名字,可随意选择 1567为端口号,可随意选择,不重复即可 mogdb/mogdb2为透明网关SID, 理论上可随意选择(不超过8位,不以数字开头) /u01/app/oracle/product/19c/dbhome_1 为ORACLE_HOME,根据实际情况做相应改动即可
n tnsnames.ora
mogdbtns =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1567))
(CONNECT_DATA=(SID=mogdb))
(HS=OK)
)
Mogdb2tns =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1567))
(CONNECT_DATA=(SID=mogdb2))
(HS=OK)
)
mogdbtns为TNS名字,可随意选择 1567为端口号,对应listener内容 mogdb为透明网关SID, 对应listener内容
06
配置 ODBC.ini
cd $ORACLE_HOME/hs/admin
vi odbc.ini
[MOGDB]
Servername=192.168.2.131
Port=10086
Database=postgres
Driver=/u01/app/oracle/product/19c/dbhome_1/hs/odbc/psqlodbcw.so
Username=tpcc
Password=tpcc@123
[MOGDB2]
Servername=192.168.2.131
Port=10199
Database=postgres
Driver=/u01/app/oracle/product/19c/dbhome_1/hs/odbc/psqlodbcw.so
Username=tpcc
Password=tpcc@123
MOGDB/MOGDB2为ODBC的数据源名称,可任选 Driver为ODBC驱动解压目录下的psqlodbcw.so Servername/Port/ Database/ Username/Password 为目标库相应信息
07
配置 hs/admin/init.ora
cd $ORACLE_HOME/hs/admin
vi init<SID>.ora
HS_FDS_CONNECT_INFO = MOGDB
set ODBCINI = /home/oracle/.odbc.ini
HS_FDS_SHAREABLE_NAME = /home/oracle/ogodbc/lib/psqlodbcw.so
HS_FDS_QUOTE_IDENTIFIER = FALSE
set LowerCaseIdentifier = on
HS_FDS_TRACE_LEVEL = 1
HS_NLS_NCHAR = UCS2
HS_FDS_CONNECT_INFO 对应 odbc.ini 里面的数据源名字 ODBCINI 对应上一步odbc.ini的完整路径及文件名 HS_FDS_SHAREABLE_NAME 对应odbc.ini的驱动文件 HS_FDS_QUOTE_IDENTIFIER = FALSE 解决字段名大小写问题 set LowerCaseIdentifier = on 解决字段名大小写问题 HS_FDS_TRACE_LEVEL 开始时可以设置大一点,方便Debug, 比如255, 稳定下来可以改为0或者1。 HS_NLS_NCHAR = UCS2 有时候连接失败需要设置这个参数,应该是字符集不匹配时。
08
启动listener并简单测试
lsnrctl start LISTENER_HS
tnsping mogdb
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1567)) (CONNECT_DATA = (SERVER = DEDICATED) (SID_NAME = mogdb) (SERVICE_NAME = mogdb)) (HS=OK))
OK (10 msec)
09
创建dblink
mogdb_link是dblink名字 ‘mogdb’对应tnsnames.ora里的内容 注意前面的user和pass加双引号,using后面的mogdb加单引号
10
测试dblink
Select * from pg_class@mogdb_link;
select “relname” from pg_class@mogdb;
11
遗留问题
如果语句报错,后面的访问也会报错
表名大小写问题
关于作者
【特别推荐】“openGauss Developer Day 2024”将于6月21日,在北京昆泰嘉瑞文化中心召开。云和恩墨将在当天下午1:30-3:30承办一场专题论坛,携手河北移动、鼎捷软件,为您呈现 MogDB 数据库技术的创新突破和在生态与市场方面的成果,还有盖国强领衔的Liveshow为您答疑解惑✨
我们诚邀您现场参与!现在就点击下方图片了解大会详情,并扫码即刻报名~
👇🏻云和恩墨专属报名通道
(记得勾选“云和恩墨分论坛”哦~)




数据驱动,成就未来,云和恩墨,不负所托!
云和恩墨创立于2011年,是业界领先的“智能的数据技术提供商”。公司总部位于北京,在国内外35个地区设有本地办公室并开展业务。
云和恩墨以“数据驱动,成就未来”为使命,致力于将创新的数据技术产品和解决方案带给全球的企业和组织,帮助客户构建安全、高效、敏捷且经济的数据环境,持续增强客户在数据洞察和决策上的竞争优势,实现数据驱动的业务创新和升级发展。
自成立以来,云和恩墨专注于数据技术领域,根据不断变化的市场需求,创新研发了系列软件产品,涵盖数据库、数据库存储、数据库云管和数据智能分析等领域。这些产品已经在集团型、大中型、高成长型客户以及行业云场景中得到广泛应用,证明了我们的技术和商业竞争力,展现了公司在数据技术端到端解决方案方面的优势。
在云化、数字化和智能化的时代背景下,云和恩墨始终以正和多赢为目标,感恩每一位客户和合作伙伴的信任与支持,“利他先行”,坚持投入于数据技术核心能力,为构建数据驱动的智能未来而不懈努力。
我们期待与您携手,共同探索数据力量,迎接智能未来。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/19401.html