文章目录
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