根据业务需要,配置oracle到Postgres 的dblink.
因为用的是AWS的PostgreSQL, 所以没法用FDW。
讲真第一次用oracle 的透明网关。
配置如下:
首先安装postgre 的odbc驱动
yum install -y postgresql-odbc.x86_64
2. 配置驱动信息
vi home/oracle/.odbc.ini[PG_LINK]Description = PostgreSQL connection to jp_foresightDescription = ODBC for PostgreSQLDriver = /usr/lib/psqlodbcw.soSetup = /usr/lib/libodbcpsqlS.soDriver64 = /usr/lib64/psqlodbcw.so ##这一块为驱动的目录,需要写对Setup64 = /usr/lib64/libodbcpsqlS.soFileUsage = 1Database = xxxdatabase ##database nameServername = xxx-postgres.com #hostnamePort = 5432Protocol = 11.1ReadOnly = NoRowVersioning = NoShowSystemTables = NoConnSettings =
配置透明网关信息
source xx.envcd $ORACLE_HOME/hs/admin/vi initPG_LINK.oraHS_FDS_CONNECT_INFO = PG_LINK #此处需要匹配 .odbc.ini 里面的信息HS_FDS_TRACE_LEVEL = 255HS_FDS_SHAREABLE_NAME=/usr/lib64/psqlodbc.soHS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P1HS_NLS_NCHAR=UCS2set ODBCINI=/home/oracle/.odbc.ini ##此处为刚刚写的.odbc.ini路径
TNS配置解析
vi $TNS_ADMIN/tnsnames.oraPG_LINK =(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)) ##根据你要配置的监听信息更改,此处为数据库监听的IP 端口,(CONNECT_DATA=(SID=PG_LINK)) ##此处为link 的名字(HS=OK))
配置监听
vi $TNS_ADMIN/listener.oraSID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=PG_LINK)(ORACLE_HOME=/u01/app/oracle/pruduct/19.3.0) #$ORACLE_HOME(PROGRAM=dg4odbc)))
创建dblink, 测试。因为在pg 里面,表名是可以小写的。所以要引号。
SQL> create database link pg_link connect to “username" identified by “password" using 'PG_LINK';Database link created.SQL> select count(*) from "tb_account"@pg_link;COUNT(*)----------509
文章转载自墨香溪的溪,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




