---
title: 升级 liboblog 版本后与 observer 无法建连-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 升级 liboblog 版本后与 observer 无法建连相关的常见问题和使用技巧，帮助您快速解决 升级 liboblog 版本后与 observer 无法建连的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 升级 liboblog 版本后与 observer 无法建连

更新时间：2024-02-14 09:01

适用版本： V3.2.x、V4.0.x、V4.1.x、V4.2.x 内容类型：Troubleshoot  

## 适用版本

OceanBase 数据库 V3.2.4 (oceanbase-3.2.4.0-100000072022102819) 及以后版本。

## 问题原因

OceanBase 数据库 V3.2.4 以及之后支持 RPC 安全认证的版本，鉴于后台认证线程的实现，是通过创建 pipe 并修改 pipe 的 size 来当作队列使用的。对于数据迁移服务，会创建很多 liboblog 相关进程，因此每创建一次都会创建 pipe 并修改 pipe 的 size，多个进程创建 pipe 并修改大小会达到系统对于 pipe 的上限，系统调用会返回 EPERM，RPC 安全认证线程会初始化失败且不工作，会导致连接异常。

OS 对于 pipe 相关的限制有以下三个系统参数控制。

- fs.pipe-max-size

  可以设置的单个管道的最大大小（以字节为单位），默认值为 1048576 (1 MB)。
 - fs.pipe-user-pages-hard

  由单个非特权用户（即既没有 CAP_SYS_RESOURCE 也没有 CAP_SYS_ADMIN 功能的用户）创建或设置的所有管道的总大小（以页为单位）的硬性限制。只要为此用户分配给管道缓冲区的页面总数达到此限制，就将拒绝创建新管道的尝试，并且拒绝增加管道容量的尝试。默认值为 0，不应用硬限制。
 - fs.pipe-user-pages-soft

  由单个非特权用户（即既没有 CAP_SYS_RESOURCE 也没有 CAP_SYS_ADMIN 功能的用户）创建或设置的所有管道的总大小（以页为单位）的软限制。只要为此用户分配给管道缓冲区的页面总数达到此限制，用户创建的各个管道将被限制为一页，并且增加管道容量的尝试将被拒绝。默认值为 16384，允许创建多达 1024 个具有默认容量的管道。此值为 0 时，不应用软限制。

## 问题影响

导致 OBServer 无法建连接。

## 解决方法

修改 pipe-user-pages-soft 为 0，取消软限制。

1. 编辑 `sysctl.conf` 配置文件。

   ```shell
   sudo vim /etc/sysctl.conf

   ```

   增加一行参数：

   ```shell
   fs.pipe-user-pages-soft = 0

   ```
 2. 使 `sysctl.conf` 配置生效。

   ```shell
   sudo sysctl -p /etc/sysctl.conf

   ```
 3. 重启对应服务进程。

Previous

[连接 OceanBase 数据库租户报 access denied](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000659766)

Next

[如何排查 RPC 失败的原因](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000740415) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
