Metode CDC tabel perubahan memungkinkan pengguna mempertahankan log untuk waktu yang lebih singkat, sehingga
menghemat ruang penyimpanan, tetapi mendukung throughput yang lebih rendah dibandingkan dengan metode log transaksi. Metode ini memiliki lebih sedikit batasan daripada log transaksi. Misalnya,
hal ini menghilangkan risiko pemotongan log yang menyebabkan streaming gagal secara permanen,
dan mendukung replikasi tabel terenkripsi. Untuk mengetahui informasi selengkapnya, lihat
Batasan umum.
Saat menggunakan metode CDC ini, perubahan pada sumber dilacak menggunakan tabel perubahan khusus. Log transaksi masih digunakan, tetapi dalam batas tertentu, dan Anda
tidak perlu menyimpannya dalam waktu yang lebih lama. Saat peristiwa DML diterapkan ke
tabel sumber, perubahan direplikasi ke tabel perubahan yang sesuai.
Tabel perubahan memiliki struktur yang sama dengan tabel sumber, tetapi dengan kolom tambahan untuk menyertakan metadata perubahan. Hanya transaksi yang di-commit yang
ditambahkan ke tabel perubahan, beserta nomor urut log (LSN)
operasi commit.
Log transaksi
Saat menggunakan metode CDC ini, Datastream membaca perubahan di sumber
secara langsung dari log transaksi. Metode ini memerlukan lebih sedikit resource dan memungkinkan
pengambilan data yang lebih cepat, tetapi memiliki lebih banyak batasan.
Untuk mencegah kehilangan data, log tidak boleh terpotong sebelum
Datastream membacanya. Di sisi lain, jika Anda menyimpan file log terlalu lama, file tersebut akan menghabiskan ruang penyimpanan, yang pada akhirnya dapat menyebabkan instance database masuk ke mode hanya baca.
Untuk memastikan pembaca CDC memiliki cukup waktu untuk membaca log sekaligus mengizinkan
pemotongan log untuk mengosongkan ruang penyimpanan, Anda perlu menerapkan langkah konfigurasi
tambahan, seperti mengubah interval polling dan menyiapkan pengamanan pemotongan.
Langkah-langkah ini memberikan lapisan perlindungan tambahan untuk memastikan bahwa Datastream
dapat membaca data meskipun ada periode nonaktif di sisi Datastream atau
masalah konektivitas antara database sumber dan Datastream.
Datastream mendukung versi dan edisi database SQL Server berikut:
Dikelola sendiri (di lokal atau dihosting di cloud) menggunakan versi berikut:
Enterprise: 2008 dan yang lebih baru
Standar: 2016 SP1 dan yang lebih baru
Developer: 2008 dan yang lebih baru
Amazon RDS for SQL Server
Azure SQL Database (tingkat S3 dan yang lebih tinggi).
Cloud SQL untuk SQL Server
Datastream tidak mendukung versi database SQL Server berikut:
Edisi SQL Server Standard dari versi 2008 hingga 2014
SQL Server Express
SQL Server Web
Batasan umum
Batasan yang diketahui untuk menggunakan database SQL Server sebagai sumber meliputi:
Aliran data dibatasi hingga 10.000 tabel.
Tabel yang memiliki lebih dari 500 juta baris tidak dapat diisi ulang kecuali jika
kondisi berikut terpenuhi:
Tabel memiliki indeks unik.
Tidak ada kolom indeks yang nullable.
Semua kolom indeks disertakan dalam aliran data.
Database dengan ketahanan tertunda atau pemulihan database yang dipercepat (ADR) yang diaktifkan
tidak didukung.
Streaming perubahan pada tabel sistem tidak didukung.
Autentikasi Windows Active Directory (AD) tidak didukung.
Jenis data berikut tidak didukung, dan tidak direplikasi ke tujuan:
SQL_VARIANT
HIERARCHYID
GEOMETRY
GEOGRAPHY
Datastream mereplikasi jenis data yang ditentukan pengguna, tetapi ini adalah jenis data dasar
yang Anda gunakan untuk mendapatkan jenis yang ditentukan pengguna yang disimpan di
tujuan. Misalnya, jika Anda menentukan jenis data USERNAME berdasarkan jenis data VARCHAR(50), data akan disimpan di tujuan sebagai VARCHAR(50).
Datastream tidak mendukung CDC untuk kolom objek besar (TEXT,
NTEXT, XML, IMAGE) dan kolom panjang variabel maksimum
(VARCHAR(MAX), VARBINARY(MAX), NVARCHAR(MAX)) dalam tabel tanpa indeks
unik.
Jika kolom objek besar tidak disertakan dalam streaming, CDC akan didukung.
Datastream tidak mendukung replikasi perubahan skema sumber saat menggunakan metode CDC tabel perubahan. Perubahan skema berikut dapat menyebabkan kerusakan data atau kegagalan untuk memproses peristiwa:
Menambahkan kolom: kolom baru tidak direplikasi ke tujuan.
Menghapus kolom: data dalam kolom ini diganti dengan nilai NULL.
Mengubah jenis data: Datastream mencoba menyisipkan data ke
tujuan dan menampilkan error jika data ditolak.
Mengganti nama kolom: tidak didukung untuk SQL Server saat CDC diaktifkan.
Datastream tidak mendukung penyamaran data. Data direplikasi tanpa
masking.
Datastream tidak mendukung replikasi perubahan yang diterapkan ke database menggunakan paket Data Tier Application Package (DACPAC).
Datastream tidak mereplikasi perubahan yang dilakukan menggunakan pernyataan WRITETEXT atau
UPDATETEXT.
Datastream tidak mendukung replikasi kolom yang dihitung kecuali jika kolom tersebut ditandai PERSISTED.
Datastream tidak mendukung jenis kompresi PAGE, COLUMNSTORE, atau COLUMNSTORE ARCHIVE.
Batasan tambahan saat menggunakan metode log transaksi
Jika Anda menggunakan metode CDC log transaksi, batasan tambahan berikut
berlaku:
Enkripsi Data Transparan (TDE) tidak didukung.
Enkripsi Tingkat Kolom tidak didukung. Data dalam kolom ini diganti dengan
nilai NULL.
Datastream tidak mendukung pernyataan ROLLBACK TO SAVEPOINT.
Peristiwa rollback tersebut diabaikan dan tidak direplikasi ke tujuan.
Datastream tidak mendukung CDC untuk baris yang lebih besar dari 8 KB dalam
jenis tabel berikut:
Tabel tanpa indeks unik
Tabel yang hanya berisi indeks unik non-cluster dengan satu atau beberapa kolom dengan panjang variabel (VARCHAR, VARBINARY, NVARCHAR)
Datastream tidak mendukung CDC untuk kolom objek besar (TEXT,
NTEXT, XML, IMAGE) dalam jenis tabel berikut:
Tabel tanpa indeks unik
Tabel yang hanya berisi indeks unik non-cluster dengan satu atau beberapa kolom dengan panjang variabel (VARCHAR, VARBINARY, NVARCHAR)
Jika kolom objek besar tidak disertakan dalam streaming, CDC hanya didukung
untuk tabel tersebut jika memiliki indeks yang valid.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-12 UTC."],[[["\u003cp\u003eDatastream captures data changes from SQL Server databases using either change tables or transaction logs, with change tables offering lower storage needs but slower throughput, and transaction logs providing faster retrieval but with more limitations.\u003c/p\u003e\n"],["\u003cp\u003eSupported SQL Server versions include Enterprise (2008 and later), Standard (2016 SP1 and later), and Developer (2008 and later) for self-managed instances, as well as Amazon RDS, Azure SQL Database (S3 tier and above), and Cloud SQL for SQL Server.\u003c/p\u003e\n"],["\u003cp\u003eThere are limitations when using SQL Server as a source, such as a maximum of 10,000 tables per stream, the inability to backfill tables with more than 500 million rows without specific indexing conditions, and certain data types and features that are not supported.\u003c/p\u003e\n"],["\u003cp\u003eWhen using the transaction logs CDC method, additional limitations apply, including the lack of support for Transparent Data Encryption (TDE), Column Level Encryption, and the \u003ccode\u003eROLLBACK TO SAVEPOINT\u003c/code\u003e statement.\u003c/p\u003e\n"],["\u003cp\u003eSchema changes when using the change tables CDC method such as adding, dropping, renaming, or modifying data types in columns are not supported and can cause data corruption or processing failure.\u003c/p\u003e\n"]]],[],null,["# Source SQL Server database\n\nThis page contains information about:\n\n- The behavior of how Datastream handles data that's being pulled from a source SQL Server database.\n- The versions of SQL Server databases that Datastream supports.\n- Known limitations for using SQL Server database as a source.\n\nBehavior\n--------\n\nDatastream tracks data manipulation language (DML) changes using one\nof the following CDC methods:\n\n- [Change tables](#change-tables)\n- [Transaction logs](#transaction-logs)\n\n### Change tables\n\nThe change tables CDC method lets users retain logs for a shorter time, and thus\nsave storage space, but supports lower throughput compared to the transaction\nlogs method. The method has fewer limitations than transaction logs. For example,\nit eliminates the risk of log truncation leading to streams failing permanently,\nand supports replication of encrypted tables. For more information, see\n[Known limitations](#sqlserverknownlimitations).\n\nWhen using this CDC method, changes to the source are tracked using dedicated\nchange tables. Transaction logs are still used, but to a limited extent, and you\ndon't need to retain them for longer periods. As DML events are applied to the\nsource tables, the changes are replicated to the corresponding change tables.\nThe change tables have the same structure as the source tables, but with extra\ncolumns to include the metadata for the changes. Only committed transactions are\nadded to the change tables, along with the log sequence number (LSN) of the\ncommit operation.\n| **Note:** Datastream only replicates changes from the default capture instance whose name is [`\u003cschema_name\u003e_\u003ctable_name\u003e`](https://learn.microsoft.com/en-us/sql/relational-databases/system-tables/cdc-capture-instance-ct-transact-sql?view=sql-server-ver16).\n\n### Transaction logs\n\nWhen using this CDC method, Datastream reads changes in the source\ndirectly from transaction logs. This method requires fewer resources and allows\nfor faster data retrieval, but has [more limitations](#tl-limitations).\n\nTo prevent data loss, it's important that the logs aren't truncated before\nDatastream reads them. On the other hand, if you keep the log files for\ntoo long, they take up storage space, which might eventually cause the database\ninstance to enter read-only mode.\n\nTo make sure that the CDC reader has enough time to read the logs while allowing\nlog truncation to free up storage space, you need to apply additional configuration\nsteps, such as changing polling intervals and setting up a truncation safeguard.\nThese steps provide an additional layer of protection to ensure that Datastream\ncan read the data even if there's downtime on the Datastream side or a\nconnectivity issue between the source database and Datastream.\n\nFor detailed instructions on how to apply these additional measures, see the\n[Configure a source SQL Server database](/datastream/docs/configure-your-source-sql-server-database)\npage and select your database type.\n\nVersions\n--------\n\nDatastream supports the following versions and editions of SQL Server\ndatabases:\n\n- Self-managed (on-premise or cloud-hosted) using the following versions:\n - Enterprise: 2008 and later\n - Standard: 2016 SP1 and later\n - Developer: 2008 and later\n- Amazon RDS for SQL Server\n- Azure SQL Database (tier S3 and above).\n\n | **Note:** Only supported when using the change tables CDC method.\n- Cloud SQL for SQL Server\n\nDatastream doesn't support the following versions of SQL Server databases:\n\n- SQL Server Standard edition from version 2008 to 2014\n- SQL Server Express\n- SQL Server Web\n\nKnown limitations\n-----------------\n\nKnown limitations for using SQL Server database as a source include:\n\n- Streams are limited to 10,000 tables.\n- A table that has more than 500 million rows can't be backfilled unless the following conditions are met:\n 1. The table has a unique index.\n 2. None of the index columns are nullable.\n 3. All columns of the index are included in the stream.\n- Databases with delayed durability or accelerated database recovery (ADR) enabled aren't supported.\n- Streaming changes to system tables isn't supported.\n- Windows Active Directory (AD) authentication isn't supported.\n- The following data types aren't supported, and aren't replicated to the destination:\n - `SQL_VARIANT`\n - `HIERARCHYID`\n - `GEOMETRY`\n - `GEOGRAPHY`\n- Datastream replicates user-defined data types, however it's the base data type from which you derive your user-defined type that is stored in the destination. For example, if you define a `USERNAME` data type based on the `VARCHAR(50)` data type, the data is stored in the destination as `VARCHAR(50)`.\n- Datastream doesn't support CDC for large object columns (`TEXT`,\n `NTEXT`, `XML`, `IMAGE`) and maximum variable length columns\n (`VARCHAR(MAX)`, `VARBINARY(MAX)`, `NVARCHAR(MAX)`) in tables without a unique\n index.\n\n If large object columns aren't included in the stream, CDC is supported.\n- Datastream doesn't support replicating source schema changes when\n using the change tables CDC method. The following schema changes might cause data\n corruption or failure to process the events:\n\n - Adding columns: the new columns aren't replicated to the destination.\n - Dropping columns: data in these columns is replaced with `NULL` values.\n - Modifying data types: Datastream tries to insert the data to the destination and raises an error if the data is rejected.\n - Renaming columns: not supported for SQL Server when CDC is enabled.\n- Datastream doesn't support data masking. Data is replicated without\n masking.\n\n- Datastream doesn't support replicating changes applied to the database\n using the Data Tier Application Package (DACPAC) package.\n\n- Datastream doesn't replicate changes made using the `WRITETEXT` or\n `UPDATETEXT` statements.\n\n- Datastream doesn't support replicating [computed columns](https://learn.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table) unless the column is marked `PERSISTED`.\n\n- Datastream doesn't support `PAGE`, `COLUMNSTORE` or `COLUMNSTORE ARCHIVE` compression types.\n\n### Additional limitations when using the transaction logs method\n\nIf you use the transaction logs CDC method, the following additional limitations\napply:\n\n- Transparent Data Encryption (TDE) isn't supported.\n- Column Level Encryption isn't supported. Data in these columns is replaced with `NULL` values.\n- Datastream doesn't support the `ROLLBACK TO SAVEPOINT` statement. Such rollback events are ignored and aren't replicated to the destination.\n- Datastream doesn't support CDC for rows greater than 8 KB in the following types of tables:\n - Tables without a unique index\n - Tables containing only a unique, non-clustered index with one or more variable length columns (`VARCHAR`, `VARBINARY`, `NVARCHAR`)\n- Datastream doesn't support CDC for large object columns (`TEXT`,\n `NTEXT`, `XML`, `IMAGE`) in the following types of tables:\n\n - Tables without a unique index\n - Tables containing only a unique, non-clustered index with one or more variable length columns (`VARCHAR`, `VARBINARY`, `NVARCHAR`)\n\n If large object columns aren't included in the stream, CDC is only supported\n for such tables if they have valid indexes.\n\nWhat's next\n-----------\n\n- Learn how to [configure a SQL Server source](/datastream/docs/configure-your-source-sql-server-database) for use with Datastream."]]