All Products
Search
Document Center

Data Transmission Service:Gunakan OpenAPI untuk mengonfigurasi sinkronisasi data satu arah atau dua arah untuk instans Tair

Last Updated:Apr 25, 2026

Anda dapat menggunakan API Data Transmission Service (DTS) untuk mengonfigurasi sinkronisasi data satu arah atau dua arah untuk instans Tair (Redis OSS-Compatible) Enhanced Edition. Topik ini menjelaskan catatan penggunaan dan menyediakan contoh kode.

Prasyarat

Instans sumber dan tujuan adalah instans Tair (Redis OSS-Compatible) Enhanced Edition.

Catatan

Jika instans Tair menggunakan persistent memory sebagai storage medium-nya, pastikan parameter appendonly diatur ke yes. Untuk informasi selengkapnya, lihat Prosedur.

Catatan penggunaan

  • Untuk sinkronisasi dua arah, tugas sinkronisasi maju melakukan sinkronisasi data penuh awal dan sinkronisasi data inkremental, sedangkan tugas sinkronisasi balik hanya melakukan sinkronisasi data inkremental.

    Peringatan

    Untuk memastikan konsistensi data, jangan memodifikasi atau menulis data ke kunci yang sama di database sumber dan tujuan saat tugas sinkronisasi dua arah sedang berjalan.

  • DTS menggunakan sumber daya dari database sumber dan tujuan selama sinkronisasi data penuh awal, yang dapat meningkatkan beban pada server database. Jika Anda menyinkronkan volume data yang besar atau spesifikasi server tidak memenuhi kebutuhan, layanan database mungkin menjadi tidak tersedia. Sebelum menyinkronkan data, evaluasi dampak sinkronisasi terhadap kinerja instans sumber dan tujuan. Kami menyarankan agar Anda melakukan sinkronisasi data selama jam sepi.

  • Jangan menjalankan perintah FLUSHDB atau FLUSHALL pada instans sumber. Jika tidak, hal ini akan menyebabkan ketidakkonsistenan data antara sumber dan target.

  • Jika database tujuan kehabisan memori dan memicu penggantian data, data mungkin menjadi tidak konsisten antara sumber dan tujuan. Hal ini terjadi karena kebijakan penggantian data default (maxmemory-policy) untuk Tair (Redis OSS-Compatible) adalah volatile-lru. Namun, hal ini tidak memengaruhi operasi tugas secara normal.

    Untuk mencegah masalah ini, kami menyarankan mengatur kebijakan penggantian data untuk database tujuan ke noeviction. Dengan kebijakan ini, jika tujuan kehabisan memori, operasi tulis akan gagal, tugas berhenti, dan tidak ada data yang hilang akibat penggantian.

    Catatan

    Untuk informasi selengkapnya tentang kebijakan penggantian data, lihat Kebijakan penggantian data di Redis.

  • Jika database sumber menggunakan kebijakan kedaluwarsa untuk beberapa kunci, database tujuan mungkin tampak memiliki jumlah kunci yang lebih sedikit (seperti yang dilaporkan oleh perintah seperti info). Hal ini dapat terjadi karena kunci yang telah kedaluwarsa mungkin tidak langsung dihapus di database sumber.

    Catatan

    Jumlah kunci yang tidak memiliki kebijakan kedaluwarsa atau belum kedaluwarsa adalah sama di kedua database sumber dan tujuan.

  • Jika koneksi langsung dinonaktifkan untuk instans Tair (Redis OSS-Compatible) Enhanced Edition tujuan, DTS menggunakan mode penerusan proxy untuk menulis data ke instans tujuan.

    Catatan

    Untuk informasi selengkapnya tentang cara mengaktifkan koneksi langsung, lihat Aktifkan koneksi langsung.

  • Jika instans Redis sumber diskalakan (misalnya, shard ditambahkan atau dihapus) atau spesifikasinya diubah (misalnya, memori ditingkatkan) selama sinkronisasi, Anda harus mengonfigurasi ulang tugas tersebut. Untuk memastikan konsistensi data, kami menyarankan agar Anda menghapus semua data yang telah disinkronkan dari instans Redis tujuan sebelum mengonfigurasi ulang tugas.

  • Jika alamat koneksi instans Redis sumber berubah selama sinkronisasi (misalnya, karena perubahan zona ketersediaan atau peralihan jenis jaringan dari jaringan klasik ke Virtual Private Cloud (VPC)), Anda harus mengonfigurasi ulang tugas tersebut.

  • Batasan berikut berlaku saat Anda menyinkronkan data dari instans Redis standalone ke instans Redis dalam mode kluster. Kluster Redis hanya mengizinkan satu perintah untuk mengoperasikan kunci yang berada dalam slot yang sama. Jika Anda melakukan operasi multi-kunci pada database sumber di mana kunci-kuncinya tersebar di beberapa slot, kesalahan berikut akan terjadi:

    CROSSSLOT Keys in request don't hash to the same slot

    Kami menyarankan agar Anda hanya melakukan operasi satu kunci selama sinkronisasi data untuk mencegah gangguan tugas.

  • Jika instans tujuan adalah instans kluster dan salah satu shard-nya mencapai batas memorinya, atau jika instans tujuan kehabisan storage space, tugas DTS akan gagal dengan error Out of Memory (OOM).
  • Jika fitur enkripsi data transparan (TDE) diaktifkan untuk instans sumber atau tujuan, Anda tidak dapat menggunakan DTS untuk menyinkronkan data dari database sumber ke database tujuan.

  • Jika instans sumber adalah Redis yang dikelola sendiri, kami menyarankan agar Anda mengatur timeout replikasi antara slave dan master (repl-timeout) menjadi 600 detik dengan menggunakan perintah config set repl-timeout 600. Jika database sumber berisi volume data yang besar, Anda dapat meningkatkan nilai parameter repl-timeout.

  • Tugas sinkronisasi dua arah mencakup tugas sinkronisasi maju dan balik. Saat Anda mengonfigurasi atau mereset tugas, jika objek tujuan dari satu tugas cocok dengan objek sinkronisasi dari tugas lainnya:

    • Hanya izinkan satu tugas untuk menyinkronkan data penuh dan inkremental. Tugas lainnya hanya mendukung sinkronisasi inkremental.

    • Data dari sumber tugas saat ini hanya disinkronkan ke tujuan tugas saat ini. Data tersebut tidak berfungsi sebagai data sumber untuk tugas lainnya.

