OASは現在、以下の2つのバックグラウンドタスクを提供しています:
異常イベント分析:システムが異常イベントを検出すると、そのイベントに関連するSQLを自動的に分析します。
SQLの日常巡回検査:定期的にクラスタ内のSQLを巡回し、疑わしいSQLを発見します。
システムが異常イベントに関連するSQLを分析した場合、または日常巡回検査中にSQL実行計画の悪化を検出した場合、OASは以下の操作を自動的に実行できます:
PlanCacheの自動リフレッシュ:SQLの実行計画キャッシュをクリアし、オプティマイザーによって実行計画の再生成を促します。
Outlineの自動バインド:SQLの過去の実行計画のパフォーマンス統計値に基づき、実行計画が悪化したSQLに対して、過去にCPU時間が低かった実行計画を自動的にバインドします。
自動スロットリング:ホストのCPU使用率が継続的に85%を超えると、システムはこの異常の根本原因となるSQLを分析し、指定された期間内にその根本原因SQLの単一マシンでの同時実行数を自動的に制限します。
操作手順
OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、**インスタンス**をクリックします。
インスタンスリストで対象のインスタンスを見つけ、インスタンス名をクリックしてインスタンスのダッシュボードに入ります。
左側のナビゲーションペインで**診断をクリックし、診断ページで根本原因診断**タブを選択します。
**根本原因診断タブの右側で、自律設定**をクリックします。
ポップアップウィンドウで、機能スイッチをオンにし、以下の設定を行います:
PlanCacheの自動リフレッシュ:有効状態と実行タイミングを設定します。
Outlineの自動バインド:有効状態と実行タイミングを設定します。
自動スロットリング:自動スロットリングのトリガー条件とパラメータを設定します。

設定が適用されないオブジェクトの設定(オプション):データベース、テナント、またはSQLのブラックリストを設定します。システムの自己回復時にこれらのオブジェクトは自動的に無視されます。
通知設定:DingTalkグループ通知のWebhookアドレスを設定します。具体的には以下のとおりです:
DingTalkグループでボットを作成し、Webhookアドレスのリンクをコピーします。取得方法については、カスタムボットのWebhookアドレスの取得をご参照ください。
リンクをテキストボックスに入力し、**確認**をクリックします。OASはそのDingTalkグループに認証コードを送信します。
認証コードを入力して検証を完了します。
説明
- システム自律機能を有効にすると、診断 > リアルタイム診断 > 最適化履歴の表示 > 最適化履歴で、自動リフレッシュおよび実行計画の自動バインディングの記録を照会できます。関連する記録の操作元は「システム自律」です。
- 現在、自己修復機能はSELECTタイプのSQLのみをサポートしています。
PlanCacheの自動リフレッシュ
SQL巡回時:実行計画が悪化しているSQLに対してのみ、PlanCacheを自動的にリフレッシュします。
根本原因分析時:異常イベントに関連するすべてのSQLに対して、PlanCacheを自動的にリフレッシュします。
Outlineの自動バインディング
バインディング前のチェック:
システムはSQLの実行計画をリフレッシュしようと試み、新しく生成された実行計画を観測します。
新しい実行計画のCPU時間が過去の実行計画よりも20%低い場合、自己修復が成功したと見なし、Outlineをバインドしません。
より良い実行計画が生成されない場合、バインディング操作を実行し、上記のDingTalkグループにアラート通知を送信します。
バインディング後の観測:
バインディング完了後、システムはそのSQLの実行計画を継続的に観測します。
バインディング後により良い実行計画が生成されない場合、バインディング操作をロールバックし、上記のDingTalkグループにアラート通知を送信します。
注意事項:
Outlineの自動バインディングは、過去の実行計画のパフォーマンス統計値に基づき、実行計画が悪化したSQLに対して、過去のCPU時間が低かった実行計画をバインドします。
大規模アカウントと小規模アカウントが混在する環境では、バインディング操作が必ずしもSQLのパフォーマンス向上を保証するわけではありません。自己修復のアラート通知を密接に監視し、バインディングの効果をタイムリーに確認してください。
コアSPM(SQL Plan Management)が有効なクラスタでは、SPM機能との競合を避けるため、Outlineの自動バインディングを有効にすることは推奨されません。
自動レート制限
システムが根本原因SQLを特定できた場合:
レート制限期間中、根本原因SQLに対して最大同時実行数を設定します。
レート制限時間が最大制限時間に達すると、システムは自動的にレート制限を解除します。
根本原因SQLのアクティブセッションを同時に閉じる設定がある場合、自動レート制限と同時に、根本原因SQLのアクティブセッションを閉じます。
システムが根本原因SQLを特定できなかった場合:何も操作しません。