Adam Leszczyński

Oracle database log-based CDC on Raspberry PI

The task here is just to run native replication solution directly on Raspberry PI hardware. No emulators, no workarounds, no cheating. Let’s find out what is the redo log processing speed. The key to this approach is using OpenLogReplicator as CDC engine and it’s offline mode. With this mode you can read redo logs without …

Oracle database log-based CDC on Raspberry PI Read More »

Supplemental logging – how much space does it require?

Oracle at some point of decided that users might want to replicate the changes from the database to other targets. What they noticed, that the architecture of the database did not allow easy replication since the redo log did not contain information that would allow to identify the exact row, that has been modified. The …

Supplemental logging – how much space does it require? Read More »

Oracle redo log format community documentation

The format is proprietary and there is no public official document which would describe the structure. Here is a brief summary of various sources which are publicly available. One might think that there is very little information available, but that’s not true. This is a list I have made in the past when I was …

Oracle redo log format community documentation Read More »

Oracle database: replicating objects from SYS schema

One of the most confusing with Oracle replication tools is the inability to track changes of tables owned by SYS, SYSTEM or CTXSYS. Many system tables are internally using cluster type. Since the latest version OpenLogReplicator supports cluster tables it is now possible track also tables in SYS schema and send changes as events to …

Oracle database: replicating objects from SYS schema Read More »

OpenLogReplicator – replication latency

Replication latency is one of the key indicators of good replication. When I started working on OpenLogReplicator one of my key tasks was to keep the latency as low as possible. What does that mean? When a client commits a transaction and the database confirms that the transaction is committed – it means that the …

OpenLogReplicator – replication latency Read More »

logdump output errors for tables with ROWDEPENDENCIES

Every Oracle database user assumes that the output of the logdump command should provide a valid output. During testing of OpenLogReplicator I came across something strange. It appears that the output of OpenLogReplicator logdump mode is better than the original output of Oracle database logdump command. Maybe I am wrong? Let’s create a test scenario …

logdump output errors for tables with ROWDEPENDENCIES Read More »

OpenLogReplicator – logdump functionality

A side product of OpenLogReplicator is the ability to create logs which are in a very simular form as the logdump command from Oracle database. To create such dump you need to configure parameter in the OpenLogReplicator CFG file. There are 2 allowed values: create classic ‘logdump’ output create classic ‘logdump’ output enhanced with interpretation …

OpenLogReplicator – logdump functionality Read More »

OpenLogReplicator – chained row support

The OpenLogReplicator with the new release 0.2.0 has been extended to support chained rows. A chained row can appear when there is a bigger DML operation or the table uses more than 254 columns. This is an example of a table which uses 1000 columns. The table definition is: CFG definition file of OpenLogReplicator contains …

OpenLogReplicator – chained row support Read More »

OpenLogReplicator – Delete row piece (OP 11.3) and Truncate table (OP 24.1)

The OpenLogReplicator has been a new release 0.0.8 with new functionality: Added rowid field to JSON (Kafka target) Support for OP code 11.3 – Delete Row Piece Support for OP code 24.1 – DDL: Truncate table (only Kafka target) Here is an example of usage. Let’s create a table: CREATE TABLE SYSTEM.ADAM3( A NUMERIC ); …

OpenLogReplicator – Delete row piece (OP 11.3) and Truncate table (OP 24.1) Read More »

OpenLogReplicator – Insert multiple rows (OP 11.11)

The OpenLogReplicator has been extended to support also OP code 11.11 – Insert Multiple Rows. This type of redo record is used when an INSERT is used with a set of rows to be inserted. For example with INSERT … SELECT … . Here is an example of usage. Let’s create a table: CREATE TABLE …

OpenLogReplicator – Insert multiple rows (OP 11.11) Read More »