首批通过分布式安全可靠测评,为关键业务系统打造
附:安装配置 OCI
更新时间:2024-03-04 13:37:23
OceanBase 数据库的 Oracle 租户通过 DBLink 访问远端 Oracle 数据库时,需要安装配置 OCI-11.2。
操作步骤
您可以参考本文档在集群的所有 OBServer 节点上安装并配置 OCI-11.2。
下面以一台 OBServer 节点为例,提供 OCI 库的安装配置指导。
访问 Oracle 数据库官网,选择对应的版本,下载 OCI 库。
使用
admin用户登录 OBServer 节点,将下载好的 RPM 包拷贝到 OBServer 节点上,执行以下命令,安装 OCI 库。sudo rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpmOCI 库安装成功后,执行以下命令,获取 OCI 库的安装目录。
rpm -ql oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64配置 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/11.2/client64/lib/将 OCI 库安装目录中的
libclntsh.so.11.1、libnnz11.so、libociei.so等 3 个必要库的文件拷贝到 OceanBase 数据库节点的安装目录中。其中,
$DIR需要替换成 OceanBase 数据库节点的安装目录, 本文以 OceanBase 数据库节点的安装目录为/home/admin/oceanbase为例。注意
将 OCI 安装目录中的 3 个 so 文件拷贝到 OceanBase 数据库节点的安装目录下后,再在安装目录下将
libclntsh.so.11.1文件拷贝一份并重命名为libclntsh.so(或者也可以在安装目录下建立一个指向安装目录中libclntsh.so.11.1库文件的软链接,并将软连接命名为libclntsh.so)。cp libclntsh.so.11.1 $DIR/libcp libclntsh.so.11.1 $DIR/lib/libclntsh.socp libnnz11.so $DIR/libcp libociei.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/目录中 3 个 OCI 库的 so 文件全部通过mv命令移动到/lib64目录下,仅在$DIR/lib/目录下保留libclntsh.so文件,即可做到不重启 OBServer 节点,该 OBServer 节点也能加载 OCI 库。cd /home/admin/oceanbase/libmv libclntsh.so.11.1 /lib64mv libnnz11.so /lib64mv libociei.so /lib64
配置后注意事项
在集群的所有 OBServer 节点上配置好 OCI 库后,还需要注意以下事项:
由于 OceanBase 数据库在加载 OCI 库时,需要有其他依赖库的支持,故在配置完 OCI 库后,可以在配置后的目录下(本文档中存放在
home/admin/oceanbase/lib)使用ldd命令查看libclntsh.so该 OCI 库依赖于哪些其他 Linux 环境里的库。如果确认缺少了必要的依赖库,请联系技术支持协助配置对应的依赖库。ldd libclntsh.soX86 平台下,V4.2.1(不含该版本)之前版本的 OBServer 节点只能配置
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64的 OCI 库文件;如果使用更高或者更低版本的 OCI 库,或者多个版本的 OCI 库的 so 文件混用,可能导致 OBServer 节点出现进程崩溃的风险。X86 平台下,V4.2.1 及之后版本的 OBServer 节点需要配置 OCI-12.2,具体操作请参见 安装配置 OCI-12.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 文件参考本文的配置方法配置即可。