【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】4.1
observer.log (712.1 KB)
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【问题现象及影响】安装社区版4.1最简安装,只安装了个数据库,更多配置中网卡也选择自定义并填写正确。报错日志如附件
【附件】
【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】4.1
observer.log (712.1 KB)
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【问题现象及影响】安装社区版4.1最简安装,只安装了个数据库,更多配置中网卡也选择自定义并填写正确。报错日志如附件
【附件】
提供一下 obd 的log .路径在 ~/.obd/log/obd
看日志 和 上午的一个帖子很像。 应该也是防火墙没关闭 导致的2881 端口被拦截https://ask.oceanbase.com/t/topic/35603723
磁盘是机械盘还是固态盘? 另外在10.210.4.38 机器ps看下是否有observer进程
你需要一次成功的安装体验,可以试试下面建议:
/bin/rm -rf ~/.obd/
更多配置:
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 里已经有很多信息可以看出问题。
/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 的图形化部署,本质上都是自动化部署技术。自动化部署把细节都隐藏了,导致出错的时候用户很难理解为什么。
看一下 OB 入门文档里 关于部署的总结。
2.0 章节介绍-DBA 入门教程-OceanBase文档中心-分布式数据库使用文档
看一下下面这个部署示例
OB 社区版 4.1 和 OCP express 笔记本电脑部署体验 (qq.com)