linux下oracle,sqlserver的安装

测试环境中我们经常需要很多的数据库系统,比如oracle,sqlserver. mysql在linux下的安装是非常方便的,那么我们在linux下安装oracle,sqlserver如何安装呢,我采用docker的安装方法,分享给大家.

环境准备

centos服务器一台

内存大于2.5G. sqlserver监测到内存小于2G运行会停止运行.

安装docker 并启用

# yum -y install docker && systemctl start docker && systemctl enable docker

修改机器名称

机器名称做服务器,一般要有个比较实用的名字

# hostnamectl set-hostname ora-mssql

安装sqlserver

我们采用 alexk002/sqlserver2019_demo:1镜像,经测试完全可行.

 # docker run --name dkmssql -e 'SA_PASSWORD=sqlserver@1234' -p 1433:1433 -d alexk002/sqlserver2019_demo:1

安装oracle

安装oracle我们启用页面管理工具ape,运行主机的8090端口

# docker run --name dkoracle  -d -p 1521:1521 -p 8090:8080 oracleinanutshell/oracle-xe-11g

关闭防火墙

# systemctl stop firewalld 

连接oracle

默认的oracle密码是

system:oracle

sys:oracle

服务名称 xe

页面管理地址: http://hostip/8090/apex/

默认用户: ADMIN

默认密码 :admin

<think>嗯,用户想在Linux下配置Oracle通过ODBC访问SQL Server。我需要先回忆一下相关的步骤和可能的难点。首先,我记得ODBC是用于数据库连接的通用接口,所以Oracle需要通过ODBC驱动连接到SQL Server。接下来,用户用的是Linux系统,所以需要安装对应的ODBC驱动,比如FreeTDS或者微软的ODBC驱动。 第一步应该是安装ODBC驱动管理器,比如unixODBC。然后安装具体的驱动,比如FreeTDS,因为SQL Server使用TDS协议。安装完成后,需要配置odbc.ini和odbcinst.ini文件,设置DSN信息,包括服务器地址、端口、数据库名、用户名和密码。 然后,配置Oracle的HS(Heterogeneous Services)部分,创建初始化文件,设置代理用户和监听器。之后,在Oracle中创建数据库链接,这样就能通过SQL查询访问SQL Server的数据了。 可能遇到的问题包括驱动兼容性、配置文件路径是否正确,以及权限问题。还要注意Oracle和SQL Server之间的数据类型转换是否有问题,字符集是否匹配,避免乱码。性能方面,跨数据库查询可能比较慢,需要优化。 另外,用户提供的引用中有提到在Linux安装Oracle GoldenGate时设置环境变量,这可能对ODBC配置也有帮助,比如设置LD_LIBRARY_PATH指向驱动库的路径。同时,引用里提到Oracle支持多种操作系统,而SQL Server主要在Windows,所以配置ODBC在Linux上是可行的,但需要注意驱动是否稳定。 需要确保所有步骤都正确,特别是配置文件的语法,比如DSN的名称和参数是否正确。测试连接时可以用isql工具先验证ODBC配置是否成功,再处理Oracle这边的配置。如果遇到错误,查看日志文件,比如listener.log或HS的跟踪日志,可以帮助排查问题。</think>### 分步解答:在 Linux 中为 Oracle 配置 ODBC 访问 SQL Server --- #### **1. 安装 ODBC 驱动管理器及 SQL Server 驱动** **步骤:** 1. **安装 `unixODBC` 驱动管理器** 使用包管理器安装: ```bash sudo apt-get install unixodbc unixodbc-dev # Debian/Ubuntu sudo yum install unixODBC unixODBC-devel # RHEL/CentOS ``` 2. **安装 SQL Server ODBC 驱动** - **选项1:使用 FreeTDS(开源驱动)** ```bash sudo apt-get install tdsodbc freetds-bin # Debian/Ubuntu sudo yum install freetds freetds-devel # RHEL/CentOS ``` - **选项2:使用微软官方驱动(需下载)** 从 [Microsoft ODBC Driver for SQL Server](https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server) 下载并安装。 --- #### **2. 配置 ODBC 数据源** **步骤:** 1. **编辑 `/etc/odbcinst.ini`** 添加驱动路径(以 FreeTDS 为例): ```ini [FreeTDS] Description = ODBC for SQL Server (FreeTDS) Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so # 根据实际路径调整 Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so ``` 2. **编辑 `/etc/odbc.ini`** 定义数据源名称(DSN): ```ini [SQLServer_DSN] Description = SQL Server via ODBC Driver = FreeTDS Server = <SQL_Server_IP> Port = 1433 Database = <目标数据库名> TDS_Version = 8.0 # 根据 SQL Server 版本调整 ``` 3. **测试 ODBC 连接** 使用 `isql` 工具验证: ```bash isql SQLServer_DSN <用户名> <密码> ``` --- #### **3. 配置 Oracle Heterogeneous Services (HS)** **步骤:** 1. **创建 HS 初始化文件** 在 `$ORACLE_HOME/hs/admin` 下创建文件 `init<HS_SID>.ora`(例如 `initodbc.ora`): ```ini HS_FDS_CONNECT_INFO = SQLServer_DSN # 与 odbc.ini 中的 DSN 名称一致 HS_FDS_TRACE_LEVEL = ON HS_FDS_SHAREABLE_NAME = /usr/lib/libodbc.so # ODBC 驱动库路径 HS_LANGUAGE = AMERICAN_AMERICA.AL32UTF8 # 字符集与 Oracle 一致 ``` 2. **配置监听器 (`listener.ora`)** 添加 HS 服务描述: ```ini SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = odbc) # 与 HS_SID 同名 (ORACLE_HOME = <ORACLE_HOME>) (PROGRAM = dg4odbc) # 使用 DG4ODBC 代理 ) ) ``` 3. **重启监听器** ```bash lsnrctl stop lsnrctl start ``` --- #### **4. 创建 Oracle 数据库链接** **步骤:** 1. **创建数据库链接** 在 Oracle 中执行 SQL: ```sql CREATE DATABASE LINK sqlserver_link CONNECT TO <sqlserver_user> IDENTIFIED BY "<sqlserver_password>" USING 'odbc'; # 与 HS_SID 同名 ``` 2. **测试跨库查询** ```sql SELECT * FROM dual@sqlserver_link; # 示例查询 ``` --- #### **5. 常见问题处理** - **驱动路径错误** 检查 `odbcinst.ini` 中 `Driver` 和 `Setup` 路径是否有效。 - **字符集不匹配** 确保 Oracle 和 SQL Server 的字符集兼容(如 UTF-8)。 - **权限问题** Oracle 用户需有 `CREATE DATABASE LINK` 权限。 --- ### 引用说明 - ODBC 配置需与 Oracle HS 代理结合,类似 Oracle GoldenGate 的环境变量设置[^2]。 - 跨平台访问时需注意 SQL Server 与 Oracle 的数据类型差异[^4][^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老骥又出发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值