From 0c632c259a95b329f1d792baf92fd62f5a10cf08 Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Wed, 3 Jan 2024 11:18:58 -0800 Subject: [PATCH 1/5] [DOC-3514] Add warning about reusing an incompatible store directory (#18162) * [DOC-3514] Add warning about reusing an incompatible store directory --------- Co-authored-by: Kathryn Hancox <44557882+kathancox@users.noreply.github.com> --- src/current/v22.2/start-a-local-cluster.md | 8 +++++++- src/current/v23.1/start-a-local-cluster.md | 8 +++++++- src/current/v23.2/start-a-local-cluster.md | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/current/v22.2/start-a-local-cluster.md b/src/current/v22.2/start-a-local-cluster.md index 2a1caa742f3..2bce041816f 100644 --- a/src/current/v22.2/start-a-local-cluster.md +++ b/src/current/v22.2/start-a-local-cluster.md @@ -16,7 +16,13 @@ Once you've [installed CockroachDB](install-cockroachdb.html), it's simple to ru - Make sure you have already [installed CockroachDB](install-cockroachdb.html). - For quick SQL testing or app development, consider [running a single-node cluster](cockroach-start-single-node.html) instead. -- Note that running multiple nodes on a single host is useful for testing CockroachDB, but it's not suitable for production. To run a physically distributed cluster, see [Manual Deployment](manual-deployment.html) or [Orchestrated Deployment](kubernetes-overview.html), and review the [Production Checklist](recommended-production-settings.html). +- Running multiple nodes on a single host is useful for testing CockroachDB, but it's not suitable for production. To run a physically distributed cluster, refer to [Manual Deployment](manual-deployment.html) or [Orchestrated Deployment](kubernetes-overview.html), and review the [Production Checklist](recommended-production-settings.html). + +{{site.data.alerts.callout_danger}} +Reusing a previously initialized store when starting a new cluster is not recommended. If the store is incompatible with either the new CockroachDB binary or the new cluster configuration, this can lead to panics or other problems when starting a cluster. Instead, either move or delete the previous store directory before starting the `cockroach` process. An example of an incompatible configuration is if the new cluster is started with the `--start-single-node` flag, which disables replication, when the cluster configuration in the store has replication enabled. + +The store directory is `cockroach-data/` in the same directory as the `cockroach` command by default, or the location passed to the `--store` flag otherwise. For details about configuring the store location, refer to [cockroach start]({% link {{ page.version.version }}/cockroach-start.md %}#store). +{{site.data.alerts.end}} ## Step 1. Start the cluster diff --git a/src/current/v23.1/start-a-local-cluster.md b/src/current/v23.1/start-a-local-cluster.md index 4f2e529a700..7f792f89cbb 100644 --- a/src/current/v23.1/start-a-local-cluster.md +++ b/src/current/v23.1/start-a-local-cluster.md @@ -16,7 +16,13 @@ Once you've [installed CockroachDB]({% link {{ page.version.version }}/install-c - Make sure you have already [installed CockroachDB]({% link {{ page.version.version }}/install-cockroachdb.md %}). - For quick SQL testing or app development, consider [running a single-node cluster]({% link {{ page.version.version }}/cockroach-start-single-node.md %}) instead. -- Note that running multiple nodes on a single host is useful for testing CockroachDB, but it's not suitable for production. To run a physically distributed cluster, see [Manual Deployment]({% link {{ page.version.version }}/manual-deployment.md %}) or [Orchestrated Deployment]({% link {{ page.version.version }}/kubernetes-overview.md %}), and review the [Production Checklist]({% link {{ page.version.version }}/recommended-production-settings.md %}). +- Running multiple nodes on a single host is useful for testing CockroachDB, but it's not suitable for production. To run a physically distributed cluster, refer to [Manual Deployment]({% link {{ page.version.version }}/manual-deployment.md %}) or [Orchestrated Deployment]({% link {{ page.version.version }}/kubernetes-overview.md %}), and review the [Production Checklist]({% link {{ page.version.version }}/recommended-production-settings.md %}). + +{{site.data.alerts.callout_danger}} +Reusing a previously initialized store when starting a new cluster is not recommended. If the store is incompatible with either the new CockroachDB binary or the new cluster configuration, this can lead to panics or other problems when starting a cluster. Instead, either move or delete the previous store directory before starting the `cockroach` process. An example of an incompatible configuration is if the new cluster is started with the `--start-single-node` flag, which disables replication, when the cluster configuration in the store has replication enabled. + +The store directory is `cockroach-data/` in the same directory as the `cockroach` command by default, or the location passed to the `--store` flag otherwise. For details about configuring the store location, refer to [cockroach start]({% link {{ page.version.version }}/cockroach-start.md %}#store). +{{site.data.alerts.end}} ## Step 1. Start the cluster diff --git a/src/current/v23.2/start-a-local-cluster.md b/src/current/v23.2/start-a-local-cluster.md index 8e4ef0a1e2b..c16ef3d12a1 100644 --- a/src/current/v23.2/start-a-local-cluster.md +++ b/src/current/v23.2/start-a-local-cluster.md @@ -16,7 +16,13 @@ Once you've [installed CockroachDB]({% link {{ page.version.version }}/install-c - Make sure you have already [installed CockroachDB]({% link {{ page.version.version }}/install-cockroachdb.md %}). - For quick SQL testing or app development, consider [running a single-node cluster]({% link {{ page.version.version }}/cockroach-start-single-node.md %}) instead. -- Note that running multiple nodes on a single host is useful for testing CockroachDB, but it's not suitable for production. To run a physically distributed cluster, see [Manual Deployment]({% link {{ page.version.version }}/manual-deployment.md %}) or [Orchestrated Deployment]({% link {{ page.version.version }}/kubernetes-overview.md %}), and review the [Production Checklist]({% link {{ page.version.version }}/recommended-production-settings.md %}). +- Running multiple nodes on a single host is useful for testing CockroachDB, but it's not suitable for production. To run a physically distributed cluster, refer to [Manual Deployment]({% link {{ page.version.version }}/manual-deployment.md %}) or [Orchestrated Deployment]({% link {{ page.version.version }}/kubernetes-overview.md %}), and review the [Production Checklist]({% link {{ page.version.version }}/recommended-production-settings.md %}). + +{{site.data.alerts.callout_danger}} +Reusing a previously initialized store when starting a new cluster is not recommended. If the store is incompatible with either the new CockroachDB binary or the new cluster configuration, this can lead to panics or other problems when starting a cluster. Instead, either move or delete the previous store directory before starting the `cockroach` process. An example of an incompatible configuration is if the new cluster is started with the `--start-single-node` flag, which disables replication, when the cluster configuration in the store has replication enabled. + +The store directory is `cockroach-data/` in the same directory as the `cockroach` command by default, or the location passed to the `--store` flag otherwise. For details about configuring the store location, refer to [cockroach start]({% link {{ page.version.version }}/cockroach-start.md %}#store). +{{site.data.alerts.end}} ## Step 1. Start the cluster From c06ed5a4c54dbf93b69b18eadcfd52161c86ee35 Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Wed, 3 Jan 2024 11:21:50 -0800 Subject: [PATCH 2/5] [DOC-3439] Improve the recommendation against running multiple nodes on the same hardware (#18171) --- .../prod-deployment/topology-recommendations.md | 13 ++++++++++--- .../prod-deployment/topology-recommendations.md | 11 +++++++++-- .../prod-deployment/topology-recommendations.md | 11 +++++++++-- src/current/v22.2/cockroach-start.md | 11 +++++++++++ src/current/v23.1/cockroach-start.md | 11 +++++++++++ src/current/v23.2/cockroach-start.md | 11 +++++++++++ 6 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/current/_includes/v22.2/prod-deployment/topology-recommendations.md b/src/current/_includes/v22.2/prod-deployment/topology-recommendations.md index 31384079cec..ace0add257f 100644 --- a/src/current/_includes/v22.2/prod-deployment/topology-recommendations.md +++ b/src/current/_includes/v22.2/prod-deployment/topology-recommendations.md @@ -1,6 +1,13 @@ -- Run each node on a separate machine. Since CockroachDB replicates across nodes, running more than one node per machine increases the risk of data loss if a machine fails. Likewise, if a machine has multiple disks or SSDs, run one node with multiple `--store` flags and not one node per disk. For more details about stores, see [Start a Node](cockroach-start.html#store). +- Do not run multiple node processes on the same VM or machine. This defeats CockroachDB's replication and causes the system to be a single point of failure. Instead, start each node on a separate VM or machine. +- To start a node with multiple disks or SSDs, you can use either of these approaches: + - Configure the disks or SSDs as a single RAID volume, then pass the RAID volume to the `--store` flag when starting the `cockroach` process on the node. + - Provide a separate `--store` flag for each disk when starting the `cockroach` process on the node. For more details about stores, see [Start a Node]({% link {{ page.version.version }}/cockroach-start.md %}#store). -- When starting each node, use the [`--locality`](cockroach-start.html#locality) flag to describe the node's location, for example, `--locality=region=west,zone=us-west-1`. The key-value pairs should be ordered from most to least inclusive, and the keys and order of key-value pairs must be the same on all nodes. + {{site.data.alerts.callout_danger}} + If you start a node with multiple `--store` flags, it is not possible to scale back down to only using a single store on the node. Instead, you must decommission the node and start a new node with the updated `--store`. + {{site.data.alerts.end}} + +- When starting each node, use the [`--locality`]({% link {{ page.version.version }}/cockroach-start.md %}#locality) flag to describe the node's location, for example, `--locality=region=west,zone=us-west-1`. The key-value pairs should be ordered from most to least inclusive, and the keys and order of key-value pairs must be the same on all nodes. - When deploying in a single availability zone: @@ -16,4 +23,4 @@ - When deploying across multiple regions: - - To be able to tolerate the failure of 1 entire region, use at least 3 regions. \ No newline at end of file + - To be able to tolerate the failure of 1 entire region, use at least 3 regions. diff --git a/src/current/_includes/v23.1/prod-deployment/topology-recommendations.md b/src/current/_includes/v23.1/prod-deployment/topology-recommendations.md index cf68bbecc52..b6cdfdb7510 100644 --- a/src/current/_includes/v23.1/prod-deployment/topology-recommendations.md +++ b/src/current/_includes/v23.1/prod-deployment/topology-recommendations.md @@ -1,4 +1,11 @@ -- Run each node on a separate machine. Since CockroachDB replicates across nodes, running more than one node per machine increases the risk of data loss if a machine fails. Likewise, if a machine has multiple disks or SSDs, run one node with multiple `--store` flags and not one node per disk. For more details about stores, see [Start a Node]({% link {{ page.version.version }}/cockroach-start.md %}#store). +- Do not run multiple node processes on the same VM or machine. This defeats CockroachDB's replication and causes the system to be a single point of failure. Instead, start each node on a separate VM or machine. +- To start a node with multiple disks or SSDs, you can use either of these approaches: + - Configure the disks or SSDs as a single RAID volume, then pass the RAID volume to the `--store` flag when starting the `cockroach` process on the node. + - Provide a separate `--store` flag for each disk when starting the `cockroach` process on the node. For more details about stores, see [Start a Node]({% link {{ page.version.version }}/cockroach-start.md %}#store). + + {{site.data.alerts.callout_danger}} + If you start a node with multiple `--store` flags, it is not possible to scale back down to only using a single store on the node. Instead, you must decommission the node and start a new node with the updated `--store`. + {{site.data.alerts.end}} - When starting each node, use the [`--locality`]({% link {{ page.version.version }}/cockroach-start.md %}#locality) flag to describe the node's location, for example, `--locality=region=west,zone=us-west-1`. The key-value pairs should be ordered from most to least inclusive, and the keys and order of key-value pairs must be the same on all nodes. @@ -16,4 +23,4 @@ - When deploying across multiple regions: - - To be able to tolerate the failure of 1 entire region, use at least 3 regions. \ No newline at end of file + - To be able to tolerate the failure of 1 entire region, use at least 3 regions. diff --git a/src/current/_includes/v23.2/prod-deployment/topology-recommendations.md b/src/current/_includes/v23.2/prod-deployment/topology-recommendations.md index cf68bbecc52..b6cdfdb7510 100644 --- a/src/current/_includes/v23.2/prod-deployment/topology-recommendations.md +++ b/src/current/_includes/v23.2/prod-deployment/topology-recommendations.md @@ -1,4 +1,11 @@ -- Run each node on a separate machine. Since CockroachDB replicates across nodes, running more than one node per machine increases the risk of data loss if a machine fails. Likewise, if a machine has multiple disks or SSDs, run one node with multiple `--store` flags and not one node per disk. For more details about stores, see [Start a Node]({% link {{ page.version.version }}/cockroach-start.md %}#store). +- Do not run multiple node processes on the same VM or machine. This defeats CockroachDB's replication and causes the system to be a single point of failure. Instead, start each node on a separate VM or machine. +- To start a node with multiple disks or SSDs, you can use either of these approaches: + - Configure the disks or SSDs as a single RAID volume, then pass the RAID volume to the `--store` flag when starting the `cockroach` process on the node. + - Provide a separate `--store` flag for each disk when starting the `cockroach` process on the node. For more details about stores, see [Start a Node]({% link {{ page.version.version }}/cockroach-start.md %}#store). + + {{site.data.alerts.callout_danger}} + If you start a node with multiple `--store` flags, it is not possible to scale back down to only using a single store on the node. Instead, you must decommission the node and start a new node with the updated `--store`. + {{site.data.alerts.end}} - When starting each node, use the [`--locality`]({% link {{ page.version.version }}/cockroach-start.md %}#locality) flag to describe the node's location, for example, `--locality=region=west,zone=us-west-1`. The key-value pairs should be ordered from most to least inclusive, and the keys and order of key-value pairs must be the same on all nodes. @@ -16,4 +23,4 @@ - When deploying across multiple regions: - - To be able to tolerate the failure of 1 entire region, use at least 3 regions. \ No newline at end of file + - To be able to tolerate the failure of 1 entire region, use at least 3 regions. diff --git a/src/current/v22.2/cockroach-start.md b/src/current/v22.2/cockroach-start.md index f5eb1051769..281c3444c23 100644 --- a/src/current/v22.2/cockroach-start.md +++ b/src/current/v22.2/cockroach-start.md @@ -192,6 +192,17 @@ The `--storage-engine` flag is used to choose the storage engine used by the nod #### Store +The `--store` flag allows you to specify details about a node's storage. + +To start a node with multiple disks or SSDs, you can use either of these approaches: + +- Configure the disks or SSDs as a single RAID volume, then pass the RAID volume to the `--store` flag when starting the `cockroach` process on the node. +- Provide a separate `--store` flag for each disk when starting the `cockroach` process on the node. For more details about stores, see [Start a Node]({% link {{ page.version.version }}/cockroach-start.md %}#store). + + {{site.data.alerts.callout_danger}} + If you start a node with multiple `--store` flags, it is not possible to scale back down to only using a single store on the node. Instead, you must decommission the node and start a new node with the updated `--store`. + {{site.data.alerts.end}} + The `--store` flag supports the following fields. Note that commas are used to separate fields, and so are forbidden in all field values. {{site.data.alerts.callout_info}} diff --git a/src/current/v23.1/cockroach-start.md b/src/current/v23.1/cockroach-start.md index ddd2c15ee42..b5a6edfc203 100644 --- a/src/current/v23.1/cockroach-start.md +++ b/src/current/v23.1/cockroach-start.md @@ -194,6 +194,17 @@ The `--storage-engine` flag is used to choose the storage engine used by the nod #### Store +The `--store` flag allows you to specify details about a node's storage. + +To start a node with multiple disks or SSDs, you can use either of these approaches: + +- Configure the disks or SSDs as a single RAID volume, then pass the RAID volume to the `--store` flag when starting the `cockroach` process on the node. +- Provide a separate `--store` flag for each disk when starting the `cockroach` process on the node. For more details about stores, see [Start a Node]({% link {{ page.version.version }}/cockroach-start.md %}#store). + + {{site.data.alerts.callout_danger}} + If you start a node with multiple `--store` flags, it is not possible to scale back down to only using a single store on the node. Instead, you must decommission the node and start a new node with the updated `--store`. + {{site.data.alerts.end}} + The `--store` flag supports the following fields. Note that commas are used to separate fields, and so are forbidden in all field values. {{site.data.alerts.callout_info}} diff --git a/src/current/v23.2/cockroach-start.md b/src/current/v23.2/cockroach-start.md index cdc4c84f0f2..73303badf01 100644 --- a/src/current/v23.2/cockroach-start.md +++ b/src/current/v23.2/cockroach-start.md @@ -194,6 +194,17 @@ The `--storage-engine` flag is used to choose the storage engine used by the nod #### Store +The `--store` flag allows you to specify details about a node's storage. + +To start a node with multiple disks or SSDs, you can use either of these approaches: + +- Configure the disks or SSDs as a single RAID volume, then pass the RAID volume to the `--store` flag when starting the `cockroach` process on the node. +- Provide a separate `--store` flag for each disk when starting the `cockroach` process on the node. For more details about stores, see [Start a Node]({% link {{ page.version.version }}/cockroach-start.md %}#store). + + {{site.data.alerts.callout_danger}} + If you start a node with multiple `--store` flags, it is not possible to scale back down to only using a single store on the node. Instead, you must decommission the node and start a new node with the updated `--store`. + {{site.data.alerts.end}} + The `--store` flag supports the following fields. Note that commas are used to separate fields, and so are forbidden in all field values. {{site.data.alerts.callout_info}} From 74096efdf760e114315df45132fcfe3c4e159d7b Mon Sep 17 00:00:00 2001 From: Kathryn Hancox <44557882+kathancox@users.noreply.github.com> Date: Wed, 3 Jan 2024 17:50:16 -0500 Subject: [PATCH 3/5] Add reference to metrics on primary and standby during cutover (#18149) --- .../v23.2/physical-cluster-replication-monitoring.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/current/v23.2/physical-cluster-replication-monitoring.md b/src/current/v23.2/physical-cluster-replication-monitoring.md index f728af37e45..88b236e1f98 100644 --- a/src/current/v23.2/physical-cluster-replication-monitoring.md +++ b/src/current/v23.2/physical-cluster-replication-monitoring.md @@ -15,13 +15,17 @@ docs_area: manage - The [Physical Replication dashboard](#db-console) on the DB Console. - [Prometheus and Alertmanager](#prometheus) to track and alert on replication metrics. +When you complete a [cutover]({% link {{ page.version.version }}/cutover-replication.md %}), there will be a gap in the primary cluster's metrics whether you are monitoring via the [DB Console](#db-console) or [Prometheus](#prometheus). + +The standby cluster will also require separate monitoring to ensure observability during the cutover period. You can use the DB console to track the relevant metrics, or you can use a tool like [Grafana]({% link {{ page.version.version }}/monitor-cockroachdb-with-prometheus.md %}#step-5-visualize-metrics-in-grafana) to create two separate dashboards, one for each cluster, or a single dashboard with data from both clusters. + ## SQL Shell In the standby cluster's SQL shell, you can query `SHOW VIRTUAL CLUSTER ... WITH REPLICATION STATUS` for detail on status and timestamps for planning [cutover]({% link {{ page.version.version }}/cutover-replication.md %}): {% include_cached copy-clipboard.html %} ~~~ sql - SHOW VIRTUAL CLUSTER standbyapplication WITH REPLICATION STATUS; +SHOW VIRTUAL CLUSTER standbyapplication WITH REPLICATION STATUS; ~~~ Refer to [Responses](#responses) for a description of each field. From 4e0b1a06e3eea886934136cd688e84b1e3e99661 Mon Sep 17 00:00:00 2001 From: Steven Danna Date: Thu, 4 Jan 2024 14:44:48 +0000 Subject: [PATCH 4/5] remove replication lag graph (#18187) --- src/current/images/v23.2/ui-replication-lag.png | Bin 96574 -> 0 bytes .../physical-cluster-replication-monitoring.md | 13 +------------ 2 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 src/current/images/v23.2/ui-replication-lag.png diff --git a/src/current/images/v23.2/ui-replication-lag.png b/src/current/images/v23.2/ui-replication-lag.png deleted file mode 100644 index 3b05c691de98827689d10adcfa122c76bbb9c03d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96574 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 OK9|hE=gWS*j`=U^! - -The **Replication Lag** graph shows you the amount of time the replication is behind the current time. - -Hovering over the graph displays: - -- The date and time. -- The amount of time in seconds the replication is behind the current date and time. +The **Physical Cluster Replication** dashboard contains graphs for monitoring: ### Logical bytes From b03333af99b5afd9c59ac1b9a2ef687bac083402 Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Thu, 4 Jan 2024 14:00:55 -0500 Subject: [PATCH 5/5] add log export to DMS migration config (#18183) * add log export to DMS migration config --- src/current/v22.2/aws-dms.md | 12 +++++++++--- src/current/v23.1/aws-dms.md | 12 +++++++++--- src/current/v23.2/aws-dms.md | 12 +++++++++--- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/current/v22.2/aws-dms.md b/src/current/v22.2/aws-dms.md index d1f2b7cd3c6..eb5e85831ed 100644 --- a/src/current/v22.2/aws-dms.md +++ b/src/current/v22.2/aws-dms.md @@ -17,7 +17,7 @@ Using CockroachDB as a source database within AWS DMS is unsupported. ## Before you begin -Complete the following items before starting this tutorial: +Complete the following items before starting the DMS migration: - Configure a [replication instance](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) in AWS. - Configure a [source endpoint](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) in AWS pointing to your source database. @@ -36,6 +36,8 @@ Complete the following items before starting this tutorial: This prevents a potential issue when migrating especially large tables with millions of rows. +- If you are migrating to CockroachDB {{ site.data.products.dedicated }}, enable [CockroachDB log export to Amazon CloudWatch]({% link cockroachcloud/export-logs.md %}). This makes CockroachDB logs accessible for [troubleshooting](#troubleshooting-common-issues). You will also need to select [**Enable CloudWatch logs** in your DMS task settings](#step-2-2-task-settings). + - If you are migrating to a CockroachDB {{ site.data.products.cloud }} cluster and plan to [use replication as part of your migration strategy](#step-2-1-task-configuration), you must first **disable** [revision history for cluster backups](take-backups-with-revision-history-and-restore-from-a-point-in-time.html) for the migration to succeed. {{site.data.alerts.callout_danger}} You will not be able to run a [point-in-time restore](take-backups-with-revision-history-and-restore-from-a-point-in-time.html#point-in-time-restore) as long as revision history for cluster backups is disabled. Once you [verify that the migration succeeded](#step-3-verify-the-migration), you should re-enable revision history. @@ -203,8 +205,12 @@ The `BatchApplyEnabled` setting can improve replication performance and is recom - For visibility into migration problems: - - Check the `SQL_EXEC` [logging channel](logging-overview.html#logging-channels) for log messages related to `COPY` statements and the tables you are migrating. - - Check the [Amazon CloudWatch logs that you configured](#step-2-2-task-settings) for messages containing `SQL_ERROR`. + - Check the [Amazon CloudWatch logs that you enabled](#step-2-2-task-settings) for messages containing `SQL_ERROR`. + - Check the CockroachDB [`SQL_EXEC` logs]({% link {{ page.version.version }}/logging-overview.md %}#logging-channels) for messages related to `COPY` statements and the tables you are migrating. To access CockroachDB {{ site.data.products.dedicated }} logs, you should have configured log export to Amazon CloudWatch [before beginning the DMS migration](#before-you-begin). + + {{site.data.alerts.callout_danger}} + Personally identifiable information (PII) may be exported to CloudWatch unless you [redact the logs]({% link {{ page.version.version }}/configure-logs.md %}#redact-logs). Redacting logs may hide the data that is causing the issue, making it more difficult to troubleshoot. + {{site.data.alerts.end}} - If you encounter errors like the following: diff --git a/src/current/v23.1/aws-dms.md b/src/current/v23.1/aws-dms.md index fd627d2659c..35f9487e0eb 100644 --- a/src/current/v23.1/aws-dms.md +++ b/src/current/v23.1/aws-dms.md @@ -17,7 +17,7 @@ Using CockroachDB as a source database within AWS DMS is unsupported. ## Before you begin -Complete the following items before starting this tutorial: +Complete the following items before starting the DMS migration: - Configure a [replication instance](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) in AWS. - Configure a [source endpoint](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) in AWS pointing to your source database. @@ -36,6 +36,8 @@ Complete the following items before starting this tutorial: This prevents a potential issue when migrating especially large tables with millions of rows. +- If you are migrating to CockroachDB {{ site.data.products.dedicated }}, enable [CockroachDB log export to Amazon CloudWatch]({% link cockroachcloud/export-logs.md %}). This makes CockroachDB logs accessible for [troubleshooting](#troubleshooting-common-issues). You will also need to select [**Enable CloudWatch logs** in your DMS task settings](#step-2-2-task-settings). + - If you are migrating to a CockroachDB {{ site.data.products.cloud }} cluster and plan to [use replication as part of your migration strategy](#step-2-1-task-configuration), you must first **disable** [revision history for cluster backups]({% link {{ page.version.version }}/take-backups-with-revision-history-and-restore-from-a-point-in-time.md %}) for the migration to succeed. {{site.data.alerts.callout_danger}} You will not be able to run a [point-in-time restore]({% link {{ page.version.version }}/take-backups-with-revision-history-and-restore-from-a-point-in-time.md %}#point-in-time-restore) as long as revision history for cluster backups is disabled. Once you [verify that the migration succeeded](#step-3-verify-the-migration), you should re-enable revision history. @@ -197,8 +199,12 @@ The `BatchApplyEnabled` setting can improve replication performance and is recom - For visibility into migration problems: - - Check the `SQL_EXEC` [logging channel]({% link {{ page.version.version }}/logging-overview.md %}#logging-channels) for log messages related to `COPY` statements and the tables you are migrating. - - Check the [Amazon CloudWatch logs that you configured](#step-2-2-task-settings) for messages containing `SQL_ERROR`. + - Check the [Amazon CloudWatch logs that you enabled](#step-2-2-task-settings) for messages containing `SQL_ERROR`. + - Check the CockroachDB [`SQL_EXEC` logs]({% link {{ page.version.version }}/logging-overview.md %}#logging-channels) for messages related to `COPY` statements and the tables you are migrating. To access CockroachDB {{ site.data.products.dedicated }} logs, you should have configured log export to Amazon CloudWatch [before beginning the DMS migration](#before-you-begin). + + {{site.data.alerts.callout_danger}} + Personally identifiable information (PII) may be exported to CloudWatch unless you [redact the logs]({% link {{ page.version.version }}/configure-logs.md %}#redact-logs). Redacting logs may hide the data that is causing the issue, making it more difficult to troubleshoot. + {{site.data.alerts.end}} - If you encounter errors like the following: diff --git a/src/current/v23.2/aws-dms.md b/src/current/v23.2/aws-dms.md index ae7fef22253..c93606df585 100644 --- a/src/current/v23.2/aws-dms.md +++ b/src/current/v23.2/aws-dms.md @@ -17,7 +17,7 @@ Using CockroachDB as a source database within AWS DMS is unsupported. ## Before you begin -Complete the following items before starting this tutorial: +Complete the following items before starting the DMS migration: - Configure a [replication instance](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) in AWS. - Configure a [source endpoint](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) in AWS pointing to your source database. @@ -36,6 +36,8 @@ Complete the following items before starting this tutorial: This prevents a potential issue when migrating especially large tables with millions of rows. +- If you are migrating to CockroachDB {{ site.data.products.dedicated }}, enable [CockroachDB log export to Amazon CloudWatch]({% link cockroachcloud/export-logs.md %}). This makes CockroachDB logs accessible for [troubleshooting](#troubleshooting-common-issues). You will also need to select [**Enable CloudWatch logs** in your DMS task settings](#step-2-2-task-settings). + - If you are migrating to a CockroachDB {{ site.data.products.cloud }} cluster and plan to [use replication as part of your migration strategy](#step-2-1-task-configuration), you must first **disable** [revision history for cluster backups]({% link {{ page.version.version }}/take-backups-with-revision-history-and-restore-from-a-point-in-time.md %}) for the migration to succeed. {{site.data.alerts.callout_danger}} You will not be able to run a [point-in-time restore]({% link {{ page.version.version }}/take-backups-with-revision-history-and-restore-from-a-point-in-time.md %}#point-in-time-restore) as long as revision history for cluster backups is disabled. Once you [verify that the migration succeeded](#step-3-verify-the-migration), you should re-enable revision history. @@ -197,8 +199,12 @@ The `BatchApplyEnabled` setting can improve replication performance and is recom - For visibility into migration problems: - - Check the `SQL_EXEC` [logging channel]({% link {{ page.version.version }}/logging-overview.md %}#logging-channels) for log messages related to `COPY` statements and the tables you are migrating. - - Check the [Amazon CloudWatch logs that you configured](#step-2-2-task-settings) for messages containing `SQL_ERROR`. + - Check the [Amazon CloudWatch logs that you enabled](#step-2-2-task-settings) for messages containing `SQL_ERROR`. + - Check the CockroachDB [`SQL_EXEC` logs]({% link {{ page.version.version }}/logging-overview.md %}#logging-channels) for messages related to `COPY` statements and the tables you are migrating. To access CockroachDB {{ site.data.products.dedicated }} logs, you should have configured log export to Amazon CloudWatch [before beginning the DMS migration](#before-you-begin). + + {{site.data.alerts.callout_danger}} + Personally identifiable information (PII) may be exported to CloudWatch unless you [redact the logs]({% link {{ page.version.version }}/configure-logs.md %}#redact-logs). Redacting logs may hide the data that is causing the issue, making it more difficult to troubleshoot. + {{site.data.alerts.end}} - If you encounter errors like the following: