You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For CockroachDB-to-CockroachDB migrations, use [backup and restore]({% link {{ site.current_cloud_version }}/backup.md %}) with MOLT Replicator. Contact your account team for guidance.
2
+
For CockroachDB-to-CockroachDB migrations, contact your account team for guidance.
Copy file name to clipboardExpand all lines: src/current/_includes/molt/molt-troubleshooting.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,6 @@
1
1
## Troubleshooting
2
2
3
+
{% if page.name != "migrate-resume-replication.md" %}
3
4
### Fetch issues
4
5
5
6
##### Fetch exits early due to mismatches
@@ -41,7 +42,7 @@ GRANT SELECT, FLASHBACK ON migration_schema.orders TO C##MIGRATION_USER;
41
42
42
43
##### Table or view does not exist
43
44
44
-
If the Oracle migration user lacks privileges on certain tables, you may receive errors stating that the table or view does not exist. Either use `--table-filter` to [limit the tables to be migrated](#schema-and-table-filtering), or grant the migration user `SELECT` privileges on all objects in the schema. Refer to [Create migration user on source database](#create-migration-user-on-source-database).
45
+
If the Oracle migration user lacks privileges on certain tables, you may receive errors stating that the table or view does not exist. Either use `--table-filter` to {% if page.name == "migrate-resume-replication.md" %}[limit the tables to be migrated]({% link molt/migrate-load-replicate.md %}#schema-and-table-filtering){% else %}[limit the tables to be migrated](#schema-and-table-filtering){% endif %}, or grant the migration user `SELECT` privileges on all objects in the schema. Refer to {% if page.name == "migrate-resume-replication.md" %}[Create migration user on source database]({% link molt/migrate-load-replicate.md %}#create-migration-user-on-source-database){% else %}[Create migration user on source database](#create-migration-user-on-source-database){% endif %}.
45
46
46
47
{% if page.name != "migrate-bulk-load.md" %}
47
48
##### Missing redo logs or unavailable SCN
@@ -80,6 +81,7 @@ If you shut down `molt` or `replicator` unexpectedly (e.g., with `kill -9` or a
80
81
81
82
Replace `sid`and`serial#`in the preceding statement with the values returned by the `SELECT` query.
82
83
</section>
84
+
{% endif %}
83
85
84
86
{% if page.name!="migrate-bulk-load.md" %}
85
87
### Replicator issues
@@ -128,7 +130,7 @@ Dropping a replication slot can be destructive and delete data that is not yet r
128
130
run CREATE PUBLICATION molt_fetch FOR ALL TABLES;
129
131
~~~
130
132
131
-
**Resolution:**[Create the publication](#configure-source-database-for-replication) on the source database. Ensure you also create the replication slot:
133
+
**Resolution:**{% if page.name == "migrate-resume-replication.md" %}[Create the publication]({% link molt/migrate-load-replicate.md %}#configure-source-database-for-replication){% else %}[Create the publication](#configure-source-database-for-replication){% endif %} on the source database. Ensure you also create the replication slot:
132
134
133
135
{% include_cached copy-clipboard.html %}
134
136
~~~sql
@@ -150,7 +152,7 @@ could not connect to source database: failed to connect to `user=migration_user
150
152
run SELECT pg_create_logical_replication_slot('molt_slot', 'pgoutput'); in source database
151
153
~~~
152
154
153
-
**Resolution:**[Create the replication slot](#configure-source-database-for-replication) or verify the correct slot name:
155
+
**Resolution:**{% if page.name == "migrate-resume-replication.md" %}[Create the replication slot]({% link molt/migrate-load-replicate.md %}#configure-source-database-for-replication){% else %}[Create the replication slot](#configure-source-database-for-replication){% endif %} or verify the correct slot name:
|`--slotName`|**Required.** PostgreSQL replication slot name. Must match the slot name specified with `--pglogical-replication-slot-name` in the [MOLT Fetch command](#start-fetch). |
8
+
|`--targetSchema`|**Required.** Target schema name on CockroachDB where tables will be replicated. |
9
+
|`--stagingSchema`|**Required.** Staging schema name for replication metadata and checkpoints. |
10
+
|`--stagingCreateSchema`| Automatically create the staging schema if it does not exist. Include this flag when starting replication for the first time. |
11
+
|`--metricsAddr`| Enable Prometheus metrics at a specified `{host}:{port}`. Metrics are served at `http://{host}:{port}/_/varz`. |
|`--targetSchema`|**Required.** Target schema name on CockroachDB where tables will be replicated. |
15
-
|`--defaultGTIDSet`|**Required.** Default GTID set for changefeed. |
16
-
|`--fetchMetadata`| Explicitly fetch column metadata for MySQL versions that do not support `binlog_row_metadata`. Requires `SELECT` permissions on the source database or `PROCESS` privileges. |
17
-
|`--metricsAddr`| Enable Prometheus metrics at a specified `{host}:{port}`. Metrics are served at `http://{host}:{port}/_/varz`. |
18
-
|`--userscript`| Path to a userscript that enables table filtering from MySQL sources. Refer to [Table filter userscript](#table-filter-userscript). |
|`--targetSchema`|**Required.** Target schema name on CockroachDB where tables will be replicated. |
18
+
|`--defaultGTIDSet`|**Required.** Default GTID set for changefeed. |
19
+
|`--stagingSchema`|**Required.** Staging schema name for replication metadata and checkpoints. |
20
+
|`--stagingCreateSchema`| Automatically create the staging schema if it does not exist. Include this flag when starting replication for the first time. |
21
+
|`--fetchMetadata`| Explicitly fetch column metadata for MySQL versions that do not support `binlog_row_metadata`. Requires `SELECT` permissions on the source database or `PROCESS` privileges. |
22
+
|`--metricsAddr`| Enable Prometheus metrics at a specified `{host}:{port}`. Metrics are served at `http://{host}:{port}/_/varz`. |
23
+
|`--userscript`| Path to a userscript that enables table filtering from MySQL sources. Refer to [Table filter userscript](#table-filter-userscript). |
19
24
20
25
Replication from MySQL requires `--defaultGTIDSet`, which sets the starting GTID for replication. You can find this value in the `cdc_cursor` field of the `fetch complete` message after the [initial data load](#start-fetch) completes.
|`--targetSchema`|**Required.** Target schema name on CockroachDB where tables will be replicated. |
27
-
|`--sourceSchema`|**Required.** Source schema name on Oracle where tables will be replicated from. |
28
-
|`--scn`|**Required.** Snapshot System Change Number (SCN) for the initial changefeed starting point. |
29
-
|`--backfillFromSCN`|**Required.** SCN of the earliest active transaction at the time of the snapshot. Ensures no transactions are skipped. |
30
-
|`--metricsAddr`| Enable Prometheus metrics at a specified `{host}:{port}`. Metrics are served at `http://{host}:{port}/_/varz`. |
31
-
|`--userscript`| Path to a userscript that enables table filtering from Oracle sources. Refer to [Table filter userscript](#table-filter-userscript). |
|`--sourceSchema`|**Required.** Source schema name on Oracle where tables will be replicated from. |
32
+
|`--targetSchema`|**Required.** Target schema name on CockroachDB where tables will be replicated. |
33
+
|`--scn`|**Required.** Snapshot System Change Number (SCN) for the initial changefeed starting point. |
34
+
|`--backfillFromSCN`|**Required.** SCN of the earliest active transaction at the time of the snapshot. Ensures no transactions are skipped. |
35
+
|`--stagingSchema`|**Required.** Staging schema name for replication metadata and checkpoints. |
36
+
|`--stagingCreateSchema`| Automatically create the staging schema if it does not exist. Include this flag when starting replication for the first time. |
37
+
|`--metricsAddr`| Enable Prometheus metrics at a specified `{host}:{port}`. Metrics are served at `http://{host}:{port}/_/varz`. |
38
+
|`--userscript`| Path to a userscript that enables table filtering from Oracle sources. Refer to [Table filter userscript](#table-filter-userscript). |
32
39
33
40
Replication from Oracle requires `--sourceSchema`, `--scn`, and `--backfillFromSCN`. The `--sourceSchema` specifies the Oracle schema to replicate from, while `--scn` and `--backfillFromSCN` specify the snapshot SCN and the earliest active transaction SCN, respectively. You can find the SCN values in the message `replication-only mode should include the following replicator flags` after the [initial data load](#start-fetch) completes.
34
41
</section>
@@ -39,38 +46,11 @@ Replication from Oracle requires `--sourceSchema`, `--scn`, and `--backfillFromS
39
46
|`--stagingSchema`|**Required.** Staging schema name for the changefeed checkpoint table. |
40
47
|`--metricsAddr`| Enable Prometheus metrics at a specified `{host}:{port}`. Metrics are served at `http://{host}:{port}/_/varz`. |
41
48
42
-
Resuming replication requires `--stagingSchema`, which specifies the staging schema name used as a checkpoint. MOLT Fetch [logs the staging schema name]({% link molt/migrate-load-replicate.md %}#start-replicator) as the `staging database name` when it starts replication. For example:
49
+
Resuming replication requires `--stagingSchema`, which specifies the staging schema name used as a checkpoint. The staging schema was created during [initial replication setup]({% link molt/migrate-load-replicate.md %}#start-replicator) with `--stagingCreateSchema`.
When using `--table-filter`, you must also include `--userscript`. Refer to [Table filter userscript]({% link molt/migrate-load-replicate.md %}?filters=mysql#table-filter-userscript).
When using `--table-filter`, you must also include `--userscript`. Refer to [Table filter userscript]({% link molt/migrate-load-replicate.md %}?filters=oracle#table-filter-userscript).
When using `--table-filter`, you must also include `--userscript`. Refer to [Table filter userscript](#table-filter-userscript).
53
+
When using `--table-filter`, you must also include `--userscript`. Refer to [Table filter userscript]({% link molt/migrate-load-replicate.md %}#table-filter-userscript).
0 commit comments