首批通过分布式安全可靠测评,为关键业务系统打造
附:安装配置 OCI
更新时间:2026-05-31 10:12:40
OceanBase 数据库的 Oracle 租户通过 DBLink 读写远端 Oracle 数据库的数据时,需要安装配置 OCI 库。
操作步骤
OceanBase V4.2.1 及之后版本使用 DBLink 功能访问远端 Oracle 数据库时,需要参考本文档在集群的所有 OBServer 节点上安装并配置 OCI-12.2。
下面以一台 OBServer 节点为例,提供 OCI 库的安装配置指导。
访问 Oracle 数据库官网,选择对应的版本,下载 OCI 库。
使用
admin用户登录 OBServer 节点,将下载好的 RPM 包拷贝到 OBServer 节点上,执行以下命令,命令安装 OCI 库。sudo rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpmOCI 库安装成功后,执行以下命令,获取 OCI 库的安装目录。
rpm -ql oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64结果如下:
/usr/lib/oracle/12.2/client64/bin/adrci /usr/lib/oracle/12.2/client64/bin/genezi /usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1 /usr/lib/oracle/12.2/client64/lib/libclntshcore.so.12.1 /usr/lib/oracle/12.2/client64/lib/libipc1.so /usr/lib/oracle/12.2/client64/lib/libmql1.so /usr/lib/oracle/12.2/client64/lib/libnnz12.so /usr/lib/oracle/12.2/client64/lib/libocci.so.12.1 /usr/lib/oracle/12.2/client64/lib/libociei.so /usr/lib/oracle/12.2/client64/lib/libocijdbc12.so /usr/lib/oracle/12.2/client64/lib/libons.so /usr/lib/oracle/12.2/client64/lib/liboramysql12.so /usr/lib/oracle/12.2/client64/lib/ojdbc8.jar /usr/lib/oracle/12.2/client64/lib/xstreams.jar配置 OCI 库。
确认 OceanBase 数据库节点的安装目录下是否有
lib目录,如果没有该目录,则需要在 OceanBase 数据库节点的安装目录下创建lib文件夹并授权。如果OceanBase 数据库节点的安装目录下已有lib目录,请忽略本操作。本文以 OceanBase 数据库节点的安装目录为
/home/admin/oceanbase为例。sudo mkdir /home/admin/oceanbase/libsudo chown admin:admin -R /home/admin/oceanbase/lib进入 OCI 库的安装目录。
cd /usr/lib/oracle/12.2/client64/lib/将 OCI 库安装目录中的
libclntshcore.so.12.1、libclntsh.so.12.1、libipc1.so、libmql1.so、libnnz12.so、libocci.so.12.1、libociei.so、libocijdbc12.so、libons.so、liboramysql12.so等 10 个必要库文件拷贝到 OceanBase 数据库的安装目录中。其中,
$DIR需要替换成 OceanBase 数据库节点的安装目录, 本文以 OceanBase 数据库节点的安装目录为/home/admin/oceanbase为例。注意
将 OCI 安装目录中的 10 个 so 文件拷贝到 OceanBase 数据库节点的安装目录下后,再在安装目录下将
libclntsh.so.12.1文件拷贝一份并重命名为libclntsh.so(或者也可以在安装目录下建立一个指向安装目录中libclntsh.so.12.1库文件的软链接,并将软连接命名为libclntsh.so)。cp libclntshcore.so.12.1 $DIR/libcp libclntsh.so.12.1 $DIR/libcp libclntsh.so.12.1 $DIR/lib/libclntsh.socp libipc1.so $DIR/libcp libmql1.so $DIR/libcp libnnz12.so $DIR/libcp libocci.so.12.1 $DIR/libcp libociei.so $DIR/libcp libocijdbc12.so $DIR/libcp libons.so $DIR/libcp liboramysql12.so $DIR/lib
配置
LD_LIBRARY_PATH环境变量。由于 OceanBase 数据库加载
libclntsh.so时,libclntsh.so会依赖于其他的库文件,需要从LD_LIBRARY_PATH的路径中查找相关库文件,故需要在LD_LIBRARY_PATH中配置 OCI 库所在的目录。例如,本文档中的 OCI 库的目录为:
home/admin/oceanbase/lib,配置示例如下:export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/admin/oceanbase/lib:"注意
配置环境变量时,
/home/admin/oceanbase/lib后面的冒号(:)必须加上。配置好 OCI 库并设置
LD_LIBRARY_PATH环境变量后,如果 OBServer 节点依然无法正确加载 OCI 的所有 so 文件,则需要重启 OBServer 节点,重启 OBServer 节点的详细操作,请参见 重启节点。如果不方便重启 OBServer 节点,您可以将上述
$DIR/lib/目录中 10 个 OCI 库的 so 文件全部通过mv命令移动到/lib64目录下,仅在$DIR/lib/目录下保留libclntsh.so文件,即可做到不重启 OBServer 节点,该 OBServer 节点也能加载 OCI 库。cd /home/admin/oceanbase/libmv libclntshcore.so.12.1 /lib64mv libclntsh.so.12.1 /lib64mv libipc1.so /lib64mv libmql1.so /lib64mv libnnz12.so /lib64mv libocci.so.12.1 /lib64mv libociei.so /lib64mv libocijdbc12.so /lib64mv libons.so /lib64mv liboramysql12.so /lib64
配置后注意事项
在集群的所有 OBServer 节点上配置好 OCI 库后,还需要注意以下事项:
由于 OceanBase 数据库在加载 OCI 库时,需要有其他依赖库的支持,故在配置完 OCI 库后,可以在配置后的目录下(本文档中存放在
home/admin/oceanbase/lib)使用ldd命令查看libclntsh.so该 OCI 库依赖于哪些其他 Linux 环境里的库。如果确认缺少了必要的依赖库,请联系技术支持协助配置对应的依赖库。ldd libclntsh.soX86 平台下,V4.2.1 及之后版本的 OBServer 节点只能配置
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm的 OCI 库文件;如果使用更高或者更低版本的 OCI 库,或者多个版本的 OCI 库的 so 文件混用,可能导致 OBServer 节点出现进程崩溃的风险。X86 平台下,V4.2.1(不含该版本)之前版本的 OBServer 节点需要配置 OCI-11.2,具体操作请参见 安装配置 OCI-11.2。
ARM 平台下,所有版本的 OBServer 节点全部只能配置
oracle-instantclient19.10-basic-19.10.0.0.0-1.aarch64.rpm的 OCI 库文件,下载oracle-instantclient19.10-basic-19.10.0.0.0-1.aarch64.rpm请点击 oracle-instantclient19.10-basic-19.10.0.0.0-1.aarch64.rpm。ARM 平台下配置 OCI 库的方法与 X86 平台类似,只需要将
oracle-instantclient19.10-basic-19.10.0.0.0-1.aarch64.rpm中包含的所有 so 文件参考本文的配置方法配置即可。