Oceanbase 安装成功后关闭OCP,在重新启动时报错
使用OBD 启动OCP报如下错误
[admin@obd ~]$ obd cluster start ocp
Get local repositories ok
Search plugins ok
Open ssh connection ok
Load cluster param plugin ok
Check before start ocp-server x
[ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: 'tenant_name'
See https://www.oceanbase.com/product/ob-deployer/error-codes .
Trace ID: 02d391f8-9a97-11ee-8034-000c291a63cd
If you want to view detailed obd logs, please run: obd display-trace 02d391f8-9a97-11ee-8034-000c291a63cd
查看报错日志:
使用 more /home/admin/.obd/log/obd 或报错日志中的 obd display-trace 02d391f8-9a97-11ee-8034-000c291a63cd 查看报错日志
[2023-12-12 19:23:23.870] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: 'tenant_name'
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] Traceback (most recent call last):
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] File "core.py", line 1673, in start_cluster
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] File "core.py", line 1743, in _start_cluster
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] File "core.py", line 184, in call_plugin
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] File "_plugin.py", line 324, in call
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] File "_plugin.py", line 286, in _new_func
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] File "/home/admin/.obd/plugins/ocp-server-ce/4.2.1/start_check.py", line 318, in start_check
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] error('tenant', err.EC_OCP_SERVER_TENANT_ALREADY_EXISTS.format({"tenant_name":monitor_tenant}))
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] File "_errno.py", line 50, in format
[2023-12-12 19:23:23.871] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR] KeyError: 'tenant_name'
[2023-12-12 19:23:23.872] [dbde7188-98e0-11ee-9459-000c291a63cd] [ERROR]
处理方法:
编辑 /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
python
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
然后 输入如下命令可以正常启动了
bash
obd cluster start ocp