OceanBase V4.xのリリースに伴い、パフォーマンスやAPなどの面で大幅な改善が見られました。多くのお客様が新機能を活用するため、OceanBaseクラスタインスタンスを旧バージョンからV4.xへアップグレードすることを希望しています。このニーズに応えるため、スマートアップグレードサービスでは、互換性、パフォーマンス、実現可能性を十分に検証し、安全なロールバック機構も備えることで、便利で効率的なアップグレード体験を提供します。
アップグレードの仕組み
スマートアップグレードは、ソースクラスタインスタンス上でカーネルバージョンをインプレースでアップグレードするものではありません。環境評価、テナントの作成、データ移行、トラフィック切り替え の4つの段階を経てアップグレードを完了します。
環境評価:システムはソース側とターゲット側のテナントパラメータ(インスタンスパラメータを含む場合もあります)を比較し、差異があるパラメータを一覧表示して確認または修正いただきます。これにより、アップグレード後のパラメータ不整合による業務動作の変化を防ぎます。
テナントの作成:システムは、お客様が準備したV4.xターゲットクラスタインスタンス上に、ソーステナントと同名のテナントを作成し、ソーステナントのデータベースとユーザーをコピーします。同時に、ソーステナントで有効なアクセスアドレスを基に、ターゲットテナントに対応するアドレスを有効にします。
データ移行:データ移行タスクを通じて、ソーステナントの既存データと増分データをターゲットテナントに同期します。
トラフィック切り替え:ソース側のセッションを閉じ、切り替え前チェックを完了した後、テナントのドメイン名切り替えを開始します。ターゲットテナントのアクセスアドレスはソーステナントの元のアクセスアドレスに切り替わり、ソーステナントのアクセスアドレスには固定のプレフィックスが追加されます。そのため、アプリケーションはデータベース接続設定を変更する必要がなく、再起動するだけでアップグレード後のテナントに接続できます。
説明
- アップグレード中はソースクラスタインスタンスとターゲットクラスタインスタンスが共存し、それぞれに料金が発生します。アップグレードが完了し、ロールバックが不要であることを確認したら、ソースクラスタインスタンスを手動で解放する必要があります。
- トラフィック切り替えの段階では、業務書き込みが中断するウィンドウが発生します。そのため、オフピーク時間帯に切り替えを実施してください。
- ロールバック機能の有無は、切り替え前チェックの段階で逆方向の増分同期を有効にしているかどうかによって決まります。有効にすると、ターゲット側の増分データがソーステナントに逆流します。パフォーマンスが期待に達しない場合、逆方向トラフィック切り替えを通じてソーステナントにロールバックできます。無効の場合はロールバックできません。
制限事項
スマートアップグレードは許可リスト機能です。利用を希望する場合は、OceanBaseのテクニカルサポートにお問い合わせください。
現在対応しているクラウドベンダーはAlibaba Cloudのみであり、クラスタ単位ではなくテナント単位でのアップグレードのみをサポートしています。
ソーステナントがバージョン2.xまたは3.xである場合にのみ、ターゲットクラスタインスタンスのバージョン4.xへのアップグレードをサポートします。
トランザクションテナントのみをサポートし、MySQL互換モードとOracle互換モードの両方をサポートしています。
同一ソーステナントから並列して複数のアップグレードタスクを作成することはできません。
ソースクラスタインスタンスとターゲットクラスタインスタンスは、同じリージョンに配置されている必要があり、デプロイメントモードも一致している必要があります。
前提条件
ソースクラスタインスタンス、ソーステナント、およびターゲットクラスタインスタンスを準備していること。
ターゲットクラスタインスタンスは4.xバージョンである必要があり、互換モードはソーステナントと一致している必要があります。また、仕様はソーステナントのデータ量と業務負荷をサポートできるものである必要があります。作成が必要な場合は、詳細についてはインスタンスの作成および新規テナントの作成を参照してください。
ターゲットクラスタインスタンスの許可リストに、ソースクラスタインスタンスの許可リストに含まれるIPアドレスがすでに追加されていること。
トラフィック切り替え後、業務アプリケーションはターゲットテナントに接続します。ターゲットクラスタインスタンスの許可リストにアプリケーションのIPアドレスがない場合、アプリケーションは接続できません。ターゲットクラスタインスタンスのセキュリティ設定ページで、許可リストグループのインポートを使用して、ソースクラスタインスタンスの許可リストグループ設定を再利用できます。これにより、手動で1つずつ入力する必要はありません。詳細については許可リストグループの設定を参照してください。
データ移行インスタンスを購入済みであるか、アカウントに利用可能なデータ移行タスクが存在することを確認していること。
ステップ4では、購入済みの移行タスクを選択する必要があります。利用可能な移行タスクがない場合は、先に進めません。購入方法の詳細についてはデータ移行インスタンスの購入を参照してください。仕様の選択に関する推奨事項の詳細についてはデータ移行仕様説明を参照してください。課金説明の詳細についてはデータ移行課金説明を参照してください。
手順
アップグレードタスクは、環境評価、テナントの作成、データ移行、および トラフィック切り替え の4つの段階を経て順次進行します。各段階の実行状況は、アップグレードタスクカードのアップグレードプロセスエリアに表示されます。
アップグレードタスク ページでは、現在のプロジェクト下のすべてのアップグレードタスクを確認できます。タスク名、ソースインスタンス、ソーステナント、ターゲットインスタンス、バージョンアップグレード、作成日時、完了日時などの情報が含まれており、環境評価、テナントの作成、データ移行、トラフィック切り替え(逆方向増分同期を有効にした場合は 逆方向トラフィック切り替え)の各段階での実行状況をフローチャートで示しています。
ページの右上隅にある 現在の段階、現在の状態 のフィルター、またはタスク名検索ボックスを使用してタスクを検索できます。カードの右上隅にある操作ボタンは、タスクの状態に応じて変化します:環境評価完了後は 環境評価結果を見る、段階失敗時は タスクの再開始、トラフィック切り替え完了後は トラフィック切り替えの詳細を見る または 逆方向トラフィック切り替えの詳細を見る となります。
アップグレード中に特定の段階で実行失敗が発生した場合、カードの右上隅にある タスクの再開始 をクリックすることで、失敗した部分をやり直せます。アップグレードタスクを再作成する必要はありません。
ステップ1:アップグレードタスクの作成
OceanBase管理コンソールにログインします。
左側のナビゲーションバーで、**スマートアップグレード**をクリックします。
**スマートアップグレードページのアップグレードタスクエリアの右上で、アップグレードタスクの作成**をクリックします。
**アップグレードタスクの作成パネルで、以下のパラメータを設定し、OK**をクリックします。
基本情報
パラメータ説明タスク名 アップグレードタスク名を入力します。 アップグレード範囲 現在は テナント レベルのアップグレードのみをサポートしています。この値は テナント に固定されており、設定は不要です。 ソースインスタンス アップグレード対象のソースクラスタインスタンスを選択します。 ソーステナント アップグレード対象のソーステナントを選択します。 ターゲットインスタンス ドロップダウンリストからターゲットクラスタインスタンスを選択します。 4.x系のバージョンのクラスタインスタンスのみがアップグレードのターゲットとして使用できます、 環境評価
パラメータ説明評価タイプ テナントパラメータ がデフォルトの評価項目であり、デフォルトでチェックされており、キャンセルできません。必要に応じて、インスタンスパラメータ を追加でチェックすることができます。
ステップ2:環境評価
環境評価が完了したら、アップグレードタスクカードの右上で、**環境評価結果を見る**をクリックします。
ポップアップウィンドウの異なるタブで、それぞれ ターゲットテナントパラメータ値の確認 と ターゲットインスタンスパラメータ値の確認 をクリックします。変更が必要な場合は、該当するタブで変更ボタンをクリックできます。
説明
黄色いマークが付いているパラメータは、ソース側のパラメータ値が変更された、ソース側のパラメータ値とターゲット側のパラメータ値が一致しない、またはターゲット側固有のパラメータ値であることを示しており、特に注意が必要です。
確認後、ポップアップウィンドウの左上の×印をクリックして、ポップアップウィンドウを閉じます。
ステップ3:テナントの作成
説明
このステップでは、システムが自動的に以下の操作を実行します:
- ターゲット側クラスタに同名のテナントを作成します。
- ソース側テナントのデータベースをターゲット側にコピーします。
- ソース側のユーザーをターゲット側にコピーします。
- ソース側テナントで有効化されたアクセスアドレスに基づいて、ターゲット側テナントに対応するアドレスを有効化します。
- 一部のデータ移行手順で依存する複雑なデータベースオブジェクトをターゲット側に移行します。
アップグレードの進捗状況エリアで、**次へ:テナントの作成**をクリックします。
ポップアップウィンドウで、OKをクリックします。
テナントの作成が完了するのを待ちます。
ステップ4:データ移行
- アップグレードの進捗状況エリアで、**次へ:データ移行**をクリックして、新しいデータ移行タスクを作成します。
説明
データ移行にかかる時間は、ソース側のデータ量、インスタンスの仕様、ネットワーク状況によって異なります。十分な時間を確保してください。データ移行タスクの詳細ページでは、各段階の実行進捗状況を確認できます。詳細については、データ移行タスクの詳細を見るを参照してください。
ステップ5:トラフィックの切り替え
注意
このステップには 業務書き込み中断ウィンドウ が存在します:ソース側セッションを閉じる から、ソース側は業務書き込みを受け付けなくなります。アプリケーション層リンクの切り替え が完了し、テナントのドメイン名が切り替わってアプリケーションが再起動するまで、業務は書き込み可能に戻りません。必ず業務の低負荷時間帯に実行し、事前に業務担当者と変更ウィンドウを調整し、アプリケーションの再起動計画を準備しておいてください。
アップグレードプロセスエリアで、次へ:トラフィックの切り替え をクリックします。
トラフィックの切り替え パネル上部の 負荷監視 エリアで、ソース側とターゲット側のテナントの負荷データを比較し、切り替えのタイミングを確認します。
このエリアでは、ソース側テナント とターゲット側テナント(例:4.3.5 ターゲット側テナント)の以下の指標がそれぞれ表示されます:
QPS
SQLステートメントの平均処理時間
CPU使用率
パネル下部で、番号順に以下のサブステップを完了します:
ソース側セッションを閉じます。展開後、ソース側テナントのアクティブセッション数 エリアで 現在のアクティブセッション数 と 現在のセッション総数 を確認し、業務アプリケーションに書き込み続けるトラフィックがないことを確認したら、ソース側セッションを閉じる をクリックします。表示された確認ダイアログで、閉じる をクリックします。
注意
ソース側セッションを閉じると、すべてのソース側ユーザーがロックされます。業務アプリケーションに書き込み続けるトラフィックがないことを確認してください。
複雑オブジェクトの移行を開始します。移行を開始 をクリックします。このステップでは、テナント作成時に残った複雑オブジェクトを移行し、同時にユーザー権限をターゲット側に補完します。
切り替え前チェック。チェックを開始 をクリックします。チェック完了後、チェック結果を確認し、逆方向増分同期を有効にするかどうかを決定する必要があります。
注意
- 逆方向増分同期を有効にしない場合、ターゲット側の増分データはソース側データベースに同期されず、逆方向のトラフィック切り替えもできません。
- このステップでは、ソース側のトリガーと外部キーが無効になります。詳細は以下の通りです:
- MySQLモード:トリガーを削除し、外部キー検証を無効にします。
- Oracleモード:トリガーと外部キー制約を無効にします。
アプリケーション層リンクの切り替え。
テナントドメイン名の切り替えを確認 をクリックします。切り替え後、ソース側テナントのアクセスアドレスに固定プレフィックスが追加され、ターゲット側テナントのアクセスアドレスはソース側テナントのアクセスアドレスに切り替わります。
切り替え完了を待ってから、アプリケーションを再起動し、データベース設定を変更せずに新しいテナントに接続します。
パフォーマンス観察。30分間待機し、トラフィック切り替え前後の各30分間の主要なパフォーマンスデータを比較します。
説明
パフォーマンス観察エリアの右上にあるターゲット側の詳細モニタリングを表示をクリックすると、パフォーマンス監視ページに移動し、より多くの監視指標を確認できます。
パネルの左上にあるチェックボックスをクリックして、パネルを閉じます。
アップグレードの効果を評価します。
パフォーマンスデータが期待通りであれば、アップグレードプロセスエリアで、... > **逆方向増分同期を停止**を選択して、アップグレードプロセスを終了します。
注意
逆方向増分同期を停止すると、ターゲット側の増分データはソース側データベースに同期されなくなり、逆方向のトラフィック切り替えを実行できなくなります。業務が正常に稼働していることを確認してから、この操作を実行してください。
パフォーマンスデータが期待に達しない場合は、アップグレードプロセスエリアで、... > **逆方向トラフィック切り替え**を選択して、次の手順に進みます。
(オプション)ステップ6:逆方向トラフィック切り替え
アップグレードプロセスエリアで、... > 逆方向トラフィック切り替え を選択します。
注意
オフピーク時に切り替えることを推奨します。
ポップアップ表示された確認ダイアログで、switch と入力し、切り替え をクリックします。
逆方向トラフィック切り替え パネル上部の 負荷監視 エリアで、ソース側とターゲット側のテナントの負荷データを比較し、切り替えのタイミングを確認します。
このエリアでは、ソース側テナントとターゲット側テナントの QPS、SQL文の平均処理時間、CPU使用率 の各指標が表示されます。
パネル下部で、番号順に以下のサブステップを実行します:
ターゲット側のセッションを閉じます。展開後、ターゲット側テナントのアクティブセッション数 エリアで 現在のアクティブなセッション を確認し、アクティブなセッションがないことを確認したら、ターゲット側セッションを閉じる をクリックします。ポップアップ表示された確認ダイアログで、閉じる をクリックします。
注意
ターゲット側セッションを閉じると、すべてのターゲット側ユーザーがロックされ、既存のすべてのデータベース接続が切断されます。
ソース側のユーザーとオブジェクトをロック解除します。ソース側オブジェクトのロックを解除する をクリックします。
説明
このステップでは、順方向トラフィック切り替え中にロックされたユーザーがロック解除され、その過程で無効化または削除されたトリガーや外部キーが復元されます。
アプリケーション層リンクの切り替え を行います。まず、テナントドメイン名の切り替えを確認 をクリックし、次にアプリケーションを再起動します。
説明
切り替え後、ソース側テナントとターゲット側テナントのアクセスアドレスは、アップグレード前の状態に切り替わります。
パネル左上のチェックボックスをクリックして、パネルを閉じます。
逆方向トラフィック切り替え ノードにチェックが付いていれば、アップグレードのロールバックが完了したことを意味します。この時点で、タスクカードの右上には 逆方向トラフィック切り替えの詳細を見る と表示され、逆方向切り替えプロセス全体の記録を確認できます。
次のステップ
ターゲットテナントの業務が正常に稼働していることを確認し、ターゲット側の運用保守設定を再設定する必要があるかどうかを確認します。
ステップ3では、ソーステナントのデータベース、ユーザー、アクセスアドレスのみが自動的にコピーされます。バックアップポリシー、アラートルール、テナントパラメータなどの設定は、ご自身で確認する必要があります。
ソーステナントに接続している他のシステムを確認します。
トラフィック切り替え後、ソーステナントのアクセスアドレスには固定のプレフィックスが追加されます。業務アプリケーション以外に、データ移行、データサブスクリプション、Binlogサービス、SQL診断ツールなどのシステムがソーステナントに接続されている場合は、それらの接続設定も更新してください。
今回のアップグレードで使用されたデータ移行タスクを終了または解放し、追加の料金発生を防ぎます。詳細については、データ移行タスクの終了と解放を参照してください。
ロールバックが不要であることを確認した上で、実際の状況に応じてソースクラスタインスタンスを解放するかどうかを決定します。これにより、ソースクラスタインスタンスとターゲットクラスタインスタンスの二重課金を避けることができます。詳細については、インスタンスの解放を参照してください。
注意
ソースクラスタインスタンスを解放すると、元のソーステナントにロールバックできなくなります。業務が安定して一定期間稼働し、データに誤りがないことを確認してから、この操作を実行してください。