Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions src/current/_includes/molt/delta-all-sources.md
Original file line number Diff line number Diff line change
Expand Up @@ -374,15 +374,15 @@ MOLT Fetch captures a consistent point-in-time checkpoint at the start of the da
You should see periodic primary keepalive messages:

~~~
DEBUG [Aug 25 14:38:10] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:09.556773 -0500 CDT" ServerWALEnd=0/49913A58
DEBUG [Aug 25 14:38:15] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:14.556836 -0500 CDT" ServerWALEnd=0/49913E60
DEBUG [2025-08-25T14:38:10-05:00] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:09.556773 -0500 CDT" ServerWALEnd=0/49913A58
DEBUG [2025-08-25T14:38:15-05:00] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:14.556836 -0500 CDT" ServerWALEnd=0/49913E60
~~~

When rows are successfully replicated, you should see debug output like the following:

~~~
DEBUG [Aug 25 14:40:02] upserted rows conflicts=0 duration=7.855333ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
DEBUG [Aug 25 14:40:02] progressed to LSN: 0/49915DD0
DEBUG [2025-08-25T14:40:02-05:00] upserted rows conflicts=0 duration=7.855333ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
DEBUG [2025-08-25T14:40:02-05:00] progressed to LSN: 0/49915DD0
~~~
</section>

Expand All @@ -392,30 +392,30 @@ MOLT Fetch captures a consistent point-in-time checkpoint at the start of the da
~~~
[2025/08/25 15:29:09] [info] binlogsyncer.go:463 begin to sync binlog from GTID set 77263736-7899-11f0-81a5-0242ac120002:1-38
[2025/08/25 15:29:09] [info] binlogsyncer.go:409 Connected to mysql 8.0.43 server
INFO [Aug 25 15:29:09] connected to MySQL version 8.0.43
INFO [2025-08-25T15:29:09-05:00] connected to MySQL version 8.0.43
~~~

When rows are successfully replicated, you should see debug output like the following:

~~~
DEBUG [Aug 25 15:29:38] upserted rows conflicts=0 duration=1.801ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
DEBUG [Aug 25 15:29:38] progressed to consistent point: 77263736-7899-11f0-81a5-0242ac120002:1-39
DEBUG [2025-08-25T15:29:38-05:00] upserted rows conflicts=0 duration=1.801ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
DEBUG [2025-08-25T15:29:38-05:00] progressed to consistent point: 77263736-7899-11f0-81a5-0242ac120002:1-39
~~~
</section>

<section class="filter-content" markdown="1" data-scope="oracle">
When transactions are read from the Oracle source, you should see registered transaction IDs (XIDs):

~~~
DEBUG [Jul 3 15:55:12] registered xid 0f001f0040060000
DEBUG [Jul 3 15:55:12] registered xid 0b001f00bb090000
DEBUG [2025-07-03T15:55:12-05:00] registered xid 0f001f0040060000
DEBUG [2025-07-03T15:55:12-05:00] registered xid 0b001f00bb090000
~~~

When rows are successfully replicated, you should see debug output like the following:

~~~
DEBUG [Jul 3 15:55:12] upserted rows conflicts=0 duration=2.620009ms proposed=13 target="\"molt_movies\".\"USERS\".\"CUSTOMER_CONTACT\"" upserted=13
DEBUG [Jul 3 15:55:12] upserted rows conflicts=0 duration=2.212807ms proposed=16 target="\"molt_movies\".\"USERS\".\"CUSTOMER_DEVICE\"" upserted=16
DEBUG [2025-07-03T15:55:12-05:00] upserted rows conflicts=0 duration=2.620009ms proposed=13 target="\"molt_movies\".\"USERS\".\"CUSTOMER_CONTACT\"" upserted=13
DEBUG [2025-07-03T15:55:12-05:00] upserted rows conflicts=0 duration=2.212807ms proposed=16 target="\"molt_movies\".\"USERS\".\"CUSTOMER_DEVICE\"" upserted=16
~~~
</section>

Expand Down
6 changes: 3 additions & 3 deletions src/current/_includes/molt/fetch-data-load-output.md
Comment thread
bsanchez-the-roach marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,13 @@

