创建租户资源池失败-提示MEMORY resource not enough

create resource unit wms_unit1 max_cpu=5,min_cpu=2,memory_size=‘2G’;
Query OK, 0 rows affected (0.015 sec)

obclient [oceanbase]> create resource pool wms_pool1 unit ‘wms_unit1’,unit_num 1;
ERROR 4733 (HY000): zone ‘zone1’ resource not enough to hold 1 unit. You can check resource info by views: DBA_OB_UNITS, GV$OB_UNITS, GV$OB_SERVERS.
server ‘“192.168.2.41:2882”’ MEMORY resource not enough

select * from GV$OB_SERVERS;
±-------------±---------±------±---------±-------------±-----------------±-------------±-----------------±-------------±-------------±------------------±------------------±----------------±-------------------±-----------------±------------------------±-------------±--------------------±------------------------±----------------------+
| SVR_IP | SVR_PORT | ZONE | SQL_PORT | CPU_CAPACITY | CPU_CAPACITY_MAX | CPU_ASSIGNED | CPU_ASSIGNED_MAX | MEM_CAPACITY | MEM_ASSIGNED | LOG_DISK_CAPACITY | LOG_DISK_ASSIGNED | LOG_DISK_IN_USE | DATA_DISK_CAPACITY | DATA_DISK_IN_USE | DATA_DISK_HEALTH_STATUS | MEMORY_LIMIT | DATA_DISK_ALLOCATED | DATA_DISK_ABNORMAL_TIME | SSL_CERT_EXPIRED_TIME |
±-------------±---------±------±---------±-------------±-----------------±-------------±-----------------±-------------±-------------±------------------±------------------±----------------±-------------------±-----------------±------------------------±-------------±--------------------±------------------------±----------------------+
| 192.168.2.43 | 2882 | zone3 | 2881 | 16 | 16 | 3 | 3 | 4294967296 | 4294967296 | 19327352832 | 9663676416 | 805306368 | 19327352832 | 90177536 | NORMAL | 6442450944 | 19327352832 | NULL | NULL |
| 192.168.2.41 | 2882 | zone1 | 2881 | 16 | 16 | 3 | 3 | 4294967296 | 4294967296 | 19327352832 | 9663676416 | 805306368 | 19327352832 | 94371840 | NORMAL | 6442450944 | 19327352832 | NULL | NULL |
| 192.168.2.42 | 2882 | zone2 | 2881 | 16 | 16 | 3 | 3 | 4294967296 | 4294967296 | 19327352832 | 9663676416 | 805306368 | 19327352832 | 92274688 | NORMAL | 6442450944 | 19327352832 | NULL | NULL |

±-------------±---------±------±---------±-------------±-----------------±-------------±-----------------±-------------±-------------±------------------±------------------±----------------±-------------------±-----------------±-------------

obd cluster edit-config myoceanbase
user:
username: admin
password: root123
port: 22
oceanbase-ce:
version: 4.2.1.1
release: 101000062023110109.el7
package_hash: ee47f7d89ad323bd634a5976f6e89f04911f81a4
192.168.2.41:
zone: zone1
192.168.2.42:
zone: zone2
192.168.2.43:
zone: zone3
servers:

  • 192.168.2.41
  • 192.168.2.42
  • 192.168.2.43
    global:
    appname: myoceanbase
    root_password: agP%?s3ld*u}2CS3Y:aXl^?
    mysql_port: 2881
    rpc_port: 2882
    data_dir: /data
    redo_dir: /redo
    home_path: /home/admin/myoceanbase/oceanbase
    cluster_id: 1703128557
    ocp_agent_monitor_password: FifScZOvcb
    proxyro_password: mIXjJh1UeZ
    ocp_meta_password: rYfCFDIosb
    ocp_meta_tenant_log_disk_size: 7G
    enable_syslog_recycle: true
    enable_syslog_wf: false
    max_syslog_file_count: 4
    memory_limit: 6G
    datafile_size: 18G
    system_memory: 2G
    log_disk_size: 18G
    cpu_count: 16
    production_mode: false
    obproxy-ce:
    version: 4.2.1.0
    package_hash: 0aed4b782120e4248b749f67be3d2cc82cdcb70d

集群内存不足了,你算算集群中 192.168.2.41 这个节点还能给这个租户拿出 2G 的内存来么?一共 6G 内存,给了 sys 租户 2G,给了其他租户多少?

或者你在报错之后,再执行一条 select last_trace_id(); 拿着得到的结果,在 41 节点的日志里 grep 一下,看看具体的日志是什么,日志里一般会打印你剩余的内存和你要分配的内存信息。

obclient [oceanbase]> create resource pool wms_pool1 unit ‘wms_unit1’,unit_num 1;
ERROR 4733 (HY000): zone ‘zone1’ resource not enough to hold 1 unit. You can check resource info by views: DBA_OB_UNITS, GV$OB_UNITS, GV$OB_SERVERS.
server ‘“192.168.2.41:2882”’ MEMORY resource not enough

obclient [test]> select last_trace_id();
+------------------------------------+
| last_trace_id()                    |
+------------------------------------+
| Y584A0B9E1F14-00060BBAC872F5FE-0-0 |
+------------------------------------+
1 row in set (0.004 sec)

obclient [test]> quit
Bye

[xiaofeng.lby@obvos-dev-d3 /home/xiaofeng.lby]
$cd obn.obs0/log/

[xiaofeng.lby@obvos-dev-d3 /home/xiaofeng.lby/obn.obs0/log]
$grep Y584A0B9E1F14-00060BBAC872F5FE-0-0 *

obd cluster edit-config myoceanbase
已经将memory-limit增大
图片
之后obd cluster reload myoceanbase,有报错,但能登录。


之后创建资源池扔报错

select a.zone,concat(a.svr_ip,’:’,a.svr_port) observer,a.CPU_CAPACITY cpu_total, (CPU_CAPACITY-cpu_assigned) cpu_free, round(a.memory_limit/1024/1024/1024 ) mem_total_gb, round((memory_limit-mem_assigned)/1024/1024/1024) mem_free_gb, round(a.LOG_DISK_CAPACITY/1024/1024/1024) logdisk_total, round((a.LOG_DISK_CAPACITY-a.LOG_DISK_ASSIGNED)/1024/1024/1024) logdisk_free ,
round(a.DATA_DISK_CAPACITY/1024/1024/1024) data_total ,round((DATA_DISK_CAPACITY-a.DATA_DISK_IN_USE)/1024/1024/1024) data_free ,b.status,usec_to_time(b.start_service_time) start_service_time, usec_to_time(b.stop_time) stop_time ,b.build_version from GV$OB_SERVERS a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port) order by a.zone, a.svr_ip;
可以调大memory_limit或者memory_limit_percentage 设置OB的使用内存大小。
修改内存大小:alter system set memory_limit=‘XXG’;

谢谢您耐心的答复,问题已经按您的方法解决!

1 个赞

哦 抱歉 谢谢 可能有的地方连起来了。