暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

实战教程第二章2.12:常见问题

131

机器环境初始化问题

ulimit 设置不生效

  • 现象
ulimit -a
...
stack size              (kbytes, -s) 1024
...
复制

此时,使用 admin 用户通过 ulimit -s 命令修改栈大小,操作系统报错 cannot modify limit: Operation not permitted 。

ulimit 问题设置不对,可能导致进程 OBSERVER 无法启动。

  • 原因

admin 用户 ulimit 配置未生效的原因可能是由于操作系统关闭了 PAM,PAM 用于限制登录用户的 ulimit 配置,如果不开启 PAM,则会使用 SSHD 的默认值(即 1024)。

  • 解决办法

修改 SSHD 配置文件 sshd_config ,取消对 UsePAM yes 的注释。

sudo vim /etc/ssh/sshd_config
UsePAM yes
复制

重启 SSHD 服务。

sudo systemctl restart sshd
复制

再次修改 ulimit.conf 文件

vim  /etc/security/limits.conf
* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
* soft stack unlimited
* hard stack unlimited

复制

重新登录检查实际值,用命令:ulimit -a 。


OBD 部署问题

目录非空

  • 现象
Initializes cluster work home x
[ERROR] fail to init zone1(172.20.249.53) data path: /data is not empty
复制
  • 原因

CentOS 8.0 刚初始化的文件系统里目录里会有一个默认文件夹 lost+found 。

  • 解决办法

清空刚建的文件系统目录。

sudo /bin/rm -rf /data/* /redo/*


其他通用报错

  • 现象

obd 命令出错。

  • 原因

查看 obd 命令日志。

vim ~/.obd/log/obd + R
复制
  • 解决办法

根据错误描述去解决。


OBSERVER 启动失败

找不到共享库

  • 现象

手动启动进程 OBSERVER ,提示 共享库找不到。

[admin@obce02 ~]$ cd oceanbase-ce/
[admin@obce02 oceanbase-ce]$ bin/observer
bin/observer: error while loading shared libraries: libmariadb.so.3: cannot open shared object file: No such file or directory
复制
  • 原因

没有将 OceanBase 的 LIB 加到环境变量 LD_LIBRARY_PATH 里。

LIB 目录如下:

[admin@obce02 ~]$ tree oceanbase-ce/
oceanbase-ce/
├── admin
├── bin
│   └── observer -> /home/admin/.obd/repository/oceanbase-ce/3.1.0/84bd2fe27f8b8243cc57d8a3f68b4c50f94aab80/bin/observer
<....>
├── lib
│   ├── libaio.so -> /home/admin/.obd/repository/oceanbase-ce/3.1.0/84bd2fe27f8b8243cc57d8a3f68b4c50f94aab80/lib/libaio.so
│   ├── libaio.so.1 -> /home/admin/.obd/repository/oceanbase-ce/3.1.0/84bd2fe27f8b8243cc57d8a3f68b4c50f94aab80/lib/libaio.so.1
│   ├── libaio.so.1.0.1 -> /home/admin/.obd/repository/oceanbase-ce/3.1.0/84bd2fe27f8b8243cc57d8a3f68b4c50f94aab80/lib/libaio.so.1.0.1
│   ├── libmariadb.so -> /home/admin/.obd/repository/oceanbase-ce/3.1.0/84bd2fe27f8b8243cc57d8a3f68b4c50f94aab80/lib/libmariadb.so
│   └── libmariadb.so.3 -> /home/admin/.obd/repository/oceanbase-ce/3.1.0/84bd2fe27f8b8243cc57d8a3f68b4c50f94aab80/lib/libmariadb.so.3
复制
  • 解决办法

将 OceanBase 的 LIB 加到环境变量 LD_LIBRARY_PATH 里。也可以写到 .bash_profile 中。

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/oceanbase-ce/lib/' >> ~/.bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/oceanbase-ce/lib/
复制


附录:

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论