成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Oracle使用psqlODBC訪問PostgreSQL

IT那活兒 / 2471人閱讀
Oracle使用psqlODBC訪問PostgreSQL
[
說明
]


Oracle數(shù)據(jù)庫網(wǎng)關(guān)可以透明地訪問其他數(shù)據(jù)庫,Oracle HS Agent將SQL語句轉(zhuǎn)換為非Oracle數(shù)據(jù)庫(PostgreSQL)可以理解的SQL語句,并通過ODBC 數(shù)據(jù)源發(fā)送該SQL語句,在PostgreSQL中執(zhí)行后將結(jié)果返回Oracle數(shù)據(jù)庫,本文介紹如何配置并訪問PostgreSQL數(shù)據(jù)庫。


[
測試環(huán)境
]


Oracle 服務(wù)器

操作系統(tǒng):RHEL 6.9

軟件版本:Oracle 11.2.0.4

主機(jī)地址:192.168.21.13

監(jiān)聽端口:1521

PostgreSQL 服務(wù)器

操作系統(tǒng):RHEL 7.8

軟件版本:PostgreSQL 10.2

主機(jī)地址:192.168.21.125

服務(wù)端口:5432

數(shù)據(jù)庫名:MYPGDB

用戶密碼:mypguser/oracle


[
配置
]


PostgreSQL 服務(wù)器


安裝并創(chuàng)建相關(guān)數(shù)據(jù)庫,使用pgadmin測試,確保遠(yuǎn)程連接正常。


Oracle 服務(wù)器

安裝 unixODBC 軟件包

 yum -y install unixODBC*

安裝 PostgreSQL ODBC 驅(qū)動

 yum -y install postgresql-odbc postgresql-libs

為驅(qū)動創(chuàng)建數(shù)據(jù)源

 odbcinst -j
 
 odbc_config --odbcini --odbcinstini

配置 psqlODBC驅(qū)動庫

默認(rèn)已經(jīng)創(chuàng)建了[PostgreSQL]條目。

 # Example driver definitions
 
 # Driver from the postgresql-odbc package
 # Setup from the unixODBC package
 [PostgreSQL]
 Description     = ODBC for PostgreSQL
 Driver          = /usr/lib/psqlodbc.so
 Setup           = /usr/lib/libodbcpsqlS.so
 Driver64        = /usr/lib64/psqlodbc.so
 Setup64         = /usr/lib64/libodbcpsqlS.so
 FileUsage       = 1
 
 # Driver from the mysql-connector-odbc package
 # Setup from the unixODBC package
 [MySQL]
 Description     = ODBC for MySQL
 Driver          = /usr/lib/libmyodbc5.so
 Setup           = /usr/lib/libodbcmyS.so
 Driver64        = /usr/lib64/libmyodbc5.so
 Setup64         = /usr/lib64/libodbcmyS.so
 FileUsage       = 1

創(chuàng)建數(shù)據(jù)源


數(shù)據(jù)源名稱為 pgdsn,可自定義其他名稱,注意在后繼配置中引用時保持一致。


PostgreSQL數(shù)據(jù)庫名為 MYPGDB, 服務(wù)器/端口為 192.168.21.125/5432, 用戶名/密碼為 mypguser/oracle。

 [pgdsn]
 Driver = PostgreSQL
 Description = PostgreSQL ODBC Driver
 Database = MYPGDB
 Servername = 192.168.21.125
 Username = mypguser
 Password = oracle
 Port = 5432
 UseDeclareFetch = 1
 CommLog = /tmp/pgodbclink.log
 Debug = 1
 LowerCaseIdentifier = 1

測試 ODBC 連接

 [root@rhel69rac1 ~]# isql pgdsn
 +---------------------------------------+
 | Connected!                           |
 |                                       |
 | sql-statement                         |
 | help [tablename]                     |
 | quit                                 |
 |                                       |
 +---------------------------------------+
 
 SQL> select current_database(),inet_server_port();
 +-----------------------------------------------------------------+-----------------+
 | current_database                                               | inet_server_port|
 +-----------------------------------------------------------------+-----------------+
 | MYPGDB                                                           | 5432           |
 +-----------------------------------------------------------------+-----------------+
 SQLRowCount returns -1
 1 rows fetched
 SQL>

創(chuàng)建 Oracle 數(shù)據(jù)庫網(wǎng)關(guān)


在 $ORACLE_HOME/hs/admin 目錄下創(chuàng)建 init<數(shù)據(jù)源名>.ora 文件,本測試為 initpgdsn.ora。

 HS_FDS_CONNECT_INFO = pgdsn
 HS_FDS_TRACE_LEVEL = DEBUG
 HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
 
 set ODBCINI=/etc/odbc.ini


調(diào)整 Oracle 監(jiān)聽配置


注意集群環(huán)境的監(jiān)聽文件位置為$GRID_HOME/network/admin/listener.ora。

 LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.13)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER))
    )
  )
 
 SID_LIST_LISTENER =
  (SID_LIST =
     (SID_DESC=
      (SID_NAME = pgdsn)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
       (ENVS="LD_LIBRARY_PATH=/usr/local/lib:/usr/lib64:/u01/app/oracle/product/11.2.0/db_1")
       (PROGRAM=dg4odbc)
    )
  )


添加 Oracle TNS 配置

配置文件為 $ORACLE_HOME/network/admin/tnsnames.ora。

 pgdsn =
   (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcp)(HOST = 192.168.21.13)(PORT = 1521))
     (CONNECT_DATA=(sid=pgdsn))
     (HS=OK)
 )

重啟監(jiān)聽

 lsnrctl stop
 lsnrctl start

創(chuàng)建 Database Link

 SQL> create public database link pglink connect to "mypguser" identified by "oracle" using pgdsn;

訪問測試

注意表名需要添加雙引號。

 SQL> select count(*) from "pg_settings"@pglink;

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130075.html

相關(guān)文章

  • 阿里云如何打破Oracle遷移上云的壁壘

    摘要:摘要第九屆中國數(shù)據(jù)庫技術(shù)大會,阿里云數(shù)據(jù)庫產(chǎn)品專家蕭少聰帶來以阿里云如何打破遷移上云的壁壘為題的演講。于是,阿里云給出了上面的解決方案。 摘要: 2018第九屆中國數(shù)據(jù)庫技術(shù)大會,阿里云數(shù)據(jù)庫產(chǎn)品專家蕭少聰帶來以阿里云如何打破Oracle遷移上云的壁壘為題的演講。Oracle是指數(shù)據(jù)庫管理系統(tǒng),面對Oracle遷移上云的壁壘,阿里云如何能夠打破它呢?本文提出了Oracle 到云數(shù)據(jù)庫P...

    chavesgu 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<