tencent cloud

フィードバック

DTSでInnoDBデータをRocksDBに移行します

最終更新日:2022-06-13 15:37:16

    RocksDBは非常に人気の高い高性能の永続的なKV (key-value)ストレージであり、TXRocksはTencent TXSQLチームがこれに基づいて開発したトランザクション型ストレージエンジンです。

    InnoDBが用いているB+Treeインデックス構造に比べて、TXRocksに使用されるLSM Treeインデックス構造はかなりの割合のメモリスペースを節約できます。InnoDBのB+Treeのスプリットは通常、ページが半分格納となり、ページ内の空き領域が無駄になり、ページ有効利用率が低くなります。RocksDBのSSTファイルは一般的にMB単位以上の大きさに設定されており、ファイルの4Kアライメントの場合、発生する無駄の割合が低く、SST内部もBlockに分割されていますが、Blockはアラインする必要はありません。また、RocksDBのSSTファイルはプレフィックス圧縮を採用しており、同じプレフィックスは1部しか記録されません。同時にRocksDBの異なるレイヤーのSSTは異なる圧縮アルゴリズムを採用することができ、さらにストレージスペースのオーバーヘッドを下げることができます。通常、ストレージ容量を50%削減できます。

    データ転送サービスDTSを使用してInnoDBデータをRocksDBに同期することで、書き込みパフォーマンスの向上とストレージ容量の節約を実現できます。

    説明:

    データ転送サービス(Data Transmission Service、DTS)は、データ移行、データ同期、データサブスクリプションを一体的に提供するデータベースデータ転送サービスです。業務を中断することなくデータベースを簡単に移行でき、リアルタイムの同期チャネルを使用して、リモートディザスタリカバリのための高可用性データベースアーキテクチャを簡単に構築でき、データサブスクリプションによって提供されるCDBを使用して、データをリアルタイムで増分更新することができます。また、増分データはビジネスニーズに合わせて自由に消費することができます。

    注意事項

    • データ転送サービスDTSを使用してデータ同期を行い、増分データを確実にRocksDBに同期させ、Delete操作をブロックします。
    • RocksDBにデータを転送した後、データの有効性を確認し、有効性を確認した後にソースライブラリからデータをクリーンアップして、ストレージ使用量を削減します。
    • ソーステーブルとしてパーティションテーブルを使用すれば、データ・クリーンアップの効率を向上させることができます(パーティションテーブルの使用制限に注意してください。ターゲットテーブルではパーティション化がサポートされていません)。
    • RocksDBが定期的にcompactionを実行することで、データ領域の消費を効果的に削減できます。
    • RocksDBエンジンの注意事項については、TXRocksエンジンのご使用にあたっての注意事項をご参照ください。

    操作手順

    1. DTSコンソールにログインし、左側のナビゲーションでデータ移行ページを選択し、移行タスクの新規作成をクリックして移行タスク新規作成ページに移動します。
    2. 「移行タスクの新規作成」ページで、移行のソースインスタンスのタイプと所属リージョン、ターゲットインスタンスのタイプと所属リージョンや仕様などを選択し、今すぐ購入をクリックします。
      設定項目の説明
      ソースインスタンスのタイプ ソースデータベースの種類に応じて選択してください。購入後に変更することはできません。ここで「MySQL」を選択します。
      ソースインスタンスのリージョン ソースデータベースの所属リージョンを選択します。ソースライブラリがカスタムデータベースの場合は、カスタムデータベースに最も近いリージョンを選択します。
      ターゲットインスタンスのタイプ ターゲットデータベースのタイプに応じて選択してください。購入後に変更することはできません。ここで「MySQL」を選択します。
      ターゲットインスタンスのリージョン ターゲットデータベースの所属リージョンを選択します。
      仕様 ビジネスの状況に応じて移行リンクの仕様を選択します。仕様別のパフォーマンスと課金の詳細については、課金の概要をご参照ください。
    3. 移行タスクの操作列でその他>設定を選択し、ソースデータベースおよびターゲットデータベースの設定ページで、タスクの設定、ソースライブラリの設定、およびターゲットライブラリの設定を完了し、ソースライブラリとターゲットライブラリの接続がパスしたことをテストしたら、保存をクリックします。
      説明:

      接続テストに失敗した場合は、表示メッセージと修正指導に従ってトラブルシューティングして解決し、再度実行してください。

    4. 移行オプションの設定ページおよび移行オブジェクトの選択ページで、移行タイプおよびオブジェクトを設定し、保存をクリックします。
      説明:

      • 移行中にgh-ost、pt-oscなどのツールを使用してテーブルのOnline DDLを作成するが必要があるとユーザーが判断した場合、オブジェクトの移行には、このテーブルだけでなく、テーブルが存在するライブラリ全体(またはインスタンス全体)を選択してください。そうしないと、Online DDLの変更によって生成されたテンポラリ・テーブルのデータをターゲットデータベースに移行できません。
      • 移行中にテーブルに対してrename操作を使用する必要があるとユーザーが判断した場合(例えば、table Aをtable Bにrenameする)。オブジェクトの移行には、table Aだけでなく、table Aが存在するライブラリ全体(またはインスタンス全体)を選択してください。そうしないとエラーが報告されます。
      設定項目の説明
      移行のタイプ お客様のシナリオに合わせて選択してください。
      • 構造移行:データベース内のライブラリやテーブルなどの構造化データを移行します。
      • フル移行:データベース全体を移行します。移行データは、タスクの開始時にソースデータベースに存在していたもののみを対象とします。タスクの開始後にソースライブラリにリアルタイムで新たに書き込まれたデータは含まれません。
      • フル移行+増分移行:移行データには、タスクの開始時にソースライブラリに存在していたものが含まれます。また、タスクの開始後にソースライブラリにリアルタイムで新たに書き込まれたデータも含まれます。移行中にソースライブラリにデータが書き込まれ、ダウンタイムなしでスムーズな移行が必要な場合は、このシナリオを選択します。
      移行対象
      • インスタンス全体:インスタンス全体を移行しますが、information_schema、mysql、performance_schema、sysなどのシステム・ライブラリは含まれません。
      • 指定したオブジェクト:指定したオブジェクトを移行します。
      指定のオブジェクト ソースライブラリのオブジェクトから移行するオブジェクトを選択し、選択したオブジェクトボックスに移動します。
      アカウントを移行するかどうか ソースライブラリのアカウント情報を移行する必要がある場合は、この機能をチェックします。
    5. 検証タスクページで、検証を実行し、検証タスクが通過したら、タスクを開始するをクリックします。
    6. データ移行タスクのリストを返します。タスクが実行準備状態になり、1分~2分後にデータ移行タスクが正式に開始されます。
      • 構造移行またはフル移行を選択します:タスクが完了すると自動的に終了します。手動で終了する必要がありません。
      • フル移行+増分移行を選択します:フル移行が完了すると、自動的に増分データの同期フェーズに入ります。増分データの同期は自動的に終了しません。手動で完了をクリックして増分データの同期を終了させてください。
        • 適切な時間を選択して増分データの同期を手動で完了し、ビジネスの切り替えを完了してください。
        • 移行フェーズが増分同期であることを確認し、無遅延状態を表示し、ソースライブラリの書き込みを数分間停止します。
        • ターゲットとソース・ライブラリのデータ・ギャップが0MBで、ターゲットとソース・ライブラリの遅延時間が0秒の場合に、増分同期を手動で完了します。
    7. 移行タスクのステータスがタスク成功に変わるとき、InnoDBデータをRocksDBに同期することができます。
    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)