Oracle通过DBLINK访问PG13
root用户执行:
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y unixODBC.x86_64
yum - y install postgresql13-odbc.x86_64
unlink /usr/lib64/libpq.so.5
ln -s /usr/pgsql-13/lib/libpq.so.5.13 /usr/lib64/libpq.so.5
修改文件/etc/odbcinst.ini,将Driver改成pg13的
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/pgsql-13/lib/psqlodbcw.so
Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /usr/pgsql-13/lib/psqlodbcw.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
创建文件/etc/odbc.ini
[postgresql]
Description = PostgresSQLODBC
Driver = PostgreSQL
Database = demo
Servername = 192.168.0.42
UserName = test
Password = test123
Port = 5432
ReadOnly = 0
ConnSettings = set client_encoding to UTF8
测试连接:
isql -v postgresql
oracle用户执行下面的步骤:
创建文件~/.odbc.ini
[PG_LINK]
Description = PostgreSQL connection to SallyDB
Driver = /usr/pgsql-13/lib/psqlodbc.so
Setup = /usr/lib64/libodbcpsqlS.so
Database = demo
Servername = 192.168.0.42
UserName = test
Password = test123
Port = 5432
Protocol = 13.1
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ConnSettings = set client_encoding to UTF8
创建文件: /u01/app/oracle/product/19.0.0/dbhome_1/hs/admin/initPG_LINK.ora
HS_FDS_CONNECT_INFO = PG_LINK
HS_FDS_TRACE_LEVEL = 255
HS_FDS_SHAREABLE_NAME=/usr/pgsql-13/lib/psqlodbc.so
HS_LANGUAGE=AMERICAN_AMERICA.UTF8
set ODBCINI=/home/oracle/.odbc.ini
HS_NLS_NCHAR=UCS2
HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P1
在文件 /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/tnsnames.ora 中追加如下内容:
PG_LINK =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.24)(PORT=1521))
(CONNECT_DATA=(SID=PG_LINK))
(HS=OK)
)
在文件 /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora 中追加:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PG_LINK)
(ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1)
(ENV="LD_LIBRARY_PATH=/usr/lib64/:/u01/app/oracle/product/19.0.0/dbhome_1/bin/")
(PROGRAM=dg4odbc)
)
)
创建dblink
drop database link to_pglink;
create database link to_pglink connect to "test" identified by "test123" using 'PG_LINK';
使用DBLINK连接访问
select count(*) from "gupolicymain"@to_pglink;
使用同义词访问:
create or replace synonym testx for "gupolicymain"@to_pglink;
select count(*) from gupolicymain;
分类:
Oracle
, PostgreSQL
标签:
Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了