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 クラスターから 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
パラメーター設定によって決まり、ソースクラスター内の各シャードの増分データはターゲットクラスター内の対応するシャードに同期されます)。 次の表で、関連パラメーターについて説明します。
パラメーター | 説明 |
---|---|
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 |
移行例
画像のコールアウト部分を以下に説明します。
- 各シャードの同期情報と同期ステータスを表示します。
IP:PORT
は--sync-role
パラメーター設定に基づいて、シャードごとに選択され、IP:PORT を 1 つずつプリントアウトします。- 各シャードの同期ステータスをログファイルに出力します。