OceanBaseでは、業務テナントのMEMStoreメモリが満杯になり書き込みがブロックされるケース以外にも、500テナントやsysテナントなど、他のモジュールのメモリ不足やリークが原因で書き込みやクエリに問題が発生することがあります。本記事では、システムモジュールのメモリ不足やリークに対する緊急対処方法について説明します。
緊急対処方法
OBシステムモジュールのメモリ不足やリークは、一般的に特殊な状況に遭遇したり、ソフトウェアのバグが発生したりした場合に起こります。緊急時の対処法としては、通常、問題のノードを隔離するか再起動することです。
OBServerノードの再起動
システム内部モジュールのメモリ問題については、一般的にOBServerノードの再起動で解決できます。OCPを使用して指定ノードの再起動操作を実行することを推奨します。OBServerノードの再起動の詳細については、OBServerノードの再起動を参照してください。
問題ノードまたはレプリカの隔離
内部モジュールでメモリリークまたはメモリ不足が疑われる場合、ノードの再起動では解決できない場合は、問題ノードの隔離を検討できます。
問題ノードに対しては、
stop server操作を実行できます。以下のステートメントを参照してください。ALTER SYSTEM STOP SERVER 'ip:port' [,'ip:port'...] [ZONE='zone']例:
alter system stop server '10.0.0.0:2882' zone='z1;オペレーションゾーンの詳細については、クラスタ管理セクションの一般的なクラスタ管理を参照してください。
問題ノードを隔離するほか、状況に応じて、問題が発生したレプリカ全体を
stop zoneで隔離することもできます。以下のステートメントを参照してください。ALTER SYSTEM STOP ZONE zone_name;例:
ALTER SYSTEM STOP ZONE z4;