リカバリしたスタンバイテナントをプライマリテナントに切り替えた後、もし低バージョンのバックアップデータを高バージョンのクラスタに復元した場合は、そのテナントをアップグレードする必要があります。
制限事項
現在、OceanBaseデータベースV4.1.0.0以降のバージョンでのみ、リカバリ完了後に以下の方法でテナントをアップグレードできます。
クイックリカバリではこの機能はサポートされていません。
前提条件
リカバリしたスタンバイテナントがプライマリテナントに切り替わっていること。リカバリしたスタンバイテナントをプライマリテナントに切り替える詳細な操作については、スタンバイテナントをプライマリテナントに切り替えるを参照してください。
操作手順
rootユーザーで、新しくリカバリしたテナントが存在するクラスタのsysテナントにログインします。アップグレードコマンドを実行して、テナントをアップグレードします。
ステートメントは以下のとおりです:
ALTER SYSTEM RUN UPGRADE JOB "UPGRADE_ALL" TENANT = tenant_name;ここで、
tenant_nameは新しくリカバリしたテナント名です。複数のリカバリテナントを同時にアップグレードすることができ、複数のテナント名は英字のカンマ(,)で区切ります。アップグレード後、現在のクラスタのバージョン番号に応じて、以下のステートメントを実行して、テナントが正常にアップグレードされたかどうかを確認します。
現在のクラスタがV4.2.1.1以下のバージョンの場合
クエリ例は以下のとおりです:
obclient [(none)]> SELECT distinct(value) FROM oceanbase.GV$OB_PARAMETERS WHERE tenant_id =1004;ここで、
1004は確認対象のテナントのtenant_idであり、tenant_idはビューDBA_OB_TENANTSを照会することで取得できます。実行が成功した場合、クエリ結果が1行であり、かつ
valueに現在のクラスタの4桁のバージョン番号(例:4.2.1.0)が表示されている場合、テナントのアップグレードは成功したことを意味します。現在のクラスタがV4.2.1.1以上のバージョンの場合
クエリ例は以下のとおりです:
obclient [(none)]> SELECT count(*) FROM oceanbase.DBA_OB_CLUSTER_EVENT_HISTORY WHERE event = 'UPGRADE_ALL' AND value3 ='4.2.1.1' AND value5 = '1004';ここで:
4.2.1.1は現在のクラスタの4桁のバージョン番号を表します。1004は確認対象のテナントのtenant_idであり、tenant_idはビューDBA_OB_TENANTSを照会することで取得できます。
クエリ結果が
0以外の場合、テナントのアップグレードは成功したことを意味します。