<section class="filter-content" markdown="1" data-scope="postgres">
~~~ json
{"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["migration_schema.employees","migration_schema.payments","migration_schema.payments"],"cdc_cursor":"0/3F41E40","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
{"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["migration_schema.employees","migration_schema.payments","migration_schema.payments"],"skipped_unmigratable_tables":[],"cdc_cursor":"0/3F41E40","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
~~~
</section>

<section class="filter-content" markdown="1" data-scope="mysql">
~~~ json
{"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["public.employees","public.payments","public.payments"],"cdc_cursor":"4c658ae6-e8ad-11ef-8449-0242ac140006:1-29","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
{"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["public.employees","public.payments","public.payments"],"skipped_unmigratable_tables":[],"cdc_cursor":"4c658ae6-e8ad-11ef-8449-0242ac140006:1-29","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
~~~

{% if page.name contains "delta" %}
Expand All @@ -109,7 +109,7 @@

<section class="filter-content" markdown="1" data-scope="oracle">
~~~ json
{"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["migration_schema.employees","migration_schema.payments","migration_schema.payments"],"cdc_cursor":"backfillFromSCN=26685444,scn=26685786","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
{"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["migration_schema.employees","migration_schema.payments","migration_schema.payments"],"skipped_unmigratable_tables":[],"cdc_cursor":"backfillFromSCN=26685444,scn=26685786","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
~~~

{% if page.name contains "delta" %}
Expand Down
26 changes: 13 additions & 13 deletions src/current/_includes/molt/phased-delta-failback-all-sources.md
Original file line number Diff line number Diff line change
Expand Up @@ -388,15 +388,15 @@ Verify that Replicator is processing changes successfully. To do so, check the M
You should see periodic primary keepalive messages:

~~~
DEBUG [Aug 25 14:38:10] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:09.556773 -0500 CDT" ServerWALEnd=0/49913A58
DEBUG [Aug 25 14:38:15] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:14.556836 -0500 CDT" ServerWALEnd=0/49913E60
DEBUG [2025-08-25T14:38:10-05:00] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:09.556773 -0500 CDT" ServerWALEnd=0/49913A58
DEBUG [2025-08-25T14:38:15-05:00] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:14.556836 -0500 CDT" ServerWALEnd=0/49913E60
~~~

When rows are successfully replicated, you should see debug output like the following:

~~~
DEBUG [Aug 25 14:40:02] upserted rows conflicts=0 duration=7.855333ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
DEBUG [Aug 25 14:40:02] progressed to LSN: 0/49915DD0
DEBUG [2025-08-25T14:40:02-05:00] upserted rows conflicts=0 duration=7.855333ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
DEBUG [2025-08-25T14:40:02-05:00] progressed to LSN: 0/49915DD0
~~~
</section>

Expand All @@ -406,30 +406,30 @@ You should see binlog syncer connection and row processing:
~~~
[2025/08/25 15:29:09] [info] binlogsyncer.go:463 begin to sync binlog from GTID set 77263736-7899-11f0-81a5-0242ac120002:1-38
[2025/08/25 15:29:09] [info] binlogsyncer.go:409 Connected to mysql 8.0.43 server
INFO [Aug 25 15:29:09] connected to MySQL version 8.0.43
INFO [2025-08-25T15:29:09-05:00] connected to MySQL version 8.0.43
~~~

When rows are successfully replicated, you should see debug output like the following:

~~~
DEBUG [Aug 25 15:29:38] upserted rows conflicts=0 duration=1.801ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
DEBUG [Aug 25 15:29:38] progressed to consistent point: 77263736-7899-11f0-81a5-0242ac120002:1-39
DEBUG [2025-08-25T15:29:38-05:00] upserted rows conflicts=0 duration=1.801ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
DEBUG [2025-08-25T15:29:38-05:00] progressed to consistent point: 77263736-7899-11f0-81a5-0242ac120002:1-39
~~~
</section>

<section class="filter-content" markdown="1" data-scope="oracle">
When transactions are read from the Oracle source, you should see registered transaction IDs (XIDs):

~~~
DEBUG [Jul 3 15:55:12] registered xid 0f001f0040060000
DEBUG [Jul 3 15:55:12] registered xid 0b001f00bb090000
DEBUG [2025-07-03T15:55:12-05:00] registered xid 0f001f0040060000
DEBUG [2025-07-03T15:55:12-05:00] registered xid 0b001f00bb090000
~~~

When rows are successfully replicated, you should see debug output like the following:

~~~
DEBUG [Jul 3 15:55:12] upserted rows conflicts=0 duration=2.620009ms proposed=13 target="\"molt_movies\".\"USERS\".\"CUSTOMER_CONTACT\"" upserted=13
DEBUG [Jul 3 15:55:12] upserted rows conflicts=0 duration=2.212807ms proposed=16 target="\"molt_movies\".\"USERS\".\"CUSTOMER_DEVICE\"" upserted=16
DEBUG [2025-07-03T15:55:12-05:00] upserted rows conflicts=0 duration=2.620009ms proposed=13 target="\"molt_movies\".\"USERS\".\"CUSTOMER_CONTACT\"" upserted=13
DEBUG [2025-07-03T15:55:12-05:00] upserted rows conflicts=0 duration=2.212807ms proposed=16 target="\"molt_movies\".\"USERS\".\"CUSTOMER_DEVICE\"" upserted=16
~~~
</section>

Expand Down Expand Up @@ -732,8 +732,8 @@ On the target cluster, create a CockroachDB changefeed to send changes to MOLT R
1. Verify that Replicator is reporting incoming HTTP requests from the changefeed. To do so, check the MOLT Replicator logs. Since you enabled debug logging with `-v`, you should see periodic HTTP request successes:

~~~
DEBUG [Aug 25 11:52:47] httpRequest="&{0x14000b068c0 45 200 3 9.770958ms false false}"
DEBUG [Aug 25 11:52:48] httpRequest="&{0x14000d1a000 45 200 3 13.438125ms false false}"
DEBUG [2025-08-25T11:52:47-05:00] httpRequest="&{0x14000b068c0 45 200 3 9.770958ms false false}"
DEBUG [2025-08-25T11:52:48-05:00] httpRequest="&{0x14000d1a000 45 200 3 13.438125ms false false}"
~~~

These debug messages confirm successful changefeed connections to MOLT Replicator. You can disable verbose logging after verifying the connection.
Expand Down
1 change: 1 addition & 0 deletions src/current/molt/molt-fetch-commands-and-flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ This page lists the [MOLT Fetch]({% link molt/molt-fetch.md %}) commands and the
| <a id="metrics-listen-addr"></a> `--metrics-listen-addr` | Address of the Prometheus metrics endpoint, which has the path `{address}/metrics`. For details on important metrics to monitor, refer to [Monitoring]({% link molt/molt-fetch-monitoring.md %}).<br><br>**Default:** `'127.0.0.1:3030'` |
| <a id="mode"></a> `--mode` | Configure the MOLT Fetch behavior: `data-load`, `export-only`, or `import-only`. For details, refer to [Fetch mode]({% link molt/molt-fetch.md %}#define-fetch-mode).<br><br>**Default:** `data-load` |
| <a id="non-interactive"></a> `--non-interactive` | Run the fetch task without interactive prompts. This is recommended **only** when running `molt fetch` in an automated process (i.e., a job or continuous integration). |
| <a id="opt-out-telemetry"></a> `--opt-out-telemetry` | Suppress MOLT telemetry-event logging, which is enabled by default. |
| <a id="pglogical-replication-slot-name"></a> `--pglogical-replication-slot-name` | Name of a PostgreSQL replication slot that will be created before taking a snapshot of data. Must match the slot name specified with `--slotName` in the [MOLT Replicator command]({% link molt/molt-replicator.md %}#replication-checkpoints). For details, refer to [Initial bulk load (before replication)]({% link molt/molt-fetch.md %}#initial-bulk-load-before-replication). |
| <a id="pglogical-publication-and-slot-drop-and-recreate"></a> `--pglogical-publication-and-slot-drop-and-recreate` | Drop the PostgreSQL publication and replication slot if they exist, then recreate them. Creates a publication named `molt_fetch` and the replication slot specified with `--pglogical-replication-slot-name`. For details, refer to [Initial bulk load (before replication)]({% link molt/molt-fetch.md %}#initial-bulk-load-before-replication).<br><br>**Default:** `false` |
| <a id="pprof-listen-addr"></a> `--pprof-listen-addr` | Address of the pprof endpoint.<br><br>**Default:** `'127.0.0.1:3031'` |
Expand Down
6 changes: 3 additions & 3 deletions src/current/molt/molt-fetch.md
Original file line number Diff line number Diff line change
Expand Up @@ -767,13 +767,13 @@ A change data capture (CDC) cursor is written to the MOLT Fetch output as `cdc_c
For MySQL:

~~~ json
{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":1,"tables":["public.employees"],"cdc_cursor":"b7f9e0fa-2753-1e1f-5d9b-2402ac810003:3-21","net_duration_ms":4879.890041,"net_duration":"000h 00m 04s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":1,"tables":["public.employees"],"skipped_unmigratable_tables":[],"cdc_cursor":"b7f9e0fa-2753-1e1f-5d9b-2402ac810003:3-21","net_duration_ms":4879.890041,"net_duration":"000h 00m 04s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
~~~

For Oracle:

~~~ json
{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":3,"tables":["migration_schema.employees"],"cdc_cursor":"backfillFromSCN=26685444,scn=26685786","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":3,"tables":["migration_schema.employees"],"skipped_unmigratable_tables":[],"cdc_cursor":"backfillFromSCN=26685444,scn=26685786","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
~~~

This `cdc_cursor` value is also included in the output of a fetch task from a PostgreSQL source. However, in the case of a PostgreSQL source, you can instead enable replication with the [`--pglogical-replication-slot-name`]({% link molt/molt-fetch-commands-and-flags.md %}#pglogical-replication-slot-name) and [`--pglogical-publication-and-slot-drop-and-recreate`]({% link molt/molt-fetch-commands-and-flags.md %}#pglogical-publication-and-slot-drop-and-recreate) flags, which must be defined.
Expand Down Expand Up @@ -1031,7 +1031,7 @@ molt fetch \
The output will include a `cdc_cursor` value at the end of the fetch task:

~~~ json
{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":1,"tables":["public.employees"],"cdc_cursor":"b7f9e0fa-2753-1e1f-5d9b-2402ac810003:3-21","net_duration_ms":4879.890041,"net_duration":"000h 00m 04s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":1,"tables":["public.employees"],"skipped_unmigratable_tables":[],"cdc_cursor":"b7f9e0fa-2753-1e1f-5d9b-2402ac810003:3-21","net_duration_ms":4879.890041,"net_duration":"000h 00m 04s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
~~~

<section class="filter-content" markdown="1" data-scope="mysql oracle">
Expand Down
12 changes: 6 additions & 6 deletions src/current/molt/replicator-metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -439,17 +439,17 @@ replicator start \
If successful, Replicator will start, and the console output will indicate that the snapshotter has started as well:

~~~
INFO [Feb 2 10:20:32] Replicator starting
INFO [2026-02-02T10:20:32-05:00] Replicator starting
...
INFO [Feb 2 10:20:32] metrics snapshotter started, writing to replicator-data/metrics-snapshots every 15s, retaining 168h0m0s
INFO [2026-02-02T10:20:32-05:00] metrics snapshotter started, writing to replicator-data/metrics-snapshots every 15s, retaining 168h0m0s
~~~

Upon interruption of Replicator, the snapshotter will be stopped:

~~~
INFO [Feb 2 10:26:45] Interrupted
INFO [Feb 2 10:26:45] metrics snapshotter stopped
INFO [Feb 2 10:26:45] Server shutdown complete
~~~
INFO [2026-02-02T10:26:45-05:00] Interrupted
INFO [2026-02-02T10:26:45-05:00] metrics snapshotter stopped
INFO [2026-02-02T10:26:45-05:00] Server shutdown complete
~~~

#### Step 2. Find the snapshot files in the data directory
Expand Down
Loading