ITPub博客

首页 > 数据库 > Oracle > 如何通过oracle连接sqlserver数据库

如何通过oracle连接sqlserver数据库

原创 Oracle 作者:oracle11111 时间:2025-02-10 11:31:28 0 删除 编辑

相关软件包下载:


wget https://packages.microsoft.com/rhel/7/mssql-server-2019/mssql-server-15.0.4073.23-4.x86_64.rpm


工具包:


wget https://packages.microsoft.com/rhel/7/prod/msodbcsql17-17.6.1.1-1.x86_64.rpm


wget https://packages.microsoft.com/rhel/7/prod/mssql-tools-17.6.1.1-1.x86_64.rpm


对一个连接数据库的查询,select * from “tablename”@linkdbname;oracle首先从linkdbname开始,通过dba_db_links表查到建表时所属于的tnsname;

然后在tnsnames.ora中找到tnsname对应的sid;接着在lisener.ora中找该SID所对应的应用程序(如:PROGRAM=dg4msql或PROGRAM=dg4odbc),

而且这个程序到哪找,就要注明oracle_home(ORACLE_HOME=/opt/oracle/product/gw);找到程序之后,

oracle会在程序所在目录的admin子目录下找到init<sid>.ora文件,读取里面的连接信息;然后通过连接信息与non-oracle数据库通信。




[msql]

Description     = ODBC for sqlserver

Driver          = SQLServer 

Server          = 192.168.56.101

Port            = 1433

User            = 'sa'

Password        = 1qaz@WSX

Database        = TestDB 




[测试环境]


Oracle 服务器

操作系统:Red Hat Enterprise Linux Server release 7.4 (Maipo)

软件版本:Oracle 19.3

主机地址:192.168.56.101

监听端口:1521

网关和oracle在同一台,也是19.3,此数据库安装网关时未安装监听。


sqlserver 服务器

操作系统:Red Hat Enterprise Linux Server release 7.4 (Maipo)

软件版本:Microsoft SQL Server 2019 (RTM-CU8) (KB4577194) - 15.0.4073.23 (X64)

主机地址:192.168.56.101

服务端口:1433

数据库名:TestDB

用户密码:sa/1qaz@WSX



[配置]

1  sqlserver 服务器

安装并创建相关数据库,使用远程测试,确保远程连接正常。




2  Oracle 服务器

2.1 安装相关包

安装 unixODBC 软件包

yum -y install unixODBC*


yum localinstall msodbcsql17-17.6.1.1-1.x86_64.rpm


安装该应用包



2.2 下载mos上的数据库版本对应版本的gateway


2.3  安装gateway 填写相应信息,此步略过txt不支持截图,步骤很简单


2.4  相关配置文件


$ORACLE_HOME/dg4msql/admin 下:

】[19c@rhel7 admin]$ cat initdg4msql.ora 

# This is a customized agent init file that contains the HS parameters

# that are needed for the Database Gateway for Microsoft SQL Server


#

# HS init parameters

#

HS_FDS_CONNECT_INFO=[192.168.56.101]:1433//TestDB

# alternate connect format is hostname/serverinstance/databasename

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER



2.5 监听配置文件

[19c@rhel7 admin]$ cat listener.ora 

LISTENERMS =

 (ADDRESS_LIST=

      (ADDRESS=(PROTOCOL=tcp)(HOST= 192.168.56.101)(PORT=6666))

 )


SID_LIST_LISTENERMS=

  (SID_LIST=

      (SID_DESC=

         (SID_NAME=dg4msql)

         (ORACLE_HOME=/19c/database)

         (ENVS="LD_LIBRARY_PATH=/usr/local/lib:/usr/lib64:/19c/database/dg4msql/lib")

         (PROGRAM=dg4msql)

      )

  )


2.6 tnsname文件

[19c@rhel7 admin]$ cat tnsnames.ora 



dg4msql  =

  (DESCRIPTION=

    (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.101)(PORT=6666))

    (CONNECT_DATA=(SID=dg4msql))

    (HS=OK)

  ) 


2.7 创建dblink 并访问

SQL> create  PUBLIC DATABASE LINK dg4msql connect to "test" identified by "123456" using 'dg4msql';


Database link created.


SQL> select * from "t1"@dg4msql;



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69924215/viewspace-3071533/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-05-19

  • 博文量
    81
  • 访问量
    90372