【 使用环境 】测试环境 虚拟机 麒麟V10
【 OB or 其他组件 】OB
【 使用版本 】4.2.1.9
【问题描述】使用odb web集群部署节点配置 三台虚拟机地址为192.168.10.120,192.168.10.121,192.168.10.122
【复现路径】节点配置 OBServer 节点配置
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
1 个赞
论坛小助手
#3
根据文档库中的信息,使用 OBD(OceanBase Deployer)进行 OceanBase 数据库的白屏化部署,可以通过 OBD 的 Web 界面完成集群的配置和部署。以下步骤可以帮助您完成三台虚拟机的节点配置:
1. 准备工作
确保三台虚拟机已经安装好操作系统,并且网络互通。每台虚拟机的 IP 地址分别为:
- 192.168.10.120
- 192.168.10.121
- 192.168.10.122
2. 安装 OBD
在任意一台虚拟机上安装 OBD,推荐在 192.168.10.120 上安装 OBD 作为中控机。安装命令如下:
# 下载 OBD 安装包
wget https://mirrors.oceanbase.com/obd/obd-1.4.0-1.el7.x86_64.rpm
# 安装 OBD
sudo rpm -ivh obd-1.4.0-1.el7.x86_64.rpm
3. 配置 OBD
启动 OBD 的 Web 界面:
obd cluster deploy -c <cluster_name> -C <config_file>
其中 <cluster_name>
是您要创建的集群名称,<config_file>
是配置文件的路径。配置文件可以使用 OBD 的 Web 界面生成。
4. 使用 OBD Web 界面配置集群
- 打开浏览器,访问 OBD 的 Web 界面,地址为
http://192.168.10.120:8080
。
- 在 Web 界面中,选择“集群管理” → “新建集群”。
- 输入集群名称,例如
obdemo
。
- 添加 Zone,分别为
zone1
、zone2
和 zone3
。
- 为每个 Zone 添加 OBServer 节点,分别对应三台虚拟机的 IP 地址:
-
192.168.10.120
对应 zone1
-
192.168.10.121
对应 zone2
-
192.168.10.122
对应 zone3
5. 配置 OBProxy
- 在 OBD Web 界面中,选择“组件管理” → “OBProxy”。
- 添加 OBProxy 节点,可以选择在任意一台虚拟机上部署 OBProxy,例如
192.168.10.120
。
- 配置 OBProxy 的监听端口,例如
2881
。
6. 部署集群
- 在 OBD Web 界面中,选择“集群管理” → “部署集群”。
- 选择您刚才创建的集群
obdemo
,点击“部署”按钮。
- 等待部署完成,部署过程中可以查看日志以确保没有错误。
7. 验证集群
- 使用
obclient
连接到集群,验证集群是否正常运行:obclient -h192.168.10.120 -P2881 -uroot@sys#obdemo -p<password>
- 查询
DBA_OB_SERVERS
视图,确认所有节点均已加入集群:SELECT * FROM oceanbase.DBA_OB_SERVERS;
以上步骤基于 OBD 的 Web 界面完成了 OceanBase 数据库的白屏化部署。如果您在部署过程中遇到任何问题,可以参考 OBD 的官方文档或联系 OceanBase 的技术支持团队。 [3], [4]
检索到的文档如下:
- 单机在线转分布式部署
- 添加节点
- 使用命令行部署 OceanBase 数据库生产环境
- 部署 OceanBase 集群
- 升级 OceanBase 集群
1 个赞
辞霜
#4
你所遇到的问题描述一下,提供一下配置参数
memory_limit
system_memory
各个租户的内存大小
1 个赞
辞霜
#7
你系统内存多少,memory_limit总大小>system_memory+所有租户内存
三台虚拟机,每台虚拟机的配置都是8G内存,50G硬盘
论坛小助手
#9
根据您提供的信息,OBD 在检查节点时报告了内存不足的问题。具体错误信息如下:
-
OBD-2000:
(192.168.10.121) not enough memory. (Free:...)
-
OBD-1007:
(192.168.10.121) The value of the ulimit parameter...
-
OBD-1007:
(192.168.10.122) The value of the ulimit parameter...
问题分析
-
内存不足:OBD 报告 192.168.10.121 节点内存不足。根据您的配置,每台虚拟机的内存为 8GB,这可能不足以满足 OceanBase 的默认内存需求。
-
ulimit 参数设置不当:OBD 报告 192.168.10.121 和 192.168.10.122 节点的
ulimit
参数设置不当。
解决方案
1. 调整内存配置
您可以减少 memory_limit
和 system_memory
的值,以适应 8GB 的内存限制。具体步骤如下:
-
进入 OBD Web 界面:
- 打开浏览器,访问
http://192.168.10.120:8080
。
-
编辑集群参数:
- 选择“集群管理” → “编辑集群”。
- 找到
memory_limit
和 system_memory
参数,将其值调整为适合 8GB 内存的值。例如:
-
memory_limit
设置为 4G
。
-
system_memory
设置为 2G
。
-
保存并重新部署:
- 保存修改后的参数。
- 重新部署集群,确保所有节点都能通过检查。
2. 调整 ulimit 参数
-
编辑 /etc/security/limits.conf
文件:
-
添加以下内容:
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
-
编辑 /etc/sysctl.conf
文件:
- 在每台虚拟机上执行以下命令,编辑
sysctl.conf
文件:sudo vi /etc/sysctl.conf
-
添加以下内容:
fs.file-max = 65535
-
应用更改:
- 执行以下命令使更改生效:
sudo sysctl -p
-
重启虚拟机:
- 为了确保所有更改生效,建议重启每台虚拟机:
sudo reboot
验证
-
重新运行 OBD 检查:
- 在 OBD Web 界面中,重新运行检查步骤,确保所有节点都能通过检查。
-
部署集群:
参考文档
希望以上步骤能帮助您解决内存不足和 ulimit
参数设置不当的问题。如果仍有问题,请联系 OceanBase 的技术支持团队。
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
1 个赞
辞霜
#10
那你最多给7G的memory_limit
system_memory=1G
每个租户给2G试试吧
还是不行,三台虚拟机都报内存不足,OBD-2000: (192.168.10.121) not enough memory. (Free: 5G, Buff/Cache: 699M, Need: 7G)