你好,我们使用OceanBase数据库 了ocp4.2.1社区版,ocp-server重启后,出现如如图错误:
您好!根据您提供的日志信息,看起来在尝试启动OCP服务器时发生了一个错误。具体来说,在执行SQL语句"SELECT * FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = %s"时出现了异常。
这个错误可能是因为TENANT_NAME参数的值(monitor_tenant)不存在于DBA_OB_TENANTS表中。这可能是由于租户已经存在或者没有正确地创建或配置该租户导致的。
为了解决这个问题,请检查以下几点:
编辑 /home/admin/.obd/plugins/ocp-server-ce/4.2.1/start_check.py Python文件 318 上方的skip_create_tenant强制赋值为True,并注释掉如下两行,保存文件。
304 #skip_create_tenant = 'False'
305 #skip_create_tenant = getattr(options, "skip_create_tenant", "False")
vi /home/admin/.obd/plugins/ocp-server-ce/4.2.1/start_check.py
303 # tenant check
304 #skip_create_tenant = 'False'
305 #skip_create_tenant = getattr(options, "skip_create_tenant", "False")
306 skip_create_tenant = 'True'
307 if skip_create_tenant == 'False':
308 sql = "select * from oceanbase.DBA_OB_TENANTS where TENANT_NAME = %s"
309 meta_tenant = server_config.get('ocp_meta_tenant')['tenant_name']
310 meta_max_cpu = server_config['ocp_meta_tenant'].get('max_cpu', 2)
311 meta_memory_size = server_config['ocp_meta_tenant'].get('memory_size', '2G')
312 if server_config.get('ocp_monitor_tenant'):
313 monitor_user = server_config.get('ocp_monitor_username', 'monitor_user')
314 monitor_tenant = server_config['ocp_monitor_tenant']['tenant_name']
315 monitor_max_cpu = server_config['ocp_monitor_tenant'].get('max_cpu', 2)
316 monitor_memory_size = server_config['ocp_monitor_tenant'].get('memory_size', '4G')
317 res = cursor.fetchone(sql, [monitor_tenant])
318 if res:
319 error('tenant', err.EC_OCP_SERVER_TENANT_ALREADY_EXISTS.format({"tenant_ name":monitor_tenant}))
320 res = cursor.fetchone(sql, [meta_tenant])
321 if res:
322 error('tenant', err.EC_OCP_SERVER_TENANT_ALREADY_EXISTS.format({"tenant_name ":meta_tenant}))
323 break
然后 输入如下命令可以正常启动了
obd cluster start ocp
——参考链接。
运行"obd display-trace f6e83e4e-9031-11ee-84fc-fa163e5b4dde"命令以查看更详细的错误日志。
如果日志显示了异常,您可以尝试根据日志中提供的错误代码和错误信息来解决问题。您可以在OceanBase官方文档中查找与该错误相关的信息和解决方案。
问题可能是由于 tenant_name 的值未定义或为空导致的。错误信息中可以看到 "tenant_name": monitor_tenant,这里的 monitor_tenant 可能是一个未定义或为空的变量。
为了解决这个问题,请检查您的代码中定义 monitor_tenant 的部分,确保它被正确赋值。例如:
monitor_tenant = "your_tenant_name"
将 "your_tenant_name" 替换为您实际要使用的租户名。如果 monitor_tenant 是一个从外部获取的值,请确保在调用 start_check 函数之前正确设置了 monitor_tenant 的值。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。