本記事では、コマンドラインを使用してアービトレーションサービスのバージョンをアップグレードする方法について説明します。
注意
OceanBaseクラスタは、V4.3.0 BetaからV4.3.1 Betaへのアップグレードをサポートしています。V4.2.xシリーズ以降のバージョンからV4.3.1 Betaへのアップグレードは現在サポートされていません。今後のバージョン進化に伴い、V4.2.xからV4.3.xへのアップグレードパスのサポートが追加される予定です。
アップグレード制限
OceanBaseクラスタがこのアービトレーションサービスに関連付けられている場合、以下の制限があります:
OceanBaseクラスタのバージョンをアップグレードする際は、まずアービトレーションサービスのバージョンをアップグレードし、その後でOceanBaseクラスタのバージョンをアップグレードする必要があります。
アップグレードする新しいバージョンとすべての関連クラスタのバージョンが互換性があることを確認する必要があります。2つのバージョンが互換性があるかどうかを判断するには、
oceanbase_upgrade_dep.ymlファイル内のバージョン説明を参照する必要があります。例えば、バージョンAのcan_be_upgraded_toプロパティがB(つまりBのバージョン番号がAより大きい)である場合、BバージョンはAバージョンと互換性があることを意味します。したがって、対応するBバージョンのアービトレーションサービスもAバージョンのOceanBaseクラスタと互換性があります。oceanbase_upgrade_dep.ymlファイルの詳細については、OceanBaseクラスタのバージョンアップグレードに関する OceanBaseクラスタのアップグレード の 手順1:oceanbase_upgrade_dep.ymlファイルの分析 セクションを参照してください。
説明
システムテナントを使用して、ビュー oceanbase.DBA_OB_ARBITRATION_SERVICE を照会することで、このOceanBaseクラスタがアービトレーションサービスに関連付けられているかどうかを確認できます。
手順
ステップ1:アップグレードの手順を確認する
OceanBaseクラスタのバージョンアップグレードに関するドキュメントのOceanBaseクラスタのアップグレードにある ステップ1:oceanbase_upgrade_dep.ymlファイルを分析する のセクションを参照し、現在のバージョンからターゲットバージョンへのアップグレードシーケンスを確認してください。アップグレードシーケンスに基づいて、アップグレードの手順は次のとおりです:
現在のバージョンとターゲットバージョンの間にバリアバージョンが存在する場合、アップグレードの手順は以下のとおりです:
- アービトレーションサービスのバージョンをまずバリアバージョンにアップグレードします。
- (オプション)このアービトレーションサービスに関連付けられたOceanBaseクラスタがある場合、そのすべてのクラスタをバリアバージョンにアップグレードします。
- その後も他のバリアバージョンが存在する場合、アービトレーションサービスとOceanBaseクラスタがターゲットバージョンの直前のバリアバージョンになるまで、ステップ1〜2を繰り返します。
- アービトレーションサービスのバージョンをターゲットバージョンにアップグレードします。
- このアービトレーションサービスに関連付けられたすべてのOceanBaseクラスタをターゲットバージョンにアップグレードします。
現在のバージョンとターゲットバージョンの間にバリアバージョンが存在しない場合、アップグレードの手順は以下のとおりです:
- アービトレーションサービスのバージョンをターゲットバージョンにアップグレードします。
- (オプション)このアービトレーションサービスに関連付けられたOceanBaseクラスタがある場合、そのすべてのクラスタをターゲットバージョンにアップグレードします。
例:
アップグレードシーケンスが以下のようになっていると仮定します:
- V4.1.0.0-100000982023031415 > V4.1.0.0 > V4.1.0.1(barrier) > V4.2.0.0
- V4.1.0.0 > V4.1.0.1 > V4.2.0.0
- V4.3.0.0 > V4.3.0.1 > V4.3.1.0
以下では、2レプリカのOceanBaseクラスタにアービトレーションサービスを追加したモデルを例に、アップグレードの手順を説明します:
アップグレードパスにバリアバージョンが含まれている場合。現在のバージョンがV4.1.0.0-100000982023031415の場合、アップグレードの手順は以下のとおりです:
- まず、アービトレーションサービスのバージョンをV4.1.0.0-100000982023031415からV4.1.0.1(barrier)にアップグレードする必要があります。
- 次に、OceanBaseクラスタをV4.1.0.0-100000982023031415からV4.1.0.1(barrier)にアップグレードします。
- アービトレーションサービスのバージョンをターゲットバージョンV4.2.0.0にアップグレードします。
- OceanBaseクラスタをターゲットバージョンV4.2.0.0にアップグレードします。
アップグレードパスにバリアバージョンが含まれていない場合。現在のバージョンがV4.3.0.0の場合、アップグレードの手順は以下のとおりです:
- アービトレーションサービスのバージョンをターゲットバージョンV4.3.1.0にアップグレードします。
- OceanBaseクラスタをターゲットバージョンV4.3.1.0にアップグレードします。
(オプション)ステップ2:ダウングレード状態のログストリームがあるかどうかを確認する
今回のアップグレードで対象となるアービトレーションサービスがOceanBaseクラスタに関連付けられていない場合は、この手順を無視してください。
アービトレーションサービスのバージョンをアップグレードする前に、関連付けられているすべてのOceanBaseクラスタにダウングレード状態のログストリームがないことを確認する必要があります。ダウングレード状態のログストリームがある場合は、アップグレードを実行できません。そうでない場合、マスターが存在しなくなる可能性があります。
システムテナントを使用して以下のSQLステートメントを実行し、ダウングレード状態のログストリームがあるかどうかを確認します。実行結果がNULLではない場合、ダウングレードされたログストリームが存在することを意味し、アップグレードプロセスを中止する必要があります。
SELECT tenant_id,ls_id FROM GV$OB_LOG_STAT WHERE role = 'LEADER' AND degraded_list != "";
ステップ3:ターゲットRPMパッケージのアップロードとインストール
scpコマンドを使用して、アップグレードに必要なOceanBase RPMパッケージをアービトレーションサーバーノードにアップロードします。scp $rpm_name admin@$observer_ip:/$rpm_dirパラメータの説明:
$rpm_name:RPMパッケージの名前を表します。$observer_ip:アービトレーションサーバーノードのIPアドレスを表します。$rpm_dir:RPMパッケージを保存するディレクトリを表します。
例:
scp oceanbase-4.2.0.0-100010022023081911.el7.x86_64.rpm admin@10.10.10.1:/home/admin/rpm以下のコマンドを使用してOceanBase RPMパッケージをインストールします。
注意
アップグレードパスに複数のバリアバージョンが存在する場合は、バリアバージョンを順番にインストールおよびアップグレードし、最後のバリアバージョンが正常にアップグレードされた後に、ターゲットバージョンのRPMパッケージをインストールします。
rpm -Uvh $rpm_nameここで、
$rpm_nameはRPMパッケージの名前を表します。
ステップ4:アービトレーションサービスのバージョンアップグレード
アービトレーションサーバーにログインします。
(オプション)
adminユーザーに切り替えます。adminユーザーとしてアービトレーションサーバーにログインしている場合は、この手順を無視してください。例:
[root@xxx /home/admin/oceanbase/etc]# su - admin以下のコマンドを実行して、ノードのプロセスIDを確認し取得します。
ps -ef | grep observer | grep -v grep例:
-bash-4.2$ ps -ef | grep observer | grep -v grep admin 103364 1 99 2022 ? 51-17:24:41 /home/admin/oceanbase/bin/observer以下のコマンドを実行して、アービトレーションサーバープロセスを停止します。
kill -9 $pidここで、
$pidはアービトレーションサーバープロセスIDです。例:
-bash-4.2$ kill -9 103364以下のコマンドを実行して、アービトレーションサーバープロセスを再起動します。
-bash-4.2$ cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer説明
アービトレーションサーバープロセスを再度起動する際には、起動パラメータを指定する必要はありません。以前の起動パラメータはすでにパラメータファイルに書き込まれているためです。
(オプション)ステップ5:OceanBaseクラスタのバージョンアップグレード
今回のアップグレードで対象となるアービトレーションサービスがOceanBaseクラスタに関連付けられていない場合は、この手順を無視してください。
OceanBaseクラスタのバージョンアップグレードの操作手順については、OceanBaseクラスタのアップグレードを参照してください。