すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:のストレージエンジンを変換します。 InnoDBからX-EngineへのDRDS

最終更新日:Jan 11, 2024

このトピックでは、のストレージエンジンを変換する方法について説明します。 DRDS InnoDBからX-Engineへの

背景情報

多数のユーザーが、X-Engineを既存のApsaraDB RDSインスタンスのストレージエンジンとして使用したいと考えています。 次のリストに、これらのユーザーと既存のRDSインスタンスの特性を示します。

  • ほとんどのRDSインスタンスは、MySQL 5.6またはMySQL 5.7を実行します。 MySQL 8.0を実行するRDSインスタンスはほとんどありません。
  • 単一のRDSインスタンスには大量のデータがあり、インスタンスタイプでサポートされているディスク容量の上限に達します。 たとえば、4つのCPUコアと8 GBのメモリを備えたRDSインスタンスは、最大2テラバイトのローカルディスクをサポートします。
  • ほとんどのユーザーが使用 DRDS . さらに、それらのいくつかは使用します DRDS 以前のバージョンの、またはSQLパススルーなどのカスタム機能を使用します。

ユーザーの要件を満たすために、Alibaba Cloudでは、 DRDS このトピックの手順に従って、InnoDBからX-Engineにします。 DRDS

説明 X-Engineの詳細については、「X-Engineの概要」をご参照ください。

変換計画

MySQL 8.0を実行するRDSインスタンスは、InnoDBとX-Engineのどちらを使用するかに関係なく、一貫したAPI操作とユーザーエクスペリエンスを提供します。 この状況では、 DRDS アップグレードするは、RDSインスタンスのストレージエンジンをInnoDBからX-Engineに1つずつ変換することを推奨します。 たとえば、 DRDS インスタンスには8つのRDSインスタンスがあり、最初にストレージエンジンを8つのRDSインスタンスの1つに変換します。 一定期間、RDSインスタンスを監視します。 互換性やパフォーマンスの問題が発生しない場合は、残りの7つのRDSインスタンスのストレージエンジンを変換します。

変換前の圧縮効率の検証

RDSインスタンスのストレージエンジンを変換する前に、InnoDBによって供給される既存のRDSインスタンスと同じインスタンスタイプのX-engineによって供給されるRDSインスタンスを購入することを推奨します。 その後、Alibaba Cloud Data Transmission Service (DTS) を使用して、既存のRDSインスタンスから購入したRDSインスタンスにデータをインポートできます。 このようにして、圧縮効率を確認できます。 圧縮効率により、次の項目を決定できます。

  • インスタンスストレージ容量

    圧縮効率に基づいて、ストレージエンジンをInnoDBからX-engineに変換した後に購入する必要があるインスタンスタイプを決定できます。 たとえば、圧縮後に必要なストレージ容量が元のストレージ容量の30% 未満の場合、元々3テラバイトのディスク容量を必要としていたRDSインスタンスのストレージエンジンを変換した後、1テラバイトのディスク容量のRDSインスタンスを購入できます。 または、同じインスタンスタイプのRDSインスタンスを購入して、将来の事業開発のためにストレージ容量を予約することもできます。

  • データベースシャードの数

    RDSインスタンスのストレージ容量が削減された後、データベースシャードの数を減らすことができます。 たとえば、RDSインスタンス間で分散しているデータベースを1つのRDSインスタンスにマージできます。 これによりコストが削減される。

説明 検証が完了した後、X-Engineを搭載しているRDSインスタンスをリリースするか、後で正式に変換するためにRDSインスタンスのデータを消去することができます。

変換手順

  1. アップグレード DRDS V5.4.2-15744202より後のバージョンにします。
    説明
    • このセクションでは、例としてPolarDB-X 1.0を使用します。
    • プライマリキーが DRDS バージョンがv5.4.2-15744202以降のは、この手順をスキップします。
    • 互換性を確保するには、コードを変更する必要があります。 これは、ビジネスが以前のバージョンのDRDSで提供されている特定のAPI操作に基づいている場合に適用されます。 たとえば、パフォーマンス最適化にSQLパススルー機能を使用する場合は、コードを変更する必要があります。
  2. 変換用の最初のインスタンスとして、DRDSからInnoDBストレージエンジンを使用したRDSインスタンスを選択します。 テーブル作成ステートメントをエクスポートし、エンジンタイプをX-engineに変更します。 次に、必要なインスタンスタイプとX-Engineストレージエンジンを使用してRDSインスタンスを作成します。 または、圧縮効率を確認するときに作成したRDSインスタンスを使用し、テーブル構造スクリプトをこのインスタンスにインポートします。
    説明 DTSを使用して既存のRDSインスタンスから新しいRDSインスタンスにデータを移行する場合、新しいRDSインスタンスはデフォルトで既存のRDSインスタンスのストレージエンジンを継承します。 X-engineを搭載した新しいRDSインスタンスにデータを移行する前に、テーブル作成ステートメントを個別にエクスポートし、エンジンタイプをX-Engineに変更する必要があります。
  3. DTSを使用して、InnoDBストレージエンジンを持つRDSインスタンスからX-engineストレージエンジンを持つRDSインスタンスにデータを同期します。 データ同期の詳細については、「MySQLデータベース間の双方向同期の設定」をご参照ください。
    説明 DTSの双方向同期機能を使用して、2つのRDSインスタンス間のデータの一貫性を確保できます。
  4. 変更 DRDS ルーティングルールをし、InnoDBストレージエンジンを搭載したRDSインスタンスへのアクセス要求をX-engineストレージエンジンを搭載したRDSインスタンスにリダイレクトします。
    説明 X-Engineストレージエンジンで最初のRDSインスタンスを5日間実行します。 インスタンスを監視し、リクエスト処理時間、例外情報、および双方向同期の進行状況を考慮します。 例外が発生した場合は、InnoDBストレージエンジンを使用して、ワークロードを元のRDSインスタンスに戻すことができることを確認する必要があります。 詳細については、「モニタリング情報の表示」をご参照ください。
  5. X-Engineストレージエンジンを搭載した最初のRDSインスタンスが期待どおりに実行されていることを確認したら、残りのRDSインスタンスの30% から50% の変換を続行し、インスタンスを3〜5日間監視します。 この場合、前のステップ2〜4を繰り返します。
    説明 InnoDBストレージエンジンを使用して元のRDSインスタンスをリリースまたはオフラインにしないでください。これらのインスタンスは、X-engineストレージエンジンを使用して新しいRDSインスタンスとの双方向同期を実装する必要があるためです。 DTSは、双方向同期機能を提供します。
  6. 残りのすべてのRDSインスタンスに対して変換を実行します。 DRDSのすべてのRDSインスタンスの変換が完了したら、インスタンスを3〜5日間監視します。 新しいRDSインスタンスが期待どおりに実行される場合は、すべてのDTS同期リンクと元のRDSインスタンスをInnoDBストレージエンジンでリリースします。