Layanan Transmisi Data (DTS) mendukung sinkronisasi satu arah untuk database Tair (Redis OSS-compatible). Fitur ini cocok untuk berbagai skenario, seperti redundansi geo-aktif dan pemulihan bencana data. Topik ini menjelaskan cara mengonfigurasi tugas sinkronisasi data menggunakan contoh sinkronisasi satu arah antar instans Tair (Redis OSS-compatible).
Ikhtisar fungsi
Migrasi Penuh
DTS memigrasikan semua data historis dari database sumber ke database tujuan. Migrasi penuh tidak dikenakan biaya.
Sinkronisasi Inkremental
Setelah migrasi penuh selesai, DTS menyinkronkan pembaruan inkremental dari database sumber ke database tujuan secara real-time. Sinkronisasi inkremental dikenakan biaya berdasarkan durasi penggunaan, terlepas dari jumlah data yang disinkronkan. Untuk informasi lebih lanjut, lihat Item Penagihan.
Prasyarat
Anda harus membuat instans Tair (Redis OSS-compatible). Instans tujuan harus memiliki memori lebih besar daripada memori yang digunakan oleh instans sumber. 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 dapat terjadi. Jika ini terjadi, Anda harus membersihkan database tujuan dan mengonfigurasi ulang tugas.
Peringatan
Selama migrasi, jangan lakukan penskalaan 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, sehingga kami sarankan Anda melakukan migrasi selama jam-jam sepi.
Prosedur
Pergi ke halaman Tugas Sinkronisasi Data.
Masuk ke Konsol DMS.
Di bilah menu atas, pilih .
Di sebelah kanan Sync Tasks, pilih wilayah instans yang akan disinkronkan.
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 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 Anda memilihnya, Anda tidak perlu mengisi informasi database sumber di bawah ini. Jika belum ditambahkan, abaikan opsi ini.
Database Type
Pilih Tair/Redis.
Connection Type
Pilih Cloud Instance.
Instance Region
Pilih wilayah tempat instans berada.
Cross-Alibaba Cloud Account
Contoh ini menunjukkan migrasi antar instans dalam akun Alibaba Cloud yang sama. Pilih No.
Instance ID
Pilih ID instans database sumber.
Authentication Method
Pilih Password Logon atau Password-free Logon sesuai kebutuhan. Contoh ini menggunakan Password Logon.
CatatanJika fitur akses tanpa kata sandi tidak diaktifkan untuk instans melalui VPC, pilih Password Logon.
Database Password
Masukkan kata sandi untuk akun yang digunakan untuk terhubung ke instans sumber.
CatatanIni opsional. Jika tidak ada kata sandi yang diatur, Anda bisa meninggalkannya 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 adalah admin dan kata sandinya Rp829dlwa, masukkan admin:Rp829dlwa untuk kata sandi database.
Destination Database
Select DMS Database Instance
Jika Anda telah menambahkan database tujuan ke DMS, Anda dapat memilihnya di sini. Setelah Anda memilihnya, 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 tidak diaktifkan untuk instans melalui VPC, 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 adalah admin dan kata sandinya Rp829dlwa, masukkan admin:Rp829dlwa untuk kata sandi database.
Konfigurasikan objek tugas, lalu klik Next: Advanced Configurations di bagian bawah halaman.
Konfigurasi
Deskripsi
Synchronization Type
Full Synchronization + Incremental Synchronization dipilih secara default.
Processing Mode for Existing Destination Tables
Precheck And Block (Default): Memeriksa apakah data (kunci) 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 Errors And Continue Execution: Melewati item Destination Object Data Existence Check. Jika kunci dengan nama yang sama sudah ada di database tujuan, itu akan ditimpa.
Source Objects dan Selected Objects
Di kotak Source Objects, pilih objek yang akan disinkronkan, lalu klik
untuk memindahkannya ke kotak Selected Objects. Untuk menghapus objek, pilih objek tersebut di kotak Selected Objects, lalu klik
untuk memindahkannya kembali ke kotak Source Objects.CatatanObjek migrasi dipilih pada tingkat database (DB 0 hingga DB 255).
Konfigurasikan pengaturan lanjutan, lalu klik Next: Data Verification di bagian bawah halaman.
Anda biasanya 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 kebanyakan 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 menyelesaikannya 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) Untuk Resource Group Configuration, pilih kelompok sumber daya untuk instans DTS. Jika Anda tidak menentukan kelompok sumber daya, default resource group digunakan.
(Opsional) Pilih spesifikasi untuk tautan sinkronisasi DTS. Spesifikasi yang lebih tinggi memberikan kecepatan sinkronisasi yang lebih cepat tetapi lebih mahal. Nilai default adalah Tingkat Tinggi. Untuk informasi lebih lanjut, lihat Spesifikasi Tautan Sinkronisasi Data.
Baca dan pilih syarat layanan.
Setelah Anda menyelesaikan pembelian, tugas sinkronisasi dimulai. Anda dapat melihat kemajuan tugas di halaman Tugas Sinkronisasi Data.
Apa yang harus dilakukan selanjutnya
Jika Anda tidak lagi memerlukan sinkronisasi data, Anda dapat secara manual mengakhiri atau melepaskan tugas di konsol.
Tanya Jawab Umum
Mengapa tes koneksi gagal?
Periksa item berikut:
Akun atau kata sandi salah. Format untuk kata sandi Redis adalah
user:kata_sandi. Untuk informasi lebih lanjut, lihat Metode 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 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 penghapusan 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 dalam 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.
Mengapa saya mendapatkan kesalahan
CROSSSLOT Keys in request don't hash to the same slot?Jika instans tujuan menggunakan arsitektur kluster, Redis tidak mendukung operasi lintas slot dalam satu perintah. Selama sinkronisasi DTS, Anda hanya harus melakukan operasi kunci tunggal untuk menghindari gangguan tautan.
Perintah apa saja yang didukung untuk sinkronisasi?
Perintah berikut didukung:
APPEND
BITOP, BLPOP, BRPOP, dan BRPOPLPUSH
DECR, DECRBY, dan DEL
EVAL, EVALSHA, EXEC, EXPIRE, dan EXPIREAT
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, dan PSETEX
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
SWAPDB dan UNLINK (Dua perintah ini hanya dapat disinkronkan jika versi mesin instans Redis sumber adalah 4.0)
XADD, XCLAIM, XDEL, XAUTOCLAIM, XGROUP CREATECONSUMER, dan XTRIM
Perintah PUBLISH tidak dapat disinkronkan.
Jika Anda menjalankan perintah EVAL atau EVALSHA untuk memanggil skrip Lua, DTS tidak dapat mengidentifikasi apakah skrip Lua ini dieksekusi di database tujuan. Hal ini karena database tujuan tidak secara eksplisit mengembalikan hasil eksekusi skrip Lua selama sinkronisasi data inkremental.