创建从 Oracle 到 Postgresql 数据库的 Dblink

在今天的文章中,我将告诉你如何创建从 Oracle 到 Postgresql 数据库的 Dblink。

使用我们将创建的 dblink,我们可以从 Oracle 数据库查询 Postgres 数据库中的表。

Oracle DB: 192.168.56.12
Postgres DB: 192.168.56.13

在 Postgres 数据库中要做的事情:

1.首先我们将为dblink创建一个用户。

$ psql
postgres# create user dblinkuser encrypted password 'userpass';

2.创建用户后,我们根据我们希望它使用哪个schema和table来授权她。

postgres# grant usage on schema "melek" to dblinkuser;
postgres# grant select on "melek".deneme to dblinkuser;

  1. 将以下行添加到 pg_hba.conf 文件中。
$ vi /var/lib/pgsql/13/data/pg_hba.conf
host postgres dblinkuser 192.168.56.12/32 md5

  1. 更改后,我们重新加载服务。
$ systemctl reload postgresql-13.service

Oracle数据库中要做的事情:

1.首先,我们安装以下包。

$ yum install postgresql-odbc

2、我们根据自己的postgres服务器的设置来编辑odbcinst.ini文件的内容。

$ vi /etc/odbcinst.ini
# Example driver definitions
# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PG]
Description = PG
Driver      = /usr/lib64/liboplodbcS.so.2.0.0
ServerName  = 192.168.56.13
Username    = dblinkuser
Password    = userpass
Port        = 5432
Database    = postgres
Setup       = /usr/lib64/libodbcpsqlS.so
Driver64    = /usr/lib64/psqlodbcw.so
Setup64     = /usr/lib64/libodbcpsqlS.so
FileUsage   = 1

  1. 在 ORACLE_HOME/hs/admin 目录中创建 initPG.ora 文件,并在其中添加以下行。
$ vi $ORACLE_HOME/hs/admin/initPG.ora
# HS init parameters
#
HS_FDS_CONNECT_INFO = PG
HS_FDS_TRACE_LEVEL = 4
HS_FDS_SHAREABLE_NAME = /usr/lib64/psqlodbcw.so
HS_LANGUAGE = AMERICAN_AMERICA.WE8ISO8859P9
HS_FDS_TRACE_LEVEL=ON
#
# ODBC specific environment variables
#
set ODBCINI=/etc/odbcinst.ini

  1. 将以下行添加到 tnsnames.ora 文件中。
$ vi $ORACLE_HOME/network/admin/tnsnames.ora
PG =
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.12)(PORT = 1521))
  (CONNECT_DATA =
  (SID = PG)
  )
 (HS = OK)
 )

  1. 将以下行添加到 listener.ora 文件中。
$ vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
   (SID_LIST=
      (SID_DESC=
      (SID_NAME=PG)
      (ORACLE_HOME=/u01/app/oracle/product/19.0.0/db_1)
      (PROGRAM=dg4odbc)
      )
   )

  1. 重新加载监听器。
$ lsnrctl reload

  1. dblink 已创建。
SQL> CREATE DATABASE LINK PG
CONNECT TO "dblinkuser"
IDENTIFIED BY userpass
USING 'PG';

测试:

完成所有步骤后,我将在Oracle数据库中查询Postgres数据库中的一个表来测试它。

SQL> select * from "melek"."deneme"@PG;

原文标题:Create Dblink From Oracle To Postgresql Database
原文作者:Melek Durdu
原文地址:https://dbtut.com/index.php/2022/04/14/create-dblink-from-oracle-to-postgresql-database/


免责声明:

1、本站资源由自动抓取工具收集整理于网络。

2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。

3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。

4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。

5、如果您喜欢本资源,请您支持作者,购买正版内容。

6、资源失效,请下方留言,欢迎分享资源链接

文章评论

0条评论