Es gibt mehrere ähnliche Oracle-Technologien - Oracle Streams, Oracle Change Data Capture und Database Change Notification. Weißt du, was ist der Unterschied zwischen diesen? Sind sie verwandt oder Oracle Advanced Queuing?Was ist der Unterschied zwischen Oracle Streams und Change Data Capture?
Antwort
Bei Oracle CDC geht es nur darum, Änderungen in DB-Tabellen zu erfassen, und die Änderungen werden in speziellen Oracle-Tabellen gespeichert. Es gibt zwei Arten von CDC-Operationen: asynchron (basierend auf Java) oder synchron (basierend auf DB-Triggern, mehr Performance-Overhead).
Oracle Streams sitzt auf Oracle CDC und es ist ein vollständiger Transportmechanismus (über HTTP) für die Datensynchronisation zwischen 2 Servern. Es basiert auf der Oracle Advanced Queues-Technologie und ist auf hohe Leistung und Zuverlässigkeit ausgelegt.
Sowohl Oracle CDC als auch Streams werden im Allgemeinen für die Datensynchronisierung zwischen Oracle DB-Servern verwendet ... Mit Oracle CDC müssen Sie keine Oracle Streams für z. Sie könnten Ihre eigenen Datenexport-Routinen schreiben, die flache Dateien zum Zweck der Synchronisation zwischen 2 DB-Servern erstellen, während Sie bei Streams eine Netzwerkverbindung zwischen den 2 Servern haben müssen.
Datenbank Änderung Benachrichtigung ist wieder etwas anderes, es ist nicht für die Server-zu-Server-Synchronisation verwendet, sondern mehr für Server Benachrichtigung von Resultset Änderungen an Clients, vor allem im Rahmen der Daten-Caches auf der Client-Seite.
Ich würde hinzufügen, dass für die Synchronisierung zwischen Systemen, können Sie asynchronen Modus durch die Kombination von Streams und der CDC Publishing-Mechanismus erreichen. Wenn Sie sich dazu entschließen, keine Streams für diesen Zweck zu verwenden, würden Sie am Ende einen synchronen Modus verwenden (ich denke, dass es über Trigger erfolgt), wodurch für jede Transaktion ein zusätzlicher Aufwand entsteht.
- 1. Was ist der Unterschied zwischen reaktiven und reaktiven Streams?
- 2. Was ist der Unterschied zwischen den Keywords "data" und "type"?
- 3. Was ist der Unterschied zwischen Data-Dojo-Typ und Dojotype?
- 4. Was ist der Unterschied zwischen `==` und `ist`?
- 5. Was ist der Unterschied zwischen Cassandra vs Oracle Coherence?
- 6. Was ist der Unterschied zwischen einem "Data Service Layer" und einem "Data Access Layer"?
- 7. Was ist der tatsächliche Unterschied zwischen Data Warehouse und Big Data?
- 8. Was ist der Unterschied zwischen:.! und: r !?
- 9. Was ist der Unterschied zwischen Difftime und '-'?
- 10. Was ist der Unterschied zwischen $ und $$?
- 11. Was ist der Unterschied zwischen Verilog! und ~?
- 12. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 13. Was ist der Unterschied zwischen/* ... */und/** ... */
- 14. Was ist der Unterschied zwischen `&` und `ref`?
- 15. Was ist der Unterschied zwischen $ (...) und `...`
- 16. Was ist der Unterschied zwischen .Equals und ==
- 17. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 18. Was ist der Unterschied zwischen + = und = +?
- 19. Was ist der Unterschied zwischen? und ? = Nil
- 20. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 21. Was ist der Unterschied zwischen Datei lesen und Streaming?
- 22. Was ist der Unterschied zwischen:
- 23. Unterschied zwischen Java 8 Streams und parallelen Streams
- 24. Was ist der Unterschied zwischen Streams und Datagrammen bei der Netzwerkprogrammierung?
- 25. Was ist der Unterschied zwischen "commit" und "commit work"?
- 26. Was ist der Unterschied zwischen Data-sly-Use, Data-Sly-Ressource, Data-Sly-Include und Data-Sly-Template?
- 27. Was ist der Unterschied zwischen ojdbc6.jar und ojdbc7.jar?
- 28. Was ist der Unterschied zwischen "nicht in" und "nicht existiert"?
- 29. Was ist der Unterschied zwischen ADF und JSF?
- 30. Was ist der Unterschied zwischen ERP, SCM und CRM?
Seien Sie vorsichtig mit dem Begriff "resultset", jeder glaubt, da Sie eine Abfrage verwenden, um anzuzeigen, welche Tabellen DCN aktiv sein soll, auf die nur Ergebnisse der Abfrage Benachrichtigung. Alles, was DCN interessiert, ist die FROM-Klausel. Alle Änderungen an einer Tabelle in der FROM verursachen eine Benachrichtigung. –
Hallo Andrew, hast du ein Beispiel für CDC gebunden mit Java im asynchronen Modus? Art eines Abonnenten in Java oder so implementiert. – user2427
Nach der http://docs.oracle.com/cd/E11882_01/server.112/e25554/cdc.htm, "Asynchronous Change Data Capture ist aufgebaut, und bietet eine relationale Schnittstelle zu Oracle Streams." Ich weiß nicht wie/ob das den Rest deiner Antwort beeinflusst, was richtig scheint. –