Linux(deepin)使用sqlplus及isql(ODBC)访问Oracle

1、简介

  由于需要在跨平台上(x64、arm、aarch64)通过ODBC做数据库数据采集,因此需要先验证ODBC的连通性,验证ODBC之前先用sqlplus进行验证数据库能否正常访问。在网上找相关资料,感觉都没有能根据教程完整完成验证的,没错,同时也说自己,哈哈hhh。

2、环境

(1)操作系统:deepin 社区版(20.9) 64位,虚拟机VMware上操作
(2)数据库:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit,可通过sql语句查询:select * from v$version;

3、安装验证

  参考阅读:Oracle Instant Client ODBC 安装说明

3.1 安装unixODBC-2.3.9

(1)下载地址:https://src.fedoraproject.org/repo/pkgs/unixODBC/
(2)复制安装包(unixODBC-2.3.9.tar.gz)到桌面(或其他位置/路径),在当前位置打开终端执行:

tar -xvf unixODBC-2.3.9.tar.gz
cd unixODBC-2.3.9/
./configure --prefix=/usr/local/unixODBC
make
sudo make install

3.2 安装alien

  由于下载的oracle-instantclient安装包都是rpm文件格式,不能用于直接安装,因此需要此命令将文件转换为可双击执行安装的deb格式。

sudo apt-get install debugedit=4.14.2.1+dfsg1.1-1+dde
sudo apt install alien

3.3 安装oracle-instantclient11.2-basic-11.2.0.4.0

(1)下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
(2)复制安装包(oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm)到桌面,打开终端执行:

sudo alien oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
//输入密码且验证成功,等待deb generated
sudo dpkg -i oracle-instantclient11.2-basic_11.2.0.4.0-2_amd64.deb

3.4 安装oracle-instantclient11.2-sqlplus-11.2.0.4.0

(1)下载地址:同上
(2)复制安装包(oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm)到桌面,打开终端执行:

sudo alien oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
//等待deb generated
sudo dpkg -i oracle-instantclient11.2-sqlplus_11.2.0.4.0-2_amd64.deb

3.5 验证sqlplus

(1)oracle安装默认位置:/usr/lib/oracle/11.2/client64/

cd /usr/lib/oracle/11.2/client64/bin
./sqlplus /nolog

(2)出现报错:./sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
(3)配置环境变量:

sudo vim /etc/profile

(4)在profile文件中添加以下内容:

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_BASE=/usr/lib/oracle/11.2 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BIN=/usr/lib/oracle/11.2/client64/bin

(5)生效环境变量:

source /etc/profile

(6)服务名登录验证:

./sqlplus /nolog
./sqlplus 用户名/密码@IP或域名:1521/数据库服务或实例名

在这里插入图片描述
(7)服务名别名登录验证:
配置数据库连接tnsnames.ora文件:

cd /usr/lib/oracle/11.2/client64/
sudo mkdir -p network/admin/
cd network/admin/
sudo vim tnsnames.ora

输入以下内容,第一行的ORACLEDB即服务名别名:

ORACLEDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = IP或域名)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORACLEDB)
    )
  )

验证:

cd ../../bin/
./sqlplus 用户名/密码@ORACLEDB

3.6 安装oracle-instantclient11.2-odbc-11.2.0.4.0

(1)下载地址:同上
(2)复制安装包(oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm)到桌面,打开终端执行:

sudo alien oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm
//等待deb generated
sudo dpkg -i oracle-instantclient11.2-odbc_11.2.0.4.0-2_amd64.deb
sudo cp /usr/lib/oracle/11.2/client64/lib/* /usr/lib/
sudo ldconfig

3.7 验证isql(ODBC)

(1)配置数据源:

odbcinst -j  //查看odbc.ini位置
sudo vim /etc/odbc.ini

输入以下内容,第一行的OracleODBC即DSN数据源名称:

[OracleODBC]
Driver       = /usr/lib/libsqora.so.11.1
Description  = Data Source to Oracle
ServerName   = IP或域名:1521/ORACLEDB
USER         =
Password     =
OPTION       =
SOCKET       =

(2)验证:

cd /usr/local/unixODBC/bin
./isql OracleODBC 用户名 密码 -v  //可不执行,odbc.ini文件要放在unixODBC/etc目录
cd ../etc/
sudo cp /etc/odbc.ini ./
cd ../bin/
./isql OracleODBC 用户名 密码 -v

在这里插入图片描述

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值