Penagihan

Jenis sinkronisasi

Harga

Sinkronisasi skema dan sinkronisasi data penuh

Gratis.

Sinkronisasi data inkremental

Dikenai biaya. Untuk informasi selengkapnya, lihat Ikhtisar penagihan.

Batasan

Sinkronisasi cascade satu arah tidak didukung. Untuk informasi selengkapnya, lihat Topologi sinkronisasi.

Perintah yang dapat disinkronkan

  • 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, RPOP, RPOPLPUSH, RPUSH, dan RPUSHX

  • SADD, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SINTERSTORE, SMOVE, SPOP, SREM, dan SUNIONSTORE

  • UNLINK, ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK, dan ZREMRANGEBYSCORE

  • SWAPDB (Perintah ini tidak dapat disinkronkan jika instans sumber atau tujuan diterapkan dalam arsitektur kluster.)

Penting
  • Perintah PUBLISH tidak dapat disinkronkan.

  • Jika Anda menjalankan perintah EVAL atau EVALSHA untuk memanggil skrip Lua, DTS tidak dapat mengidentifikasi apakah skrip Lua tersebut dieksekusi di database tujuan. Hal ini karena database tujuan tidak secara eksplisit mengembalikan hasil eksekusi skrip Lua selama sinkronisasi data inkremental.

  • Saat DTS menjalankan perintah SYNC atau PSYNC untuk mentransfer data tipe LIST, DTS tidak menghapus data yang sudah ada. Akibatnya, instans tujuan mungkin berisi catatan data duplikat.

Sebelum memulai

Buat Pasangan Kunci Akses.

Catatan

Untuk melindungi Pasangan Kunci Akses akun Alibaba Cloud Anda, kami menyarankan agar Anda membuat pengguna Resource Access Management (RAM), memberikan izin kepada pengguna RAM tersebut untuk mengakses DTS, lalu menggunakan Pasangan Kunci Akses pengguna RAM tersebut untuk memanggil DTS SDK for Java. Untuk informasi selengkapnya, lihat Kontrol akses ke resource menggunakan pengguna RAM.

