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以前のバージョンで、アップグレード時にこの問題が発生した場合、そのアップグレードは一時的にサポートされていないことを意味します。
アップグレードの手順
V4.4.2 BP2へのアップグレードは、以下のパスで行うことを推奨します:
- V4.4.2/V4.4.2 BP1バージョンは、直接V4.4.2 BP2バージョンにアップグレードできます。
- V4.4.0/V4.4.0 BP1/V4.4.1バージョンは、直接V4.4.2 BP2バージョンにアップグレードできます。
- V4.3.5/V4.3.5 BP1~BP5バージョンは、まずV4.3.5 BP6バージョンに停止してから、V4.4.2 BP2バージョンにアップグレードする必要があります。
- V4.2.5/V4.2.5 BP1~BP6バージョンは、まずV4.2.5 BP7バージョンに停止してから、V4.4.2 BP2バージョンにアップグレードする必要があります。
アップグレードの道筋図
説明
- 本記事のアップグレードの道筋図は参考用です。より詳細なバージョン間のアップグレード経路については、
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バージョンにアップグレードできます。
- V4.2.5 BP7バージョンは、直接V4.4.2またはV4.4.2.1バージョンにアップグレードできます。
- barrierバージョン:V4.2.1.11、V4.2.5.7。
V4.3.x系のアップグレード経路:
- V4.3.xの各バージョンは、直接V4.3.5.6バージョンにアップグレードできます。
- V4.3.5.6バージョンは、V4.4.2.1バージョンにアップグレードできます。
- V4.2.xシリーズまたはそれ以前のバージョンからV4.3.x系へのアップグレードは、現在サポートされていません。
- barrierバージョン:V4.3.5.6。
V4.4.x系のアップグレード経路:
- V4.4.0/V4.4.1バージョンは、直接V4.4.2バージョンまたはV4.4.2.1/2バージョンにアップグレードできます。
- V4.4.0/V4.4.1バージョンは、直接V4.6.0.0バージョンにアップグレードできます。
V5.x系のアップグレード経路:
- V4.6.0.0からV5.0.1へのアップグレードは可能です。
次のステップ
関連ドキュメント
OceanBaseクラウドプラットフォーム(OceanBase Cloud Platform、OCPと略)を使用してOceanBaseクラスタをアップグレードする操作方法については、バージョンのアップグレードを参照してください。