本記事では、コマンドラインを使用してアービトレーションサービスのバージョンをアップグレードする方法について説明します。
注意
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クラスタをバリアバージョンにアップグレードします。
- その後に他のバリアバージョンが存在する場合は、アービトレーションサービスのバージョンとOceanBaseクラスタがターゲットバージョンの直前のバリアバージョンになるまで、ステップ1〜2を繰り返します。
- アービトレーションサービスのバージョンをターゲットバージョンにアップグレードします。
- このアービトレーションサービスに関連付けられたすべてのOceanBaseクラスタをターゲットバージョンにアップグレードします。
現在のバージョンとターゲットバージョンの間にバリアバージョンが存在しない場合、アップグレードプロセスは次のとおりです:
- アービトレーションサービスのバージョンをターゲットバージョンにアップグレードします。
- (オプション)このアービトレーションサービスに関連付けられたOceanBaseクラスタがある場合、このアービトレーションサービスに関連付けられたすべてのOceanBaseクラスタをターゲットバージョンにアップグレードします。
例:
アップグレードシーケンスが以下のように仮定されます:
- V4.1.0.0-100000982023031415 > V4.1.0.0 > V4.1.0.1(バリア)> 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(バリア)にアップグレードする必要があります。
- 次に、OceanBaseクラスタをV4.1.0.0-100000982023031415からV4.1.0.1(バリア)にアップグレードします。
- アービトレーションサービスのバージョンをターゲットバージョン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ステートメントを実行して、ダウングレード状態のログストリームがないかどうかを確認します。実行結果が空でない場合は、ダウングレード状態のログストリームが存在することを意味し、アップグレードプロセスを中止する必要があります。
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クラスタのアップグレードを参照してください。
関連ドキュメント
- OceanBaseクラウドプラットフォーム(OceanBase Cloud Platform、OCP)を使用してOceanBaseクラスタとアービトレーションサービスを管理している場合は、関連する操作画面で表示される手順に従ってアップグレードプロセスを実行するだけです。詳細な操作については、バージョンのアップグレードおよびアービトレーションサービスのアップグレードを参照してください。
- OceanBaseクラスタのバージョンアップグレードに関する情報については、アップグレードの概要を参照してください。