redis-sync-manager を使用して、オンプレミス Redis クラスターから ApsaraDB Redis クラスターへデータを移行します。

前提条件

  • redis-sync-manager では、 redis-port を使用したデータの移行を行うため、 $PATH 環境変数 で redis-port を指定します。
  • ソースとターゲットの基本データに必要なメモリ使用量の要件、および現在の並行性について知っておく必要があります。
  • ソースクラスター内のどのスロットも中間移行状態になっていないことを確認します。

移行ツール

  • redis-port: シングル Redis プロセスからターゲット ApsaraDB for Redis クラスターにデータを同期するために使用されます。
  • redis-sync-manager : redis-port の補助として機能し (redis-portは redis-sync-manager にカプセル化されています)、ソース Redis クラスターからターゲット ApsaraDB for Redis クラスターにデータを同期するために使用されます。

ツールのダウンロード

redis-sync-manager

説明

次のコマンドを実行して、ユーザーが作成した Redis クラスターから ApsaraDB for Redis クラスターにデータを移行します。

./redis-sync-manager --from=src_host:src_port --target=dst_host:dst_port [--password=src_password]  [--auth=dst_password] [--filterkey="str1|str2|str3"] [--targetdb=DB] [--rewrite] [--bigkeysize=SIZE] [--logfile=REDISPORT.LOG] [--httpport=HTTPPORT] [--sync-parallel=INT] [--sync-role="master|slave"]

redis-sync-manager の移行メカニズム

redis-sync-manager は src_host:src_port と対話して、最初に cluster nodes コマンドを通じてクラスタートポロジに関する情報を取得します。 次に、 --sync-role パラメーター設定に基づいて、同期されるシャードの IP:PORT 一覧が返されます。 最後に、redis-sync-manager は redis-port を呼び出してデータを同期させます。 (完全データ同期の並行性は --sync-parallel パラメーター設定によって決まり、ソースクラスター内の各シャードの増分データはターゲットクラスター内の対応するシャードに同期されます)。 次の表で、関連パラメーターについて説明します。

表 1. パラメーターの説明
パラメーター 説明
src_host ユーザーが作成した Redis データベースのドメイン名または IP アドレス。 このパラメーターをユーザーが作成した Redis クラスター内のプロセスの IP アドレスに設定します。
src_port ユーザーが作成した Redis データベースのポート。 このパラメーターを src_host に指定された IP アドレスに対応するポートに設定します。
src_password ユーザーが作成した Redis データベースのパスワード
dst_host ApsaraDB for Redis データベースのドメイン名
dst_port ApsaraDB for Redis データベースのポート
dst_password ApsaraDB for Redis データベースのパスワード
str1|str2|str3 str1、str2、または str3 でキーをフィルターします。
DB ApsaraDB for Redis に同期するデータベース
rewrite すでに書き込まれているキーを上書きします。
bigkeysize=SIZE 書き込まれた値が SIZE より大きい場合、ビッグキー書き込みモードを使用していることを示します。
--logfile=REDISPORT.LOG edis-sync-manager.log などのログファイル名。 移行中、移行されたシャードに対して異なるログファイルが生成され、移行中のシャードのシリアル番号が対応するログファイル名に自動的に追加されます。 デフォルト値: logs/redis-sync-manager.log
--sync-parallel=INT 並行性がデータ同期でサポートされているかどうかを示し、実行可能なメモリ使用量を表示します。 デフォルト値: 1
--sync-role="master|slave" ソースクラスターのプライマリデータベースまたはセカンダリデータベースの同期順序を示します。 デフォルト値: master

移行例

画像のコールアウト部分を以下に説明します。

  1. 各シャードの同期情報と同期ステータスを表示します。
  2. IP:PORT--sync-role パラメーター設定に基づいて、シャードごとに選択され、IP:PORT を 1 つずつプリントアウトします。
  3. 各シャードの同期ステータスをログファイルに出力します。