Değişiklik takibi (CDC / change tracking)
Oracle
-- LogMiner ile redo log'lardan değişiklik oku:
-- 1) İncelenecek arşiv/redo log dosyasını ekle:
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => '/u01/arch/1_1234_1122334455.arc',
OPTIONS => DBMS_LOGMNR.NEW);
-- 2) Oturumu başlat:
EXECUTE DBMS_LOGMNR.START_LOGMNR(
OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
SELECT sql_redo, sql_undo FROM V$LOGMNR_CONTENTS
WHERE seg_name = 'SIPARIS';
-- 3) Bitirince: EXECUTE DBMS_LOGMNR.END_LOGMNR;
-- Kurumsal CDC/çoğaltma için Oracle GoldenGate kullanılır.Oracle değişiklik takibini redo log tabanlı yapar. LogMiner redo/arşiv log'larını SQL'e çevirerek geçmiş DML'i inceler; incelenecek log dosyaları DBMS_LOGMNR.ADD_LOGFILE ile eklenir. Anlamlı sonuç için en az minimal supplemental logging açık olmalıdır (ALTER DATABASE ADD SUPPLEMENTAL LOG DATA). Sürekli, düşük gecikmeli CDC ve heterojen çoğaltma için Oracle GoldenGate (ayrı ürün) standarttır; eski Streams/Change Data Capture özellikleri kullanımdan kalkmıştır.
PostgreSQL
-- Mantıksal çoğaltma (logical decoding) yuvası oluştur:
SELECT * FROM pg_create_logical_replication_slot(
'cdc_slot', 'wal2json');
-- Değişiklikleri JSON olarak tüket:
SELECT data FROM pg_logical_slot_get_changes('cdc_slot', NULL, NULL);PostgreSQL logical decoding, WAL kayıtlarını bir çıktı eklentisi (wal2json, pgoutput, test_decoding) aracılığıyla okunabilir değişiklik akışına çevirir; replication slot değişikliklerin kaybolmamasını sağlar. wal_level=logical olmalıdır. Debezium bu mekanizmayı kullanarak kurumsal CDC sunar.
MySQL
-- Satır tabanlı binlog CDC kaynağıdır (binlog_format=ROW):
SHOW BINARY LOGS;
SHOW BINLOG EVENTS IN 'binlog.000042';
-- Genellikle Debezium/Maxwell binlog'u okuyup akışa çevirir.MySQL'de CDC kaynağı binary log'dur. binlog_format=ROW ile her satır değişikliği kaydedilir. Debezium veya Maxwell gibi araçlar binlog'u replika gibi okuyup Kafka'ya olay akışı üretir. GTID etkinleştirmek konumu güvenilir izlemeyi kolaylaştırır.
SQL Server
-- Change Data Capture'ı veritabanı ve tabloda etkinleştir:
EXEC sys.sp_cdc_enable_db;
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo', @source_name = N'siparis',
@role_name = NULL;
-- Hafif izleme için: ALTER DATABASE ... SET CHANGE_TRACKING = ON;SQL Server iki mekanizma sunar: Change Data Capture (CDC) transaction log'dan tüm DML'i (eski/yeni değerlerle) değişiklik tablolarına yazar; SQL Server Agent gerektirir. Change Tracking ise yalnız hangi satırın değiştiğini (net değişiklik) hafifçe izler, tam veri geçmişi tutmaz.
MongoDB
// Change Streams ile değişiklikleri gerçek zamanlı izle:
const akis = db.siparis.watch([
{ $match: { operationType: { $in: ["insert", "update"] } } }
]);
while (akis.hasNext()) { printjson(akis.next()); }MongoDB Change Streams, oplog üzerine kurulu olarak koleksiyon/veritabanı/küme düzeyinde ekleme, güncelleme, silme olaylarını gerçek zamanlı akış olarak sunar. Replica set veya sharded küme gerektirir. resumeToken ile kesintiden sonra kaldığı yerden devam edilebilir; CDC entegrasyonlarının temelidir.
Redis
# Keyspace notifications ile anahtar değişikliklerini dinle:
CONFIG SET notify-keyspace-events KEA
# Değişen anahtarları Pub/Sub ile abone ol:
PSUBSCRIBE __keyevent@0__:set
PSUBSCRIBE __keyevent@0__:expiredRedis keyspace notifications, anahtarlar üzerindeki olayları (SET, DEL, EXPIRE vb.) Pub/Sub kanalları üzerinden yayınlar; notify-keyspace-events ayarıyla açılır (K=keyspace, E=keyevent, A=tüm olaylar). Güvenilir, kalıcı bir değişiklik akışı için ise Redis Streams (XADD/XREAD) tercih edilir.
Elasticsearch
-- Uygulanamaz: yerleşik CDC/değişiklik akışı yoktur.
# En yakın karşılık: zaman damgası alanına göre artımlı sorgu:
GET siparis/_search
{ "query": { "range": { "guncelleme_ts": { "gt": "2026-07-05T00:00:00" } } },
"sort": [ { "guncelleme_ts": "asc" } ] }Elasticsearch değişiklik veri yakalama (CDC) akışı sunmaz; bir belgenin ne zaman değiştiğini yerel olarak yayınlamaz. Yaygın yaklaşım her belgeye guncelleme_ts alanı koyup zaman damgasına göre artımlı sorgu (range + sort) yapmaktır. Genellikle kaynak veritabanının CDC'si Elasticsearch'e beslenir.