本記事では、コマンドラインを使用してアービトレーションサービスのバージョンをアップグレードする方法について説明します。
注意
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ファイルの分析 セクションを参照し、現在のバージョンからターゲットバージョンへのアップグレードシーケンスを確認してください。アップグレードシーケンスに基づいて、アップグレードプロセスは以下のように判断されます:
現在のバージョンとターゲットバージョンの間にbarrierバージョンが存在する場合、アップグレードプロセスは以下のとおりです:
- アービトレーションサービスのバージョンをまずbarrierバージョンにアップグレードします。
- (オプション)このアービトレーションサービスに関連付けられたOceanBaseクラスタがある場合、そのすべてのOceanBaseクラスタをbarrierバージョンにアップグレードします。
- その後他のbarrierバージョンが存在する場合、アービトレーションサービスのバージョンとOceanBaseクラスタがターゲットバージョンの前のbarrierバージョンにアップグレードされるまで、手順1〜2を繰り返します。
- アービトレーションサービスのバージョンをターゲットバージョンにアップグレードします。
- このアービトレーションサービスに関連付けられたすべてのOceanBaseクラスタをターゲットバージョンにアップグレードします。
現在のバージョンとターゲットバージョンの間にbarrierバージョンが存在しない場合、アップグレードプロセスは以下のとおりです:
- アービトレーションサービスのバージョンをターゲットバージョンにアップグレードします。
- (オプション)このアービトレーションサービスに関連付けられた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パッケージをインストールします。
注意
アップグレードパスに複数のbarrierバージョンが存在する場合、順序に従ってbarrierバージョンをインストールおよびアップグレードし、最後のbarrierバージョンへのアップグレードが成功した後に、ターゲットバージョンのRPMパッケージをインストールします。
rpm -Uvh $rpm_nameここで、
$rpm_nameはRPMパッケージ名を表します。
ステップ4:アービトレーションサービスのバージョンアップグレード
アービトレーションServerにログインします。
(オプション)
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以下のコマンドを実行して、アービトレーションserverプロセスを停止します。
kill -9 $pidここで、
$pidはアービトレーションserverプロセスIDです。例:
-bash-4.2$ kill -9 103364以下のコマンドを実行して、アービトレーションserverプロセスを再起動します。
-bash-4.2$ cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer説明
アービトレーションserverプロセスを再起動する際には、起動パラメータを指定する必要はありません。前回の起動パラメータはすでにパラメータファイルに書き込まれているためです。
(オプション)ステップ5:OceanBaseクラスタのバージョンアップグレード
今回のアップグレードで対象となるアービトレーションサービスがOceanBaseクラスタに関連付けられていない場合は、この手順を無視してください。
OceanBaseクラスタのバージョンアップグレード手順については、OceanBaseクラスタのアップグレードを参照してください。
関連ドキュメント
- OceanBaseクラウドプラットフォーム(OceanBase Cloud Platform、OCP)を使用してOceanBaseクラスタとアービトレーションサービスを管理している場合は、関連する操作画面で指示に従ってアップグレードプロセスを実行するだけです。詳細な操作については、バージョンのアップグレードおよびアービトレーションサービスのアップグレードを参照してください。
- OceanBaseクラスタのバージョンアップグレードに関する情報については、アップグレードの概要を参照してください。