データ移行にはどのような方法がありますか。移行時の注意事項は何ですか。
分散キャッシュデータベースは複数のデータ移行方式をサポートしており、異なるソース環境に適用できます:
移行方式:
|
DTSオンライン移行 | 自社構築Redis / 他社クラウドRedis / Tencent Cloudインスタンス間 | 全量+増分移行をサポートし、業務を停止する必要はありません。 |
RDBファイルインポート(コールドマイグレーション) | RDBバックアップファイルがあります。 | COS経由でアップロード後にインポートし、オフラインシーンに適しています。 |
redis-shakeツール | 自社構築Redis → Tencent Cloud | オープンソースツールであり、柔軟性が高いです。 |
移行前の注意事項:
1. バージョン互換性:ターゲットインスタンスのRedisバージョンはソースバージョン以上である必要があります。高バージョンから低バージョンへの移行はサポートされていません。
2. アーキテクチャの違い:標準アーキテクチャからクラスタアーキテクチャへ移行する際には、ビジネスコードでクロスSlotのマルチKey操作(MGET、トランザクション、LuaクロスKeyなど)を使用しているかどうかを確認する必要があります。クラスタアーキテクチャでは、このような操作は失敗する可能性があります。
3. 容量計画:ターゲットインスタンスのメモリ仕様は、ソース側の使用済みメモリ量の1.5倍以上である必要があります。Buffer領域を予約してください。
4. アカウントパスワード:ソースインスタンスの接続アドレス、ポート、パスワードが正常にアクセスでき、かつセキュリティグループによって制限されていないことを確認してください。
5. 大Keyチェック:ソース側に超大Key(単一Valueが512MBを超える場合など)が存在すると、移行タスクがタイムアウトまたは失敗する可能性があります。移行前に分割することをお勧めします。
移行プロセスにおける注意事項:
DTS移行は全量同期と増分同期の2つの段階に分かれます。全量段階ではソース側に追加の負荷が発生する可能性があるため、低ピーク時に開始することをお勧めします。
増分同期段階ではソース側の帯域幅を継続的に消費します(AOF/RDBストリームの読み取り)。ソース側の負荷を監視することをお勧めします。
移行完了後、手動で移行検証を実行し、データの整合性を確認する必要があります。問題がないことを確認した後、移行完了操作を実行して同期チャネルを切断します。
移行失敗の一般的な原因:
|
ソース側の接続に失敗しました。 | ソース側のアドレス、パスワード、セキュリティグループの設定を確認してください。 |
ターゲットの容量が不足しています。 | ターゲットインスタンスを拡張してから再移行します。 |
バージョンに互換性がありません。 | ターゲットインスタンスのバージョンをアップグレードします。 |
大Keyによるタイムアウト | 大Keyを分割してから再試行します。 |
ソース側でFLUSHALLを実行しました。 | 移行中にソース側でデータベースをクリアすると、ターゲット側のデータもクリアされるため、再移行が必要です。 |