OceanBaseでは、RS(Root Service)はクラスタのリソース管理や分散戦略の実行を担当するコアサービスとして、クラスタにおいて極めて重要な役割を果たします。また、RSに計算およびストレージリソースを提供するSYSテナントも、マルチレプリカによる自己選出の方式で高可用性を実現しています。規模が大きい、または負荷が高い環境では、ごくまれに(極端なシナリオやハードウェアの問題など)、SYSテナントのキュー積み上がりによる問題が発生する可能性があります。このセクションでは、そのような状況に対処するための緊急対応策を紹介します。
緊急対応方法
sys テナントのキューに積もりが発生した場合、以下の方法で対処できます。
sysテナントリソースの拡張
各テナントへのリソース割り当て方法は以下のとおりです。
obclient> SELECT a.tenant_name,a.tenant_id,b.name unit_config,c.name pool_name,b.max_cpu,b.min_cpu FROM OCEANBASE.DBA_OB_TENANTS a, OCEANBASE.DBA_OB_UNIT_CONFIGS b, OCEANBASE.DBA_OB_RESOURCE_POOLS c WHERE a.tenant_id=c.tenant_id AND b.unit_config_id = c.unit_config_id ORDER BY a.tenant_id desc;以下のコマンドを実行し、
sysテナントのCPUとメモリリソースを拡張します。ALTER RESOURCE UNIT unit_config_name min_cpu = 2,max_cpu = 2,memory_size = '2G',max_iops = 10000,min_iops = 10000;
stop serverの実行
sys テナントのキューに積もりが発生した場合、stop server を実行してRS/SYSテナントが配置されているマシンを隔離できます。
obclient> ALTER SYSTEM STOP SERVER "xx.xx.xx.xx:2882";
問題ノードの再起動
問題のあるRSが配置されているOBノードを再起動します。詳細については、OBServerノードの再起動を参照してください。