OceanBaseクラスタは、アップグレードスクリプトを使用してクラスタをアップグレードできます。アップグレードプロセス全体はアプリケーションに対して非透過的であり、アプリケーションはサーバー側と連携して書き込みやサービスの一時停止を行う必要はありません。OceanBaseクラスタはZoneの順序に従ってアップグレードされます。アップグレード中、パーティションのリーダーは各Zone間で切り替え操作を行い、アップグレード対象のZoneの業務を他のZoneに誘導して実行します。
このドキュメントでは、主にOceanBaseデータベースのアップグレード制限、アップグレード時の注意事項、アップグレードパスなどの情報について説明します。
アップグレード制限
OceanBaseクラスタのアップグレード時には、以下の制限があります:
- DDLを禁止する:アップグレードプロセスの一部の段階ではDDLを禁止する必要があります。アップグレード完了後に自動的に許可されます。
major freezeを禁止する:一部のバージョン間でのアップグレードではメジャーコンパクションを禁止します。アップグレード完了後に自動的に許可されます。- 移行レプリケーションとロードバランシングを禁止する:一部のバージョン間でのアップグレードでは移行レプリケーションとロードバランシングを禁止します。
- 物理バックアップ・リストアを禁止する:クラスタのアップグレード中は、物理ベースラインバックアップ(ログアーカイブは継続)や物理リストアは実行されません。
- 新規テナントの作成を禁止する。
注意
OceanBaseクラスタがアービトレーションサービスに関連付けられている場合、OceanBaseクラスタのバージョンアップグレードを実行する前に、必ずアービトレーションサービスのバージョンをアップグレードしてから、OceanBaseクラスタのバージョンをアップグレードしてください。アービトレーションサービスのバージョンアップグレードの詳細については、アービトレーションサービスのアップグレードを参照してください。
システムテナントを使用して、ビューoceanbase.DBA_OB_ARBITRATION_SERVICEを照会し、このOceanBaseクラスタがアービトレーションサービスに関連付けられているかどうかを確認できます。
注意点
OceanBaseクラスタのアップグレード時には、以下の点にご注意ください:
OceanBase V4.0からV4.1へのアップグレード中は、ログアーカイブが停止します。
アップグレード中に
ADD SERVER/DELETE SERVER操作が必要な場合は、技術サポートにお問い合わせください。OceanBaseの移行バージョンから直接アップグレードすることはできません。
oceanbase_upgrade_dep.ymlファイルに記載されているアップグレードバージョンの順序を参照してください。アップグレードスクリプトは、Root Serviceサービスが稼働しているobserverプロセスに直接接続して実行する必要があります。OceanBaseデータベースプロキシ(OceanBase Database Proxy、略称:ODP)を介した接続はできません。
アップグレード中には、以下のパラメータが変更される可能性があります。アップグレード前にこれらのパラメータをバックアップしておいてください:
V4.3.0 Beta以降、OceanBaseデータベースはzlib_1.0圧縮アルゴリズムの使用をサポートしていません。アップグレード中には、以下の事前チェックが実施されます:
- アップグレード中は、
log_transport_compress_funcパラメータとしてzlib圧縮アルゴリズムの使用はサポートされなくなりました。zlib圧縮アルゴリズムの代わりに他の圧縮アルゴリズムを使用してください。 - アップグレード中に、一部のテーブルで
zlib圧縮アルゴリズムが使用されていることが検出された場合、それらのテーブル内の圧縮アルゴリズムを他のサポートされている圧縮アルゴリズムに置き換えるか、アップグレード期間中は圧縮を使用しないでください。 - アップグレード中は、OBKV-Table接続の圧縮アルゴリズムとして
zlibの使用は許可されません。tableapi_transport_compress_funcパラメータを設定して、他の圧縮アルゴリズムを選択してください。
- アップグレード中は、
V4.3の低バージョンクラスタをV4.3.3以降のバージョンクラスタにアップグレードする場合、スタンバイテナントについては、低バージョンクラスタは高バージョンクラスタが生成したログを解釈できません。その結果、スタンバイテナントがログを送信する際にエラーが発生します(エラーは報告されるだけで、対応するログは永続化されません)。データ復元の詳細については、復元前の準備を参照してください。
V4.3.2バージョンのクラスタでバックアップしたテナントは、V4.3.3バージョンのクラスタでは復元できません。
V4.3.2バージョンのバックアップからの復元では、V4.3.3バージョンにアップグレードすることはできません(V4.3.2バージョンのバックアップは、V4.3.3バージョンで復元できません)。
V4.4.2にアップグレードする際、アップグレードの事前チェックで以下のエラーが発生した場合:
tenant has sys table with progressive_merge_round=1: tenant_id xxx table_ids 'xxx'- 現在がV4.2.5 BP7バージョンの場合、V4.2.5 BP7 hotfix3以降のV4.2.5 BP7 hotfixバージョンにアップグレードしてから、V4.4.2にアップグレードする必要があります。
- 現在がV4.3.5 BP2以前のバージョンで、アップグレード時にこの問題が発生した場合、一時的にそのアップグレードをサポートできないことを意味します。
アップグレードの説明
- SN(Shared-Nothing)モードでは、V4.2.5 BP7/V4.4.0/V4.4.0 BP1/V4.4.1からV4.4.2へのスムーズなアップグレードをサポートします。
- SS(Shared-Storage)モードのクラスタは、V4.4.2バージョンへのアップグレードをサポートしていません。
- ベクトルを使用しているクラスタは、V4.4.2バージョンへのアップグレードをサポートしていません。
アップグレードの道筋
説明
- このアップグレードの道筋はSNモードにのみ適用されます。より多くのバージョンのアップグレード経路については、
oceanbase_upgrade_dep.ymlファイルを参照してください。このファイルにはOceanBaseのバージョンアップグレードのトポロジーダイアグラムが記録されています。 - 対象バージョンのOceanBase RPMパッケージを解凍すると、RPMパッケージが保存されたディレクトリに
homeとuseの2つのディレクトリが作成されます。アップグレード関連のスクリプトとoceanbase_upgrade_dep.ymlファイルはhome/admin/oceanbase/etcディレクトリに保存されています。
oceanbase_upgrade_dep.ymlファイルでアップグレード経路の詳細情報を確認するには、OceanBaseクラスタのアップグレードの手順2:アップグレードプロセスの確認を参照してください。
アップグレードの道筋の意味は以下の通りです:
V4.2.x系の道筋:
- V4.0.0.0/V4.1.0.0-V4.1.0.2/V4.2.0.0バージョンはV4.2.1.11バージョンにアップグレード可能で、その後V4.2.5.7バージョンにアップグレードできます。
- V4.2.2-V4.2.4は、直接V4.2.5.7バージョンにアップグレードするか、まずV4.2.5.0-V4.2.5.6バージョンにアップグレードしてから、V4.2.5.7バージョンにアップグレードできます。
- barrierバージョン:V4.2.1.11、V4.2.5.7。
V4.3.x系のアップグレード経路:
- V4.3.xの各バージョンは、直接V4.3.5.5バージョンにアップグレードできます。
- V4.2.xシリーズまたはそれ以前のバージョンからV4.3.x系へのアップグレードは現在サポートされていません。
V4.4.x系のアップグレード経路:
- V4.4.0/V4.4.0.1/V4.4.1バージョンはV4.4.2バージョンにアップグレードできます。
- V4.2.5 BP7バージョンはV4.4.2バージョンにアップグレードできます。