社区版4.1试用安装数据库报错

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】4.1
observer.log (712.1 KB)

【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【问题现象及影响】安装社区版4.1最简安装,只安装了个数据库,更多配置中网卡也选择自定义并填写正确。报错日志如附件

【附件】

提供一下 obd 的log .路径在 ~/.obd/log/obd

obd.txt (143.4 KB)

看日志 和 上午的一个帖子很像。 应该也是防火墙没关闭 导致的2881 端口被拦截https://ask.oceanbase.com/t/topic/35603723

我应该是没开防火墙的。。

磁盘是机械盘还是固态盘? 另外在10.210.4.38 机器ps看下是否有observer进程

你需要一次成功的安装体验,可以试试下面建议:

清理环境重来。

/bin/rm -rf ~/.obd/

设置参数时

节点配置

  • 节点 IP 都填真实的 IP,不要填 127.0.0.1 .
  • 部署用户 选 admin。不要选 root ,习惯不好。

集群配置

  • 数据目录和日志目录都默认,不用改。默认应该是 /home/admin/集群名/oceanbase/store

更多配置:

  • devname : 网卡设备不要选自动,选择一个 IP 所在网卡。这个IP 不要是 127.0.0.1 那个,也不要填 lo 。就填有实际 IP 的。

  • datafile_size : 指定大小,不要填自动分配。指定 10G .如果你盘大,多写一些。比如说 50G .也不用太大(浪费空间)。

  • log_disk_size:指定大小,不要填自动分配。指定 20G (如果空间够的话)

  • memory_limit :指定大小,你内存如果超过10G ,这里可以大一些。这个值最小 8G 。你指定 16G 更好。

  • system_memory : 指定大小。最小 1G。你内存很大,这里指定 5G 也够。

  • cpu_count : 指定 16 以上。

分析问题的方法

observer.log

你的 observer.log 里已经有很多信息可以看出问题。

/opt/didaoceanBase/oceanbase/bin/observer -r 127.0.0.1:2882:2881 -p 2881 -P 2882 -z zone1 -n didaoceanBase -c 1 -d /opt/didaoceanBase/oceanbase/store -i lo -o __min_full_resource_pool_memory=2147483648,enable_syslog_recycle=True,enable_syslog_wf=False,max_syslog_file_count=4,memory_limit=23G,datafile_size=1719G,system_memory=5G,log_disk_size=71G,cpu_count=16

没有指定 datafile 和logfile 大小导致都用了默认值,这两个默认值都是根据所在文件系统剩余空间计算的。datafile 和 log disk 里后面都会有初始化空间(预分配)逻辑,两个都默认值就很容易导致空间不足。
另外,ip 选了 127.0.0.1 . 也不是不可以,只是后面从其他节点访问这个节点 2881 就不通 。有真实的 ip 就填真实的ip
网卡设备名 -i lo ,lo 这个是 loopback 网卡,选这个就错了。

[2023-06-15 11:24:39.765832] ERROR issue_dba_error (ob_log.cpp:1792) [2251][][T0][Y0-0000000000000000-0-0] [lt=32][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=-4009, file="ob_local_device.cpp", line_no=1405, info="Fail to fallocate block file, ")
[2023-06-15 11:24:39.765844] EDIAG [SHARE] open_block_file (ob_local_device.cpp:1405) [2251][][T0][Y0-0000000000000000-0-0] [lt=12][errcode=-4009] Fail to fallocate block file, (ret=-4009, sys_ret=-1, store_path_="/opt/didaoceanBase/oceanbase/store/sstable/block_file", adjust_file_size=1845762195456, errmsg="Operation not supported") BACKTRACE:0xd7dd679 0x5a0c58c 0x5a0c09f 0x5a0be94 0x5a0bcc7 0xcea8943 0xce9b4e0 0xaf76a4a 0x7dfe718 0x59e4b21 0x7fd5a6290555 0x3ea1f0c
[2023-06-15 11:24:39.765916] WDIAG [SHARE] start (ob_local_device.cpp:246) [2251][][T0][Y0-0000000000000000-0-0] [lt=70][errcode=-4009] Fail to open block file, (ret=-4009)
[2023-06-15 11:24:39.765925] WDIAG [STORAGE.BLKMGR] start (ob_block_manager.cpp:212) [2251][][T0][Y0-0000000000000000-0-0] [lt=6][errcode=-4009] start io device fail(ret=-4009)
[2023-06-15 11:24:39.765935] ERROR issue_dba_error (ob_log.cpp:1792) [2251][][T0][Y0-0000000000000000-0-0] [lt=8][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=-4009, file="ob_server.cpp", line_no=680, info="start block manager fail")
[2023-06-15 11:24:39.765941] EDIAG [SERVER] start (ob_server.cpp:680) [2251][][T0][Y0-0000000000000000-0-0] [lt=6][errcode=-4009] start block manager fail(ret=-4009, ret="OB_IO_ERROR") BACKTRACE:0xd7dd679 0x5a0ebed 0x5a0e711 0x5a0e512 0x59effe2 0x7e00940 0x7dfee9c 0x59e4b21 0x7fd5a6290555 0x3ea1f0c

这个就是 blockfile 预分配,报错了。有多种可能原因。是空间不足,还是权限不对导致目录不在。 前面应该是哪里设置了 自定义目录 /opt/didaoceanBase/ 。 在没有理解 OB的部署目录之前,不建议自己修改目录。

建议

OBD 的命令行部署,OBD WEB 的图形化部署,本质上都是自动化部署技术。自动化部署把细节都隐藏了,导致出错的时候用户很难理解为什么。

  1. 看一下 OB 入门文档里 关于部署的总结。
    2.0 章节介绍-DBA 入门教程-OceanBase文档中心-分布式数据库使用文档

  2. 看一下下面这个部署示例
    OB 社区版 4.1 和 OCP express 笔记本电脑部署体验 (qq.com)

2 个赞