diff --git a/src/current/_includes/molt/fetch-metrics.md b/src/current/_includes/molt/fetch-metrics.md
index b4c37bb4cd9..471319ad533 100644
--- a/src/current/_includes/molt/fetch-metrics.md
+++ b/src/current/_includes/molt/fetch-metrics.md
@@ -17,7 +17,7 @@ Cockroach Labs recommends monitoring the following metrics during data load:
You can also use the [sample Grafana dashboard](https://molt.cockroachdb.com/molt/cli/grafana_dashboard.json) to view the preceding metrics.
{% if page.name != "migrate-bulk-load.md" %}
-{{site.data.alerts.callout_info}}
-Metrics from the `replicator` process are enabled by setting the `--metricsAddr` [replication flag](#replication-flags), and are served at `http://{host}:{port}/_/varz`.
**Default:** `'127.0.0.1:3030'` |
| `--mode` | Configure the MOLT Fetch behavior: `data-load`, `export-only`, or `import-only`. For details, refer to [Fetch mode](#fetch-mode).
**Default:** `data-load` |
| `--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). |
-| `--pglogical-replication-slot-name` | Name of a 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 [Load before replication](#load-before-replication). |
-| `--pglogical-publication-and-slot-drop-and-recreate` | Drop the 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 [Load before replication](#load-before-replication).
**Default:** `false` |
+| `--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 [Load before replication](#load-before-replication). |
+| `--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 [Load before replication](#load-before-replication).
**Default:** `false` |
| `--pprof-listen-addr` | Address of the pprof endpoint.
**Default:** `'127.0.0.1:3031'` |
| `--row-batch-size` | Number of rows per shard to export at a time. For details on sharding, refer to [Table sharding](#table-sharding). See also [Best practices](#best-practices).
**Default:** `100000` |
| `--schema-filter` | Move schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression). Not used with MySQL sources. For Oracle sources, this filter is case-insensitive.
**Default:** `'.*'` |
@@ -135,7 +135,7 @@ MOLT Fetch loads the exported data into the target CockroachDB database. The pro
| `--transformations-file` | Path to a JSON file that defines transformations to be performed on the target schema during the fetch task. Refer to [Transformations](#transformations). |
| `--type-map-file` | Path to a JSON file that contains explicit type mappings for automatic schema creation, when enabled with `--table-handling drop-on-target-and-recreate`. For details on the JSON format and valid type mappings, see [type mapping](#type-mapping). |
| `--use-console-writer` | Use the console writer, which has cleaner log output but introduces more latency.
**Default:** `false` (log as structured JSON) |
-| `--use-copy` | Use [`COPY FROM`](#data-load-mode) to move data. This makes tables queryable during data load, but is slower than using `IMPORT INTO`. For details, refer to [Data load mode](#data-load-mode). |
+| `--use-copy` | Use [`COPY FROM`](#data-load-mode) to move data. This makes tables queryable during data load, but is slower than using `IMPORT INTO`. For details, refer to [Data load mode](#data-load-mode). |
| `--use-implicit-auth` | Use [implicit authentication]({% link {{ site.current_cloud_version }}/cloud-storage-authentication.md %}) for [cloud storage](#bucket-path) URIs. |
| `--use-stats-based-sharding` | Enable statistics-based sharding for PostgreSQL sources. This allows sharding of tables with primary keys of any data type and can create more evenly distributed shards compared to the default numerical range sharding. Requires PostgreSQL 11+ and access to `pg_stats`. For details, refer to [Table sharding](#table-sharding). |
diff --git a/src/current/molt/molt-replicator.md b/src/current/molt/molt-replicator.md
index 3d3107590ea..aa6d1dbe039 100644
--- a/src/current/molt/molt-replicator.md
+++ b/src/current/molt/molt-replicator.md
@@ -646,16 +646,13 @@ Explicitly set a default `10s` [`webhook_client_timeout`]({% link {{ site.curren
### Metrics
-MOLT Replicator can export [Prometheus](https://prometheus.io/) metrics by setting the [`--metricsAddr`]({% link molt/replicator-flags.md %}#metrics-addr) flag to a port (for example, `--metricsAddr :30005`). Metrics are not enabled by default. When enabled, metrics are available at the path `/_/varz`. For example: `http://localhost:30005/_/varz`.
+MOLT Replicator metrics are not enabled by default. Enable Replicator metrics by specifying the [`--metricsAddr`]({% link molt/replicator-flags.md %}#metrics-addr) flag with a port (or `host:port`) when you start Replicator. This exposes Replicator metrics at `http://{host}:{port}/_/varz`. For example, the following flag exposes metrics on port `30005`:
-For a list of recommended metrics to monitor during replication, refer to:
-
-- [Forward replication metrics]({% link molt/migrate-load-replicate.md %}#replicator-metrics) (PostgreSQL, MySQL, and Oracle sources)
-- [Failback replication metrics]({% link molt/migrate-failback.md %}#replicator-metrics) (CockroachDB source)
-
-You can use the [Replicator Grafana dashboard](https://replicator.cockroachdb.com/replicator_grafana_dashboard.json) to visualize the metrics. For Oracle-specific metrics, import the [Oracle Grafana dashboard](https://replicator.cockroachdb.com/replicator_oracle_grafana_dashboard.json).
+~~~
+--metricsAddr :30005
+~~~
-To check MOLT Replicator health when metrics are enabled, run `curl http://localhost:30005/_/healthz` (replacing the port with your [`--metricsAddr`]({% link molt/replicator-flags.md %}#metrics-addr) value). This returns a status code of `200` if Replicator is running.
+For guidelines on using and interpreting replication metrics, refer to [Replicator Metrics]({% link molt/replicator-metrics.md %}).
### Logging
diff --git a/src/current/molt/replicator-flags.md b/src/current/molt/replicator-flags.md
index 575b7d95702..ad6ec3b8664 100644
--- a/src/current/molt/replicator-flags.md
+++ b/src/current/molt/replicator-flags.md
@@ -1,86 +1,87 @@
---
title: Replicator Flags
summary: Flag reference for MOLT Replicator
-toc: true
+toc: false
docs_area: migrate
---
This page lists all available flags for the [MOLT Replicator commands]({% link molt/molt-replicator.md %}#commands): `start`, `pglogical`, `mylogical`, `oraclelogminer`, and `make-jwt`.
-| Flag | Commands | Type | Description |
-|---------------------------------------------------------------------------------------------|-----------------------------------------------------|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `-a`, `--allow` | `make-jwt` | `STRING` | One or more `database.schema` identifiers. Can be repeated for multiple schemas. |
-| `--applyTimeout` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The maximum amount of time to wait for an update to be applied.
**Default:** `30s` |
-| `--assumeIdempotent` | `start` | `BOOL` | Disable the extra staging table queries that debounce non-idempotent redelivery in changefeeds. |
-| `--backfillFromSCN` | `oraclelogminer` | `INT` | The SCN of the earliest active transaction at the time of the initial snapshot. Ensures no transactions are skipped when starting replication from Oracle. |
-| `--bestEffortOnly` | `start` | `BOOL` | Eventually-consistent mode; useful for high-throughput, skew-tolerant schemas with [foreign keys]({% link {{ site.current_cloud_version }}/foreign-key.md %}). |
-| `--bestEffortWindow` | `start` | `DURATION` | Use an eventually-consistent mode for initial backfill or when replication is behind; `0` to disable.
**Default:** `1h0m0s` |
-| `--bindAddr` | `start` | `STRING` | The network address to bind to.
**Default:** `":26258"` |
-| `--claim` | `make-jwt` | `BOOL` | If `true`, print a minimal JWT claim instead of signing. |
-| `--collapseMutations` | `start`, `pglogical`, `mylogical` | `BOOL` | Combine multiple mutations on the same primary key within each batch into a single mutation.
**Default:** `true` |
-| `--defaultGTIDSet` | `mylogical` | `STRING` | **Required** the first time `replicator` is run. The default GTID set, in the format `source_uuid:min(interval_start)-max(interval_end)`, which provides a replication marker for streaming changes. |
-| `--disableAuthentication` | `start` | `BOOL` | Disable authentication of incoming Replicator requests; not recommended for production. |
-| `--discard` | `start` | `BOOL` | **Dangerous:** Discard all incoming HTTP requests; useful for changefeed throughput testing. Not intended for production. |
-| `--discardDelay` | `start` | `DURATION` | Adds additional delay in discard mode; useful for gauging the impact of changefeed round-trip time (RTT). |
-| `--dlqTableName` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `IDENT` | The name of a table in the target schema for storing dead-letter entries.
**Default:** `replicator_dlq` |
-| `--enableCheckpointStream` | `start` | `BOOL` | Enable checkpoint streaming (use an internal changefeed from the staging table for real-time updates), rather than checkpoint polling (query the staging table for periodic updates), for failback replication.
**Default:** `false` (use checkpoint polling) |
-| `--enableParallelApplies` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `BOOL` | Enable parallel application of independent table groups during replication. By default, applies are synchronous. When enabled, this increases throughput at the cost of higher target pool usage and memory usage.
**Default:** `false` |
-| `--fetchMetadata` | `mylogical` | `BOOL` | Fetch column metadata explicitly, for older versions of MySQL that do not support `binlog_row_metadata`. |
-| `--flushPeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Flush queued mutations after this duration.
**Default:** `1s` |
-| `--flushSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | Ideal batch size to determine when to flush mutations.
**Default:** `1000` |
-| `--gracePeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Allow background processes to exit.
**Default:** `30s` |
-| `--healthCheckTimeout` | `start` | `DURATION` | The timeout for the health check endpoint.
**Default:** `5s` |
-| `--httpResponseTimeout` | `start` | `DURATION` | The maximum amount of time to allow an HTTP handler to execute.
**Default:** `2m0s` |
-| `--immediate` | `start` | `BOOL` | Bypass staging tables and write directly to target; recommended only for KV-style workloads with no [foreign keys]({% link {{ site.current_cloud_version }}/foreign-key.md %}). |
-| `-k`, `--key` | `make-jwt` | `STRING` | The path to a PEM-encoded private key to sign the token with. |
-| `--limitLookahead` | `start` | `INT` | Limit number of checkpoints to be considered when computing the resolving range; may cause replication to stall completely if older mutations cannot be applied. |
-| `--logDestination` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | Write logs to a file. If not specified, write logs to `stdout`. |
-| `--logFormat` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | Choose log output format: `"fluent"`, `"text"`.
**Default:** `"text"` |
-| `--maxRetries` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | Maximum number of times to retry a failed mutation on the target (for example, due to contention or a temporary unique constraint violation) before treating it as a hard failure.
**Default:** `10` |
-| `--metricsAddr` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | A `host:port` on which to serve metrics and diagnostics. The metrics endpoint is `http://{host}:{port}/_/varz`. |
-| `--ndjsonBufferSize` | `start` | `INT` | The maximum amount of data to buffer while reading a single line of `ndjson` input; increase when source cluster has large blob values.
**Default:** `65536` |
-| `--oracle-application-users` | `oraclelogminer` | `STRING` | List of Oracle usernames responsible for DML transactions in the PDB schema. Enables replication from the latest-possible starting point. Usernames are case-sensitive and must match the internal Oracle usernames (e.g., `PDB_USER`). |
-| `-o`, `--out` | `make-jwt` | `STRING` | A file to write the token to. |
-| `--parallelism` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The number of concurrent database transactions to use.
**Default:** `16` |
-| `--publicationName` | `pglogical` | `STRING` | The publication within the source database to replicate. |
-| `--quiescentPeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How often to retry deferred mutations.
**Default:** `10s` |
-| `--replicationProcessID` | `mylogical` | `UINT32` | The replication process ID to report to the source database.
**Default:** `10` |
-| `--retireOffset` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How long to delay removal of applied mutations.
**Default:** `24h0m0s` |
-| `--retryInitialBackoff` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Initial delay before the first retry attempt when applying a mutation to the target database fails due to a retryable error, such as contention or a temporary unique constraint violation.
**Default:** `25ms` |
-| `--retryMaxBackoff` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Maximum delay between retry attempts when applying mutations to the target database fails due to retryable errors.
**Default:** `2s` |
-| `--retryMultiplier` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | Multiplier that controls how quickly the backoff interval increases between successive retries of failed applies to the target database.
**Default:** `2` |
-| `--scanSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The number of rows to retrieve from the staging database used to store metadata for replication.
**Default:** `10000` |
-| `--schemaRefresh` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How often a watcher will refresh its schema. If this value is zero or negative, refresh behavior will be disabled.
**Default:** `1m0s` |
-| `--scn` | `oraclelogminer` | `INT` | **Required** the first time `replicator` is run. The snapshot System Change Number (SCN) from the initial data load, which provides a replication marker for streaming changes. |
-| `--slotName` | `pglogical` | `STRING` | **Required.** PostgreSQL replication slot name. Must match the slot name specified with `--pglogical-replication-slot-name` in the [MOLT Fetch command]({% link molt/molt-fetch.md %}#load-before-replication).
**Default:** `"replicator"` |
-| `--sourceConn` | `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | The source database's connection string. When replicating from Oracle, this is the connection string of the Oracle container database (CDB). |
-| `--sourcePDBConn` | `oraclelogminer` | `STRING` | Connection string for the Oracle pluggable database (PDB). Only required when using an [Oracle multitenant configuration](https://docs.oracle.com/en/database/oracle/oracle-database/21/cncpt/CDBs-and-PDBs.html). [`--sourceConn`](#source-conn) **must** be included. |
-| `--sourceSchema` | `oraclelogminer` | `STRING` | **Required.** Source schema name on Oracle where tables will be replicated from. |
-| `--stageDisableCreateTableReaderIndex` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `BOOL` | Disable the creation of partial covering indexes to improve read performance on staging tables. Set to `true` if creating indexes on existing tables would cause a significant operational impact.
**Default:** `false` |
-| `--stageMarkAppliedLimit` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | Limit the number of mutations to be marked applied in a single statement.
**Default:** `100000` |
-| `--stageSanityCheckPeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How often to validate staging table apply order (`-1` to disable).
**Default:** `10m0s` |
-| `--stageSanityCheckWindow` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How far back to look when validating staging table apply order.
**Default:** `1h0m0s` |
-| `--stageUnappliedPeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How often to report the number of unapplied mutations in staging tables (`-1` to disable).
**Default:** `1m0s` |
-| `--stagingConn` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | The staging database's connection string. |
-| `--stagingCreateSchema` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `BOOL` | Automatically create the staging schema if it does not exist. |
-| `--stagingIdleTime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Maximum lifetime of an idle connection.
**Default:** `1m0s` |
-| `--stagingJitterTime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The time over which to jitter database pool disconnections.
**Default:** `15s` |
-| `--stagingMaxLifetime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The maximum lifetime of a database connection.
**Default:** `5m0s` |
-| `--stagingMaxPoolSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The maximum number of staging database connections.
**Default:** `128` |
-| `--stagingSchema` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | Name of the CockroachDB schema that stores replication metadata. **Required** each time `replicator` is rerun after being interrupted, as the schema contains a checkpoint table that enables replication to resume from the correct transaction.
**Default:** `_replicator.public` |
-| `--standbyTimeout` | `pglogical` | `DURATION` | How often to report WAL progress to the source server.
**Default:** `5s` |
-| `--targetApplyQueueSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | Size of the apply queue that buffers mutations before they are written to the target database. Larger values can improve throughput, but increase memory usage. This flag applies only to CockroachDB and PostgreSQL (`pglogical`) sources, and replaces the deprecated `--copierChannel` and `--stageCopierChannelSize` flags. |
-| `--targetConn` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | The target database's connection string. |
-| `--targetIdleTime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Maximum lifetime of an idle connection.
**Default:** `1m0s` |
-| `--targetJitterTime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The time over which to jitter database pool disconnections.
**Default:** `15s` |
-| `--targetMaxLifetime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The maximum lifetime of a database connection.
**Default:** `5m0s` |
-| `--targetMaxPoolSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The maximum number of target database connections.
**Default:** `128` |
-| `--targetSchema` | `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | **Required.** The SQL database schema in the target cluster to update. CockroachDB schema names must be fully qualified in the format `database.schema`. |
-| `--targetStatementCacheSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The maximum number of prepared statements to retain.
**Default:** `128` |
-| `--taskGracePeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How long to allow for task cleanup when recovering from errors.
**Default:** `1m0s` |
-| `--timestampLimit` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The maximum number of source timestamps to coalesce into a target transaction.
**Default:** `1000` |
-| `--tlsCertificate` | `start` | `STRING` | A path to a PEM-encoded TLS certificate chain. |
-| `--tlsPrivateKey` | `start` | `STRING` | A path to a PEM-encoded TLS private key. |
-| `--tlsSelfSigned` | `start` | `BOOL` | If true, generate a self-signed TLS certificate valid for `localhost`. |
-| `--userscript` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | The path to a TypeScript configuration script. For example, `--userscript 'script.ts'`. |
-| `-v`, `--verbose` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `COUNT` | Increase logging verbosity. Use `-v` for `debug` logging or `-vv` for `trace` logging. |
+| Flag | Commands | Type | Description |
+|---------------------------------------------------------------------------------------------|-----------------------------------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `-a`, `--allow` | `make-jwt` | `STRING` | One or more `database.schema` identifiers. Can be repeated for multiple schemas. |
+| `--applyTimeout` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The maximum amount of time to wait for an update to be applied.
**Default:** `30s` |
+| `--assumeIdempotent` | `start` | `BOOL` | Disable the extra staging table queries that debounce non-idempotent redelivery in changefeeds. |
+| `--backfillFromSCN` | `oraclelogminer` | `INT` | The SCN of the earliest active transaction at the time of the initial snapshot. Ensures no transactions are skipped when starting replication from Oracle. |
+| `--bestEffortOnly` | `start` | `BOOL` | Eventually-consistent mode; useful for high-throughput, skew-tolerant schemas with [foreign keys]({% link {{ site.current_cloud_version }}/foreign-key.md %}). |
+| `--bestEffortWindow` | `start` | `DURATION` | Use an eventually-consistent mode for initial backfill or when replication is behind; `0` to disable.
**Default:** `1h0m0s` |
+| `--bindAddr` | `start` | `STRING` | The network address to bind to.
**Default:** `":26258"` |
+| `--claim` | `make-jwt` | `BOOL` | If `true`, print a minimal JWT claim instead of signing. |
+| `--collapseMutations` | `start`, `pglogical`, `mylogical` | `BOOL` | Combine multiple mutations on the same primary key within each batch into a single mutation.
**Default:** `true` |
+| `--defaultGTIDSet` | `mylogical` | `STRING` | **Required** the first time `replicator` is run. The default GTID set, in the format `source_uuid:min(interval_start)-max(interval_end)`, which provides a replication marker for streaming changes. |
+| `--disableAuthentication` | `start` | `BOOL` | Disable authentication of incoming Replicator requests; not recommended for production. |
+| `--discard` | `start` | `BOOL` | **Dangerous:** Discard all incoming HTTP requests; useful for changefeed throughput testing. Not intended for production. |
+| `--discardDelay` | `start` | `DURATION` | Adds additional delay in discard mode; useful for gauging the impact of changefeed round-trip time (RTT). |
+| `--dlqTableName` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `IDENT` | The name of a table in the target schema for storing dead-letter entries.
**Default:** `replicator_dlq` |
+| `--enableCheckpointStream` | `start` | `BOOL` | Enable checkpoint streaming (use an internal changefeed from the staging table for real-time updates), rather than checkpoint polling (query the staging table for periodic updates), for failback replication.
**Default:** `false` (use checkpoint polling) |
+| `--enableParallelApplies` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `BOOL` | Enable parallel application of independent table groups during replication. By default, applies are synchronous. When enabled, this increases throughput at the cost of higher target pool usage and memory usage.
**Default:** `false` |
+| `--fetchMetadata` | `mylogical` | `BOOL` | Fetch column metadata explicitly, for older versions of MySQL that do not support `binlog_row_metadata`. |
+| `--flushPeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Flush queued mutations after this duration.
**Default:** `1s` |
+| `--flushSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | Ideal batch size to determine when to flush mutations.
**Default:** `1000` |
+| `--gracePeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Allow background processes to exit.
**Default:** `30s` |
+| `--healthCheckTimeout` | `start` | `DURATION` | The timeout for the health check endpoint.
**Default:** `5s` |
+| `--httpResponseTimeout` | `start` | `DURATION` | The maximum amount of time to allow an HTTP handler to execute.
**Default:** `2m0s` |
+| `--immediate` | `start` | `BOOL` | Bypass staging tables and write directly to target; recommended only for KV-style workloads with no [foreign keys]({% link {{ site.current_cloud_version }}/foreign-key.md %}). |
+| `-k`, `--key` | `make-jwt` | `STRING` | The path to a PEM-encoded private key to sign the token with. |
+| `--limitLookahead` | `start` | `INT` | Limit number of checkpoints to be considered when computing the resolving range; may cause replication to stall completely if older mutations cannot be applied. |
+| `--logDestination` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | Write logs to a file. If not specified, write logs to `stdout`. |
+| `--logFormat` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | Choose log output format: `"fluent"`, `"text"`.
**Default:** `"text"` |
+| `--maxRetries` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | Maximum number of times to retry a failed mutation on the target (for example, due to contention or a temporary unique constraint violation) before treating it as a hard failure.
**Default:** `10` |
+| `--metricsAddr` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | A `:port` or `host:port` on which to serve metrics and diagnostics. The metrics endpoint is `http://{host}:{port}/_/varz`. |
+| `--ndjsonBufferSize` | `start` | `INT` | The maximum amount of data to buffer while reading a single line of `ndjson` input; increase when source cluster has large blob values.
**Default:** `65536` |
+| `--oracle-application-users` | `oraclelogminer` | `STRING` | List of Oracle usernames responsible for DML transactions in the PDB schema. Enables replication from the latest-possible starting point. Usernames are case-sensitive and must match the internal Oracle usernames (e.g., `PDB_USER`). |
+| `-o`, `--out` | `make-jwt` | `STRING` | A file to write the token to. |
+| `--parallelism` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The number of concurrent database transactions to use.
**Default:** `16` |
+| `--publicationName` | `pglogical` | `STRING` | The publication within the source database to replicate. |
+| `--quiescentPeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How often to retry deferred mutations.
**Default:** `10s` |
+| `--replicationProcessID` | `mylogical` | `UINT32` | The replication process ID to report to the source database.
**Default:** `10` |
+| `--retireOffset` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How long to delay removal of applied mutations.
**Default:** `24h0m0s` |
+| `--retryInitialBackoff` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Initial delay before the first retry attempt when applying a mutation to the target database fails due to a retryable error, such as contention or a temporary unique constraint violation.
**Default:** `25ms` |
+| `--retryMaxBackoff` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Maximum delay between retry attempts when applying mutations to the target database fails due to retryable errors.
**Default:** `2s` |
+| `--retryMultiplier` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | Multiplier that controls how quickly the backoff interval increases between successive retries of failed applies to the target database.
**Default:** `2` |
+| `--scanSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The number of rows to retrieve from the staging database used to store metadata for replication.
**Default:** `10000` |
+| `--schemaRefresh` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How often a watcher will refresh its schema. If this value is zero or negative, refresh behavior will be disabled.
**Default:** `1m0s` |
+| `--scn` | `oraclelogminer` | `INT` | **Required** the first time `replicator` is run. The snapshot System Change Number (SCN) from the initial data load, which provides a replication marker for streaming changes. |
+| `--scnWindowSize` | `oraclelogminer` | `INT` | The maximum size of SCN bounds per pull iteration from LogMiner. This helps prevent timeout errors when processing large SCN ranges. Set to `0` or a negative value to disable the cap.
**Default:** `3250` |
+| `--slotName` | `pglogical` | `STRING` | **Required.** PostgreSQL replication slot name. Must match the slot name specified with `--pglogical-replication-slot-name` in the [MOLT Fetch command]({% link molt/molt-fetch.md %}#load-before-replication).
**Default:** `"replicator"` |
+| `--sourceConn` | `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | The source database's connection string. When replicating from Oracle, this is the connection string of the Oracle container database (CDB). |
+| `--sourcePDBConn` | `oraclelogminer` | `STRING` | Connection string for the Oracle pluggable database (PDB). Only required when using an [Oracle multitenant configuration](https://docs.oracle.com/en/database/oracle/oracle-database/21/cncpt/CDBs-and-PDBs.html). [`--sourceConn`](#source-conn) **must** be included. |
+| `--sourceSchema` | `oraclelogminer` | `STRING` | **Required.** Source schema name on Oracle where tables will be replicated from. |
+| `--stageDisableCreateTableReaderIndex` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `BOOL` | Disable the creation of partial covering indexes to improve read performance on staging tables. Set to `true` if creating indexes on existing tables would cause a significant operational impact.
**Default:** `false` |
+| `--stageMarkAppliedLimit` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | Limit the number of mutations to be marked applied in a single statement.
**Default:** `100000` |
+| `--stageSanityCheckPeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How often to validate staging table apply order (`-1` to disable).
**Default:** `10m0s` |
+| `--stageSanityCheckWindow` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How far back to look when validating staging table apply order.
**Default:** `1h0m0s` |
+| `--stageUnappliedPeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How often to report the number of unapplied mutations in staging tables (`-1` to disable).
**Default:** `1m0s` |
+| `--stagingConn` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | The staging database's connection string. |
+| `--stagingCreateSchema` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `BOOL` | Automatically create the staging schema if it does not exist. |
+| `--stagingIdleTime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Maximum lifetime of an idle connection.
**Default:** `1m0s` |
+| `--stagingJitterTime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The time over which to jitter database pool disconnections.
**Default:** `15s` |
+| `--stagingMaxLifetime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The maximum lifetime of a database connection.
**Default:** `5m0s` |
+| `--stagingMaxPoolSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The maximum number of staging database connections.
**Default:** `128` |
+| `--stagingSchema` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | Name of the CockroachDB schema that stores replication metadata. **Required** each time `replicator` is rerun after being interrupted, as the schema contains a checkpoint table that enables replication to resume from the correct transaction.
**Default:** `_replicator.public` |
+| `--standbyTimeout` | `pglogical` | `DURATION` | How often to report WAL progress to the source server.
**Default:** `5s` |
+| `--targetApplyQueueSize` | `pglogical`, `oraclelogminer` | `INT` | Size of the apply queue that buffers mutations before they are written to the target database. Larger values can improve throughput, but increase memory usage. This flag applies only to PostgreSQL and Oracle sources, and replaces the deprecated `--copierChannel` and `--stageCopierChannelSize` flags. |
+| `--targetConn` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | The target database's connection string. |
+| `--targetIdleTime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | Maximum lifetime of an idle connection.
**Default:** `1m0s` |
+| `--targetJitterTime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The time over which to jitter database pool disconnections.
**Default:** `15s` |
+| `--targetMaxLifetime` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | The maximum lifetime of a database connection.
**Default:** `5m0s` |
+| `--targetMaxPoolSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The maximum number of target database connections.
**Default:** `128` |
+| `--targetSchema` | `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | **Required.** The SQL database schema in the target cluster to update. CockroachDB schema names must be fully qualified in the format `database.schema`. |
+| `--targetStatementCacheSize` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The maximum number of prepared statements to retain.
**Default:** `128` |
+| `--taskGracePeriod` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `DURATION` | How long to allow for task cleanup when recovering from errors.
**Default:** `1m0s` |
+| `--timestampLimit` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `INT` | The maximum number of source timestamps to coalesce into a target transaction.
**Default:** `1000` |
+| `--tlsCertificate` | `start` | `STRING` | A path to a PEM-encoded TLS certificate chain. |
+| `--tlsPrivateKey` | `start` | `STRING` | A path to a PEM-encoded TLS private key. |
+| `--tlsSelfSigned` | `start` | `BOOL` | If true, generate a self-signed TLS certificate valid for `localhost`. |
+| `--userscript` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `STRING` | The path to a TypeScript configuration script. For example, `--userscript 'script.ts'`. |
+| `-v`, `--verbose` | `start`, `pglogical`, `mylogical`, `oraclelogminer` | `COUNT` | Increase logging verbosity. Use `-v` for `debug` logging or `-vv` for `trace` logging. |
diff --git a/src/current/molt/replicator-metrics.md b/src/current/molt/replicator-metrics.md
new file mode 100644
index 00000000000..1a2e50845ea
--- /dev/null
+++ b/src/current/molt/replicator-metrics.md
@@ -0,0 +1,307 @@
+---
+title: Replicator Metrics
+summary: Learn how to monitor stages of the MOLT Replicator pipeline.
+toc: true
+docs_area: migrate
+---
+
+[MOLT Replicator]({% link molt/molt-replicator.md %}) exposes Prometheus metrics at each stage of the [replication pipeline](#replication-pipeline). When using Replicator to perform [forward replication]({% link molt/migrate-load-replicate.md %}#start-replicator) or [failback]({% link molt/migrate-failback.md %}), you should monitor the health of each relevant pipeline stage to quickly detect issues.
+
+This page describes and provides usage guidelines for Replicator metrics, according to the replication source:
+
+- PostgreSQL
+- MySQL
+- Oracle
+- CockroachDB (during [failback]({% link molt/migrate-failback.md %}))
+
+