欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle配置dblink訪問PostgreSQL的操作方法

 更新時間:2022年03月21日 10:53:11   作者:howard_shooter  
本文給大家介紹下Oracle配置dblink訪問PostgreSQL的操作方法,通過dblink訪問PostgreSQL的詳細過程,對Oracle?dblink訪問PostgreSQL相關知識感興趣的朋友一起看看吧

Oracle dblink的底層是通過ODBC連接PostgreSQL執(zhí)行SQL的,需安裝unixODBC和PostgreSQL ODBC驅動(它們的配置文件是:odbcinst.ini和odbc.ini),還需配置Oracle網(wǎng)絡使用這個驅動。以下操作都是在Oracle服務器上進行:

以root用戶安裝unixODBC:

yum install unixODBC unixODBC-devel.x86_64

unixODBC相當于Linux中管理所有數(shù)據(jù)庫ODBC驅動的管理器。

以root用戶安裝PostgreSQL ODBC驅動
編譯安裝,以root執(zhí)行:

yum install libpq5-devel.x86_64
wget https://ftp.postgresql.org/pub/odbc/versions/src/psqlodbc-12.02.0000.tar.gz
tar xf psqlodbc-12.02.0000.tar.gz
cd psqlodbc-12.02.0000
./configure
make
make install

默認安裝到/user/local/lib

配置odbcinst.ini和odbc.ini,以root用戶執(zhí)行:

vim /etc/odbcinst.ini(不區(qū)分大小寫)

/usr/local/lib/psqlodbcw.so 是PostgreSQL ODBC驅動的庫。
/usr/lib64/libodbcpsqlS.so 是unixODBC的庫。

vim /etc/odbc.ini

這里Driver應與odbcinst.ini中的[PostgreSQL]對應,可以取任何名字,但兩者需要相同。其它參數(shù)視具體PostgreSQL服務器而定。[PG]是一個連接PostgreSQL的配置名稱,其它應用程序(如Oracle)就是引用這個名稱訪問PostgreSQL。
測試一下這個ODBC連接能否工作:

配置Oracle網(wǎng)絡,以oracle用戶執(zhí)行,涉及3個Oracle配置文件的修改:

$ORACLEHOME/network/admin/listener.ora
$ORACLEHOME/hs/admin/init<SID_NAME>.ora
$ORACLEHOME/network/admin/tnsnames.ora

1)在listener.ora中,增加一項配置(紅圈部分),它代表PostgreSQL提供的數(shù)據(jù)庫服務,Oracle將PostgreSQL也看成一個Oracle實例,SID_NAME = PGINSTANCE是給它定義一個實例名,這個名稱任意,但是這個名稱決定了第二個配置文件$ORACLEHOME/hs/admin/init<SID_NAME>.ora的文件名,例如initPGINSTANCE.ora。

2)$ORACLEHOME/hs/admin/init<SID_NAME>.ora
實例PGINSTANCE連接PostgreSQL數(shù)據(jù)庫時,Oracle會到$ORACLEHOME/hs/admin/下找名為initPGINSTANCE.ora的配置文件,里面是關于ODBC連接的信息,Oracle使用這些信息連接PostgreSQL,例如,在我的環(huán)境中,這個文件內容如下:

HS_FDS_CONNECT_INFO = PG 這個參數(shù)指向odbc.ini文件中的ODBC連接名稱[PG],參考前面。HS_FDS_SHAREABLE_NAME =/usr/local/lib/psqlodbcw.so 這個參數(shù)設置PostgreSQL ODBC驅動的路徑,與odbcinst.ini中Driver64相同。
如果PostgreSQL的字符編碼是UTF8,那么下面兩個參數(shù)應該這樣設置:

HS_NLS_NCHAR=UCS2
HS_LANGUAGE=AMERICAN_AMERICA.AL32UTF8

3)在tnsnames.ora中,增加一項(紅圈):

pglink是客戶端到PostgreSQL實例的連接配置,只要注意一點:“SID = PGINSTANCE”中,SID應設置為listener.ora中PostgreSQL的實例名,例如這里就是PGINSTANCE。pglink這個名稱,將在創(chuàng)建dblink時使用。

創(chuàng)建dblink
在sqlplus或其它終端執(zhí)行

create database link dl_pgsql connect to "postgres" identified by "post123" using 'pglink';

其中'pglink'是tnsnames.ora文件里定義的,這里把Oracle數(shù)據(jù)庫作為客戶端,去連接pglink所指的實例。
"postgres" identified by "post123" 是指PostgreSQL中的用戶。
這各名稱為dl_pgsql的dblink所連接的PostgreSQL數(shù)據(jù)庫名由odbc.ini的Database參數(shù)指定。postgres用戶應該對Database所指的數(shù)據(jù)庫,有足夠訪問權限。

通過dblink訪問PostgreSQL
假設emp表在名為postgres的數(shù)據(jù)庫中的名為public的schema下,Oracle完成上面的配置后,可以這樣訪問:

select * from "public"."emp"@dl_pgsql;

創(chuàng)建和使用別名

CREATE SYNONYM emp_table FOR "public"."emp"@dl_pgsql;
select * from emp_table;

到此這篇關于Oracle配置dblink訪問PostgreSQL的文章就介紹到這了,更多相關Oracle dblink訪問PostgreSQL內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論