Buat instansi sinkronisasi data

  1. Masuk ke OpenAPI Explorer.

  2. Konfigurasikan parameter permintaan sesuai kebutuhan bisnis Anda. Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Nilai

    SourceRegion

    ID wilayah tempat instans sumber berada.

    Tentukan nilai untuk parameter-parameter ini sesuai kebutuhan bisnis Anda.

    DestRegion

    ID wilayah tempat instans tujuan berada.

    Topology

    Topologi sinkronisasi. Nilai yang valid:

    • oneway (default): sinkronisasi satu arah.

    • bidirectional: sinkronisasi dua arah.

    SynchronizationJobClass

    Kelas instans dari instansi sinkronisasi data.

    PayType

    Metode penagihan instansi sinkronisasi data. Nilai yang valid:

    • PrePaid: subscription.

    • PostPaid (default): pay-as-you-go.

    SourceEndpoint.InstanceType

    Jenis instans sumber.

    Atur nilainya ke Redis.

    DestinationEndpoint.InstanceType

    Jenis instans tujuan.

    Atur nilainya ke Redis.

    Catatan

    Untuk informasi selengkapnya, lihat CreateSynchronizationJob.

  3. Di bagian bawah halaman, klik Initiate Call.

  4. Pada tab Response, lihat respons API.

    Catatan

    Catat ID instansi sinkronisasi (SynchronizationJobId) dari respons.

    Penting

    Jika permintaan gagal, Anda perlu memodifikasi parameter permintaan berdasarkan message yang dikembalikan dalam respons dan mengirim permintaan lagi hingga permintaan berhasil.

  5. Opsional: Dapatkan contoh kode SDK.

    1. Klik tab SDK Sample Code.

    2. Tentukan versi SDK dan bahasa pemrograman.

    3. Klik ikon salin di pojok kanan atas bagian kode untuk menyalin kode.

Konfigurasikan tugas sinkronisasi satu arah

Dalam contoh ini, akun database instans sumber memiliki izin baca pada database sumber. Akun database instans tujuan memiliki izin baca dan tulis pada database tujuan.

Catatan

Saat Anda mengonfigurasi sinkronisasi data satu arah, Anda juga dapat menggunakan database Redis yang dikelola sendiri atau instans Tair (Redis-compatible) sebagai database sumber atau tujuan. Metode konfigurasinya mirip dengan contoh ini, tetapi Anda harus menyesuaikan parameter permintaan yang sesuai, seperti MigrationReserved.

  1. Masuk ke OpenAPI Explorer.

  2. Konfigurasikan parameter permintaan sesuai kebutuhan bisnis Anda.

    Catatan

    Anda harus mengatur parameter SynchronizationDirection ke Forward. Untuk informasi selengkapnya, lihat ConfigureSynchronizationJob.

  3. Di bagian bawah halaman, klik Initiate Call.

  4. Pada tab Response, lihat respons API.

    Penting

    Jika panggilan gagal, periksa Message dalam respons, perbaiki masalahnya, lalu coba lagi.

  5. Opsional. Dapatkan contoh kode SDK.

    1. Klik tab SDK Sample Code.

    2. Tentukan versi SDK dan bahasa pemrograman.

    3. Klik ikon salin di pojok kanan atas bagian kode untuk menyalin kode.

Konfigurasikan tugas sinkronisasi dua arah

Dalam contoh ini, akun database yang digunakan untuk sinkronisasi data memiliki izin baca dan tulis.

  1. Konfigurasikan tugas sinkronisasi data dalam arah maju. Untuk informasi selengkapnya, lihat bagian Konfigurasikan tugas sinkronisasi satu arah dalam topik ini.

  2. Tunggu hingga tugas sinkronisasi maju menyelesaikan inisialisasi dan statusnya berubah menjadi Synchronizing.

    Catatan

    Anda dapat melihat status tugas sinkronisasi data di Konsol DTS atau dengan memanggil operasi Query the status of a data synchronization job.

  3. Konfigurasikan tugas sinkronisasi data dalam arah balik.

    1. Opsional. Masuk ke OpenAPI Explorer.

    2. Konfigurasikan parameter permintaan sesuai kebutuhan bisnis Anda.

      Catatan

      Anda harus mengatur parameter SynchronizationDirection ke Reverse. Untuk informasi selengkapnya, lihat ConfigureSynchronizationJob.

    3. Di bagian bawah halaman, klik Initiate Call.

    4. Pada tab Response, lihat respons API.

      Penting

      Jika panggilan gagal, periksa Message dalam respons, perbaiki masalahnya, lalu coba lagi.

    5. Opsional. Dapatkan contoh kode SDK.

      1. Klik tab SDK Sample Code.

      2. Tentukan versi SDK dan bahasa pemrograman.

      3. Klik ikon salin di pojok kanan atas bagian kode untuk menyalin kode.

Referensi