全部产品
Search
文档中心

Tair (Redis® OSS-Compatible):Migrasi dari database lokal ke Alibaba Cloud

更新时间:Dec 29, 2025

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 PSYNC atau SYNC pada 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.

    Catatan

    Untuk 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.

Catatan

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

  1. Pergi ke halaman daftar tugas migrasi.

    1. Masuk ke Data Management (DMS) console.

    2. Di bilah menu atas, pilih Data + AI > Data Transmission Service (DTS) > Data Migration.

    3. Di sebelah kanan Migration Tasks, pilih wilayah tempat instans tujuan Anda berada.

  2. Klik Create Task.

  3. 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.

    Catatan

    Jika 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.

    Catatan

    Jika 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.

    Catatan
    • Parameter 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.

    Catatan

    Jika 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.

    Catatan

    Jika 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.

    Catatan

    Jika 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.

  4. 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 image.png untuk memindahkannya ke kotak Selected Objects. Untuk menghapus objek yang dipilih, klik objek tersebut di kotak Selected Objects, lalu klik image.png untuk memindahkannya kembali ke kotak Source Objects.

    Catatan

    Granularitas migrasi adalah pada tingkat database (DB 0 hingga DB 255).

  5. 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.

  6. 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.

  7. 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.

  8. 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:

  • No: Tidak mengaktifkan peringatan.

  • Yes: Mengonfigurasi peringatan. Dalam hal ini, Anda juga harus mengonfigurasi ambang batas peringatan dan pengaturan notifikasi peringatan. Untuk informasi lebih lanjut, lihat bagian "Konfigurasikan Pemantauan dan Peringatan Saat Membuat Tugas DTS" dari topik Konfigurasikan Pemantauan dan Peringatan.