Anda dapat menggunakan Layanan Transmisi Data (DTS) untuk memigrasikan database Redis yang di-host secara lokal, pada instance ECS, atau di cloud pihak ketiga ke Tair (Redis OSS-compatible) tanpa gangguan layanan. DTS mendukung migrasi penuh dan inkremental ke Tair (Redis OSS-compatible), sementara layanan database tetap beroperasi. Metode ini menawarkan kinerja dan keamanan lebih tinggi dibandingkan dengan migrasi data menggunakan metode AOF.
Ikhtisar Fungsi
Migrasi Penuh
DTS memigrasikan semua data historis dari database sumber ke database tujuan. Migrasi penuh tidak dikenakan biaya.
Migrasi Inkremental
Selain migrasi penuh, DTS menyinkronkan pembaruan inkremental dari database sumber ke database tujuan secara real-time. Untuk melakukan migrasi inkremental, Anda harus dapat menjalankan perintah
PSYNCatauSYNCpada database sumber. Jika tidak, Anda hanya dapat melakukan migrasi penuh. Migrasi inkremental dikenakan biaya berdasarkan durasi migrasi, bukan volume data. Untuk informasi lebih lanjut, lihat Item Penagihan.CatatanUntuk memastikan migrasi inkremental berhasil, Anda harus menonaktifkan batas buffer output replikasi pada database sumber. Untuk melakukannya, sambungkan ke database sumber dan jalankan perintah berikut:
CONFIG SET client-output-buffer-limit 'slave 0 0 0'.
Prasyarat
Anda telah membuat instans Tair (Redis OSS-compatible). Instans tujuan harus memiliki lebih banyak memori daripada yang digunakan oleh database Redis yang dikelola sendiri. Untuk informasi lebih lanjut, lihat Buat Instans.
Total memori database tujuan harus setidaknya 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 ini terjadi, Anda harus membersihkan database tujuan dan mengonfigurasi ulang tugas.
Peringatan
Selama migrasi, jangan skala instans, ubah jenis 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, sehingga kami sarankan Anda melakukan migrasi selama jam-jam sepi.
Prosedur
Pergi ke 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 informasi 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 sarankan Anda menentukan nama deskriptif yang memudahkan identifikasi tugas. Anda tidak perlu menentukan nama tugas yang unik.
Source Database
Select DMS Database Instance
Jika Anda telah menambahkan database sumber ke DMS, Anda dapat memilihnya di sini. Setelah dipilih, Anda tidak perlu mengisi informasi database sumber di bawah ini. Jika belum ditambahkan, abaikan opsi ini.
Database Type
Pilih Tair/Redis.
Connection Type
Pilih jenis koneksi berdasarkan lokasi penyebaran database sumber. Jika instans berada di pusat data lokal atau cloud pihak ketiga, pilih Public IP.
Contoh ini menggunakan Self-managed Database On ECS.
Instance Region
Pilih wilayah tempat instans ECS berada. Jika instans berada di pusat data lokal atau cloud pihak ketiga, pilih wilayah terdekat dengan database sumber.
Cross-Alibaba Cloud Account
Contoh ini menunjukkan migrasi dalam satu akun Alibaba Cloud. Pilih No.
ECS Instance ID
Pilih ID instans ECS tempat database sumber berada.
CatatanJika database sumber menggunakan arsitektur kluster, pilih ID instans ECS tempat node master berada.
Instance Mode
Pilih mode berdasarkan arsitektur database sumber:
Basic Edition: Arsitektur standar (master-replika).
Cluster Edition: Arsitektur kluster. Jika database sumber menggunakan arsitektur kluster, masukkan nomor port node master mana pun untuk parameter Port.
Port
Masukkan port database Redis sumber. Defaultnya adalah 6379.
Authentication Method
Pilih Password Logon atau Password-free Logon sesuai kebutuhan.
CatatanJika database Redis yang dikelola sendiri Anda tidak memiliki kata sandi, Anda dapat memilih Password-free Logon.
Database Password
Masukkan kata sandi yang digunakan untuk terhubung ke database Redis sumber.
CatatanParameter ini opsional. Jika tidak ada kata sandi yang diatur, Anda dapat membiarkannya kosong.
Jika Anda menggunakan akun kustom, akun tersebut harus memiliki izin baca. Format untuk akun dan kata sandi adalah <user>:<password>. Sebagai contoh, jika akun kustom untuk instans Redis adalah admin dan kata sandinya Rp829dlwa, masukkan admin:Rp829dlwa untuk kata sandi database.
Connection Method
Pilih Unencrypted Connection atau SSL Encrypted Connection sesuai kebutuhan.
CatatanJika database Redis yang dikelola sendiri Anda (di mana Connection Type bukan Cloud Instance) menggunakan SSL Encrypted Connection, Anda juga harus mengunggah CA Certificate dan memasukkan CA Key.
Destination Database
Select DMS Database Instance
Jika Anda telah menambahkan database tujuan ke DMS, Anda dapat memilihnya di sini. Setelah dipilih, Anda tidak perlu mengisi informasi database tujuan di bawah ini. Jika belum ditambahkan, abaikan opsi 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 Logon atau Password-free Logon sesuai kebutuhan. Contoh ini menggunakan Password Logon.
CatatanJika fitur akses tanpa kata sandi untuk VPC tidak diaktifkan untuk instans Tair (Kompatibel dengan Redis OSS), pilih Password Logon.
Database Password
Masukkan kata sandi untuk terhubung ke database tujuan.
CatatanJika Anda menggunakan akun kustom, akun tersebut harus memiliki izin tulis. Format untuk akun dan kata sandi adalah <user>:<password>. Sebagai contoh, jika akun kustom untuk instans Redis adalah admin dan kata sandinya Rp829dlwa, masukkan admin:Rp829dlwa untuk kata sandi database.
Connection Method
Pilih Unencrypted Connection atau SSL Encrypted Connection sesuai kebutuhan.
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 Redis asli 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 melintasi seluruh database sumber dan menulis data yang dilintasi ke tujuan. Untuk memastikan konsistensi data, jangan menulis 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 akan dilaporkan selama fase pemeriksaan awal, dan tugas migrasi tidak dimulai. Jika tidak ada kunci, pemeriksaan akan lolos.
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 dan 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 adalah 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 Konfigurasi 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 tautan migrasi DTS. Kelas instans yang lebih tinggi memberikan laju migrasi yang lebih cepat tetapi biaya lebih mahal. Defaultnya adalah Tingkat Tinggi. Untuk informasi lebih lanjut, lihat Spesifikasi Tautan 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 telah dimigrasikan. Untuk informasi lebih lanjut, lihat Validasi Data yang Dimigrasikan.
Referensi
Jika database Anda tidak memerlukan migrasi online, Anda dapat menggunakan alat ringan seperti redis-cli untuk mengimpor file AOF untuk migrasi data. Untuk informasi lebih lanjut, lihat Migrasi Data Menggunakan File AOF.
FAQ
Mengapa tes koneksi gagal?
Periksa item berikut:
Akun atau kata sandi salah. Format kata sandi Redis adalah
user:kata_sandi. Untuk informasi lebih lanjut, lihat Metode Log Masuk 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 terkait 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 jenis 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. 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 mengakibatkan database tujuan memiliki lebih banyak data daripada sumber.
Mengapa pemeriksaan awal memverifikasi apakah kebijakan penggantian Redis diatur ke noeviction?
Kebijakan penggantian data default (maxmemory-policy) untuk Tair (Kompatibel dengan Redis OSS) adalah volatile-lru. Jika database tujuan kehabisan memori, penggantian 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 penggantian data 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 penggantian. Untuk informasi lebih lanjut tentang kebijakan penggantian data, lihat Kebijakan Penggantian 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 memastikan apakah skrip berhasil dieksekusi karena tujuan tidak secara eksplisit mengembalikan hasil eksekusi.
Lampiran: Pengaturan Lanjutan
Konfigurasi | Deskripsi |
Retry Time for Failed Connections | Jika tugas migrasi gagal terhubung, DTS terus mencoba menghubungkan kembali. Durasi coba ulang default adalah 720 menit, dengan rentang nilai antara 10 hingga 1.440 menit. Jika koneksi dipulihkan dalam durasi coba ulang, tugas migrasi dilanjutkan secara otomatis. Jika tidak, tugas akan gagal. Anda dapat menyesuaikan durasi coba ulang sesuai kebutuhan bisnis Anda. Kami sarankan untuk mengatur durasi minimal 30 menit. DTS tetap membebankan biaya layanan selama periode coba ulang. |
Retry Time for Other Issues | Selama migrasi, jika masalah non-konektivitas terjadi pada database sumber atau tujuan, DTS melaporkan kesalahan dan terus mencoba ulang. Durasi coba ulang default adalah 10 menit, dengan rentang nilai antara 10 hingga 1.440 menit. Jika operasi terkait berhasil dilakukan dalam durasi coba ulang, tugas migrasi dilanjutkan secara otomatis. Jika tidak, tugas akan gagal. Kami sarankan untuk mengatur durasi minimal 10 menit. |
Enable Throttling for Incremental Data Migration | Menulis data inkremental dapat meningkatkan beban pada instans tujuan. Anda dapat mengendalikan migrasi inkremental dengan menetapkan batasan jumlah baris dan volume data yang dimigrasikan per detik. Ini membantu mengurangi beban pada instans tujuan. Defaultnya adalah No. |
Environment Tag | Anda dapat memilih tag lingkungan untuk mengidentifikasi instans. |
Extend Key Expiration Time In The Destination Database | Pengaturan ini memperpanjang waktu kedaluwarsa untuk kunci di database tujuan. Perpanjangan default adalah 1.800 detik. Jika kunci sudah kedaluwarsa pada saat migrasi, kunci tersebut tidak akan dimigrasikan ke database tujuan. |
Use Slave Node | Ketika Instance Mode dari sumber Redis yang dikelola sendiri adalah Cluster, Anda dapat memilih apakah akan membaca data dari node slave. Defaultnya adalah No, yang berarti data dibaca dari node master. |
Configure ETL | Anda dapat mengonfigurasi fitur ekstrak, transformasi, dan muat (ETL). Untuk informasi lebih lanjut tentang ETL, lihat Apa itu ETL?.
|
Alert Monitoring | Menentukan apakah akan mengonfigurasi peringatan untuk instans sinkronisasi data. Jika tugas gagal atau latensi sinkronisasi melebihi ambang batas yang ditentukan, kontak peringatan akan menerima notifikasi. Nilai valid:
|