Jika Anda ingin memigrasikan data dari satu Tair (Redis OSS-compatible) instans ke instans Tair (Redis OSS-compatible) lainnya tetapi belum membuat instans tujuan, kami menyarankan menggunakan kloning set cadangan atau fitur flashback data untuk mengkloning data ke instans baru. Jika Anda sudah membuat instans tujuan, kami menyarankan menggunakan Layanan Transmisi Data (DTS) untuk melakukan migrasi data satu arah antar instans. Instans sumber dan tujuan dapat berupa database Redis yang dikelola sendiri atau instans Tair (Redis OSS-compatible). DTS mendukung migrasi data penuh dan inkremental. Saat mengonfigurasi tugas migrasi data, Anda dapat memilih kedua jenis tersebut untuk memastikan kontinuitas layanan. Topik ini membandingkan ketiga metode migrasi data dan menjelaskan cara menggunakan DTS untuk memigrasikan data Redis.
Perbandingan metode untuk migrasi data antar instans Tair (Redis OSS-compatible)
Fitur DTS
Migrasi Penuh
DTS memigrasikan semua data historis dari database sumber ke database tujuan. Migrasi penuh gratis.
Migrasi Inkremental
Selain migrasi penuh, DTS menyinkronkan pembaruan inkremental dari database sumber ke database tujuan secara real-time. Anda akan dikenakan biaya untuk migrasi inkremental berdasarkan durasi tugas, terlepas dari jumlah data yang dimigrasikan. Untuk informasi lebih lanjut, lihat Item yang Dikenakan Biaya.
Prasyarat
Anda telah membuat instans tujuan Tair (Redis OSS-compatible). Instans tujuan harus memiliki lebih banyak memori daripada memori yang digunakan oleh instans sumber. Untuk informasi lebih lanjut, lihat Buat Instans.
Total memori database tujuan harus minimal 10% lebih besar daripada memori yang digunakan oleh database sumber. Jika database tujuan memiliki memori yang tidak mencukupi, ketidaksesuaian data atau kegagalan tugas mungkin terjadi. Jika hal ini terjadi, Anda harus membersihkan database tujuan dan mengonfigurasi ulang tugas.
Perhatian
Selama migrasi, jangan skala instans, ubah tipe instans, atau ubah titik akhir database sumber atau tujuan. Operasi ini dapat menyebabkan tugas migrasi gagal, dan Anda perlu mengonfigurasi ulang. Proses migrasi mengonsumsi sumber daya pada kedua database sumber dan tujuan, jadi disarankan melakukan migrasi selama jam-jam sepi.
Prosedur
Buka halaman daftar tugas migrasi.
Masuk ke Data Management (DMS) console.
Di bilah menu atas, pilih .
Di sebelah kanan Migration Tasks, pilih wilayah tempat instans tujuan Anda berada.
Klik Create Task.
Konfigurasikan database sumber dan tujuan, lalu klik Test Connection And Proceed di bagian bawah halaman.
Kategori
Konfigurasi
Deskripsi
Tidak ada
Task Name
Nama tugas DTS. DTS secara otomatis menghasilkan nama tugas. Kami menyarankan Anda menentukan nama deskriptif yang memudahkan identifikasi tugas. Anda tidak perlu menentukan nama tugas unik.
Source Database
Select DMS Database Instance
Jika Anda telah menambahkan database sumber ke DMS, Anda dapat memilihnya di sini. Setelah Anda memilih database, Anda tidak perlu mengonfigurasi parameter berikut untuk database sumber. Jika Anda belum menambahkan database sumber ke DMS, lewati parameter ini.
Database Type
Pilih Tair/Redis.
Connection Type
Pilih jenis koneksi berdasarkan lokasi penyebaran database sumber. Dalam contoh ini, Cloud Instance dipilih.
Instance Region
Pilih wilayah tempat instans berada.
Cross-account Migration
Contoh ini menunjukkan cara memigrasikan data dalam satu Akun Alibaba Cloud. Pilih No.
Instance ID
Pilih ID instans sumber.
Authentication Method
Pilih Password Login atau Password-free Login sesuai kebutuhan. Dalam contoh ini, Password Login dipilih.
CatatanJika akses tanpa kata sandi melalui VPC tidak diaktifkan untuk instans, pilih Password Login.
Database Password
Masukkan kata sandi akun yang digunakan untuk terhubung ke instans sumber.
CatatanParameter ini opsional. Jika tidak ada kata sandi yang diatur, Anda bisa meninggalkannya kosong.
Kata sandi harus dalam format <user>:<password>. Misalnya, jika nama pengguna adalah admin dan kata sandinya Rp829dlwa, masukkan admin:Rp829dlwa.
Destination Database
Select DMS Database Instance
Jika Anda telah menambahkan database tujuan ke DMS, Anda dapat memilihnya di sini. Setelah Anda memilih database, Anda tidak perlu mengonfigurasi parameter berikut untuk database tujuan. Jika Anda belum menambahkan database tujuan ke DMS, lewati parameter ini.
Database Type
Tair/Redis dipilih secara default.
Connection Type
Pilih Cloud Instance.
Instance Region
Pilih wilayah tempat instans tujuan berada.
Instance ID
Pilih ID instans tujuan.
Authentication Method
Pilih Password Login atau Password-free Login sesuai kebutuhan. Dalam contoh ini, Password Login dipilih.
CatatanJika akses tanpa kata sandi melalui VPC tidak diaktifkan untuk instans, pilih Password Login.
Database Password
Masukkan kata sandi untuk terhubung ke database tujuan.
CatatanKata sandi harus dalam format <user>:<password>. Misalnya, jika nama pengguna instans Redis adalah admin dan kata sandinya Rp829dlwa, masukkan admin:Rp829dlwa.
Konfigurasikan objek tugas, lalu klik Next: Advanced Configuration di bagian bawah halaman.
Konfigurasi
Deskripsi
Migration Types
Pilih Migration Types sesuai kebutuhan.
Full Migration + Incremental Migration (Default): Menggunakan logika sinkronisasi asli Redis untuk menulis data ke tujuan sebagai snapshot memori. Ini memungkinkan migrasi tanpa menghentikan database sumber.
Jika Anda tidak memiliki izin SYNC atau PSYNC pada database sumber, pilih Full Data Migration.
Full Data Migration: Menggunakan perintah SCAN untuk menjelajahi seluruh database sumber dan menulis data yang dijelajahi ke tujuan. Untuk memastikan konsistensi data, jangan tulis data baru ke instans sumber selama migrasi.
Processing Mode for Existing Destination Tables
Precheck And Block On Error (Default): Memeriksa apakah ada kunci yang ada di database tujuan.
Jika kunci ada, kesalahan dilaporkan selama fase pemeriksaan awal, dan tugas migrasi tidak dimulai. Jika tidak ada kunci, pemeriksaan berhasil.
Ignore And Continue: Melewati Check For Existing Objects In The Destination Database. Jika kunci dengan nama yang sama sudah ada di database tujuan, mereka akan ditimpa.
Source Objects and Selected Objects
Di kotak Source Objects, pilih objek yang akan dimigrasikan, lalu klik
untuk memindahkannya ke kotak Selected Objects. Untuk menghapus objek yang dipilih, klik objek tersebut di kotak Selected Objects, lalu klik
untuk memindahkannya kembali ke kotak Source Objects.CatatanGranularitas migrasi berada pada tingkat database (DB 0 hingga DB 255).
Konfigurasikan pengaturan lanjutan, lalu klik Next: Data Validation di bagian bawah halaman.
Dalam banyak kasus, Anda dapat mempertahankan pengaturan default. Untuk informasi lebih lanjut, lihat Lampiran: Pengaturan Lanjutan.
Konfigurasikan pengaturan validasi, lalu klik Next: Save Task And Precheck di bagian bawah halaman.
Dalam banyak kasus, Anda dapat mempertahankan pengaturan default. Untuk informasi lebih lanjut, lihat Konfigurasikan Validasi Data untuk Instans Sinkronisasi atau Migrasi DTS.
Lakukan pemeriksaan awal. Setelah pemeriksaan awal selesai, klik Next: Purchase.
Jika pemeriksaan awal mengembalikan item Warning atau Failed, Anda harus menangani satu per satu. Anda dapat mengklik View Details untuk memperbaiki item berdasarkan instruksi yang diberikan. Anda juga dapat mengklik Confirm Alert Details untuk mengabaikan item tersebut, tetapi ini dapat menyebabkan ketidaksesuaian data dan menimbulkan risiko bagi bisnis Anda. Untuk informasi lebih lanjut, lihat Masalah Pemeriksaan Awal. Setelah Anda menyelesaikan masalah, jalankan pemeriksaan awal lagi.
Di halaman Purchase, konfigurasikan pengaturan, lalu klik Purchase And Start.
(Opsional) Pilih Resource Group untuk tautan migrasi DTS. default resource group digunakan secara default.
(Opsional) Pilih kelas instans untuk link migrasi DTS. Kelas instans yang lebih tinggi memberikan laju migrasi yang lebih cepat tetapi biayanya lebih mahal. Defaultnya adalah Tingkat Tinggi. Untuk informasi lebih lanjut, lihat Spesifikasi Link Migrasi Data.
Baca dan pilih syarat layanan.
Setelah pembelian, tugas migrasi dimulai. Anda dapat melihat kemajuannya di halaman Migrasi Data.
Apa yang Harus Dilakukan Selanjutnya
Jika Anda melakukan migrasi inkremental, Anda harus secara manual mengakhiri atau melepaskan tugas di konsol setelah migrasi selesai.
Anda dapat memvalidasi data yang dimigrasikan. Untuk informasi lebih lanjut, lihat Validasi Data yang Dimigrasikan.
Referensi
Jika Anda ingin mengkloning data lengkap dari instans Tair (Kompatibel dengan Redis OSS) yang sudah ada ke instans Tair (Kompatibel dengan Redis OSS) baru, Anda dapat menggunakan fitur cadangan dan pemulihan. Untuk informasi tentang perbedaan antara mengkloning data ke instans baru menggunakan fitur cadangan dan pemulihan dan memigrasikan data menggunakan DTS, lihat Perbandingan Metode untuk Migrasi Data Antar Instans Tair (Kompatibel dengan Redis OSS).
Untuk informasi lebih lanjut, lihat Pulihkan dari Set Cadangan dan Pulihkan ke Titik Waktu Tertentu.
FAQ
Mengapa tes koneksi gagal?
Periksa item berikut:
Akun atau kata sandi salah. Format kata sandi untuk Redis adalah
user:password. Untuk informasi lebih lanjut, lihat Metode Login untuk Instans.Jika database sumber berada di pusat data lokal atau cloud pihak ketiga, mungkin ada firewall jaringan. Anda harus secara manual menambahkan alamat IP server DTS untuk wilayah yang sesuai ke daftar izin firewall Anda untuk mengizinkan akses dari DTS. Untuk informasi lebih lanjut, lihat Tambahkan Blok CIDR Server DTS ke Daftar Izin.
Mengapa tugas gagal?
Selama migrasi, operasi seperti penskalaan, mengubah tipe instans, atau mengubah titik akhir database sumber atau tujuan akan menyebabkan tugas gagal. Anda harus mengonfigurasi ulang tugas.
Jika instans tujuan memiliki memori yang tidak mencukupi, atau jika itu adalah instans kluster dan shard telah mencapai batas memorinya, tugas DTS akan gagal karena kesalahan kehabisan memori (OOM).
Jika Enkripsi Data Transparan (TDE) diaktifkan untuk instans tujuan, migrasi data menggunakan DTS tidak didukung.
Mengapa ada ketidaksesuaian data?
Jika beberapa kunci di database sumber memiliki kebijakan kedaluwarsa (Expire), jumlah kunci di database tujuan mungkin lebih sedikit daripada di sumber. Hal ini karena kunci yang kedaluwarsa mungkin belum dihapus dengan segera.
Untuk objek List, DTS tidak melakukan operasi FLUSH pada data yang ada di tujuan saat mentransfer data menggunakan PSYNC atau SYNC. Ini dapat menghasilkan data duplikat.
Jika jaringan terputus selama migrasi penuh, DTS mungkin mencoba migrasi penuh beberapa kali. Proses ini secara otomatis menimpa kunci dengan nama yang sama. Jika operasi hapus dilakukan pada database sumber selama percobaan ulang, perintah tersebut tidak disinkronkan ke tujuan. Ini dapat menghasilkan database tujuan memiliki lebih banyak data daripada sumber.
Q: Mengapa saya tidak bisa memilih instans Tair (Kompatibel dengan Redis OSS) 2.8?
A: DTS tidak mendukung instans Tair (Kompatibel dengan Redis OSS) 2.8.
Mengapa pemeriksaan awal memverifikasi apakah kebijakan eviksi Redis diatur ke noeviction?
Kebijakan eviksi data default (maxmemory-policy) untuk Tair (Kompatibel dengan Redis OSS) adalah volatile-lru. Jika database tujuan kehabisan memori, eviksi data dipicu, yang dapat menyebabkan ketidaksesuaian data antara database sumber dan tujuan. Ini tidak memengaruhi operasi normal tugas. Untuk mencegah masalah ini, Anda dapat mengatur kebijakan eviksi data dari database tujuan ke noeviction. Jika Anda menggunakan kebijakan ini dan database tujuan kehabisan memori, penulisan data gagal dan tugas juga gagal. Namun, database tujuan tidak kehilangan data karena eviksi. Untuk informasi lebih lanjut tentang kebijakan eviksi data, lihat Kebijakan Eviksi Data Redis.
Mengapa ada kunci DTS_REDIS_TIMESTAMP_HEARTBEAT di database sumber?
Untuk memastikan kualitas migrasi dan sinkronisasi, DTS menyisipkan kunci dengan awalan DTS_REDIS_TIMESTAMP_HEARTBEAT ke database sumber untuk mencatat timestamp pembaruan. Jika database sumber menggunakan arsitektur kluster, DTS menyisipkan kunci ini ke setiap shard. DTS menyaring kunci ini selama tugas, dan kunci tersebut secara otomatis kedaluwarsa setelah tugas selesai.
Perintah apa saja yang didukung untuk migrasi inkremental?
Perintah berikut didukung:
APPEND
BITOP, BLPOP, BRPOP, dan BRPOPLPUSH
DECR, DECRBY, dan DEL
EVAL, EVALSHA, EXEC, EXPIRE, dan EXPIREAT
FLUSHALL dan FLUSHDB
GEOADD dan GETSET
HDEL, HINCRBY, HINCRBYFLOAT, HMSET, HSET, dan HSETNX
INCR, INCRBY, dan INCRBYFLOAT
LINSERT, LPOP, LPUSH, LPUSHX, LREM, LSET, dan LTRIM
MOVE, MSET, MSETNX, dan MULTI
PERSIST, PEXPIRE, PEXPIREAT, PFADD, PFMERGE, PSETEX, dan PUBLISH
RENAME, RENAMENX, RESTORE, RPOP, RPOPLPUSH, RPUSH, dan RPUSHX
SADD, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SINTERSTORE, SMOVE, SPOP, SREM, dan SUNIONSTORE
ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK, dan ZREMRANGEBYSCORE
XADD, XCLAIM, XDEL, XAUTOCLAIM, XGROUP CREATECONSUMER, dan XTRIM
Untuk skrip Lua yang dipanggil oleh EVAL atau EVALSHA, DTS tidak dapat mengonfirmasi apakah skrip telah dieksekusi dengan sukses karena tujuan tidak secara eksplisit mengembalikan hasil eksekusi.