Gunakan redis-cli untuk mengimpor data dari database Redis yang dikelola sendiri ke instans Tair (Redis OSS-compatible) melalui file AOF (Append Only File). Pendekatan ini hanya mendukung migrasi data offline dan tidak menyediakan sinkronisasi real-time. Lakukan migrasi selama jendela pemeliharaan yang telah direncanakan atau saat tidak ada data baru yang ditulis ke instans sumber.
Untuk migrasi real-time, gunakan Data Transmission Service (DTS). Lihat Migrasi data dari database Redis yang dikelola sendiri ke instans Tair (Redis OSS-compatible).
Prasyarat
Sebelum memulai, pastikan bahwa:
Alamat IP klien Anda telah ditambahkan ke daftar putih instans Tair (Redis OSS-compatible). Lihat Konfigurasi daftar putih.
Persistensi AOF diaktifkan pada instans Redis yang dikelola sendiri. Jika belum, jalankan:
CONFIG SET appendonly yesPersistensi hibrida dinonaktifkan pada instans Redis yang dikelola sendiri. Saat
aof-use-rdb-preamblediatur keyes, file AOF berisi header RDB biner yang tidak dapat diurai oleh redis-cli, sehingga impor gagal. Jika instans yang dikelola sendiri menjalankan Redis 5.0 atau versi lebih baru, jalankan:CONFIG SET aof-use-rdb-preamble no
Migrasi data
Langkah 1: Picu penulisan ulang AOF
File AOF secara aktif mengumpulkan semua perintah seiring waktu, termasuk perintah redundan—misalnya, menaikkan nilai counter sebanyak 100 kali menghasilkan 100 entri terpisah. Menjalankan BGREWRITEAOF memadatkan perintah-perintah tersebut menjadi urutan ekuivalen terpendek, sehingga Anda mendapatkan snapshot terbaru dan paling efisien untuk diimpor.
redis-cli -h <self-managed-instance-ip> -p <port> BGREWRITEAOFOutput yang diharapkan:
Background append only file rewriting startedLangkah 2: Impor file AOF ke instans Tair
Contoh berikut mengimpor file bernama appendonly.aof:
redis-cli -h <tair-instance-endpoint> -p <port> -a <password> --pipe < appendonly.aofContohnya:
redis-cli -h r-bp1zxszhcgatnx****.redis.rds.aliyuncs.com -p 6379 -a user:password --pipe < appendonly.aofOutput yang diharapkan:
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 90Jika pesan serupa dengan contoh di atas dikembalikan, migrasi berhasil.
Langkah selanjutnya
Jika persistensi AOF tidak lagi diperlukan pada instans yang dikelola sendiri setelah migrasi, nonaktifkan fitur tersebut:
redis-cli -h <self-managed-instance-ip> -p <self-managed-instance-port> CONFIG SET appendonly noFAQ
Saya mendapat error `ERR Protocol error: too big inline request` saat impor.
Error ini berarti file AOF berisi header RDB biner yang dihasilkan oleh persistensi hibrida. Jalankan CONFIG GET aof-use-rdb-preamble pada instans yang dikelola sendiri untuk memeriksa nilai saat ini. Jika hasilnya yes, jalankan CONFIG SET aof-use-rdb-preamble no, buat ulang file AOF dengan menjalankan BGREWRITEAOF, lalu coba lagi proses impor.
Apakah saya bisa mengekspor file AOF dari instans Tair?
Tidak. Instans Tair (Redis OSS-compatible) tidak mendukung ekspor AOF.
Saya mendapat error `ERR syntax error` saat impor.
Versi instans Tair kemungkinan lebih lama daripada instans Redis yang dikelola sendiri. Beli instans Tair yang versinya sama atau lebih tinggi dibandingkan instans yang dikelola sendiri. Misalnya, jika instans yang dikelola sendiri kompatibel dengan Redis 7.0, maka instans Tair juga harus kompatibel dengan Redis 7.0.