From 90bf4d9ffff337798064a4b992025af8bd9e3714 Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Mon, 6 Oct 2025 13:19:18 -0400 Subject: [PATCH 01/11] Added new pages Added new pages and added them to the TOC --- .../cross-cluster-replication.json | 6 ++ .../cross-cluster-replication.json | 6 ++ src/current/v25.3/read-from-standby.md | 100 ++++++++++++++++++ src/current/v25.4/read-from-standby.md | 100 ++++++++++++++++++ 4 files changed, 212 insertions(+) create mode 100644 src/current/v25.3/read-from-standby.md create mode 100644 src/current/v25.4/read-from-standby.md diff --git a/src/current/_includes/v25.3/sidebar-data/cross-cluster-replication.json b/src/current/_includes/v25.3/sidebar-data/cross-cluster-replication.json index 925e3e2aca9..d9ee279f835 100644 --- a/src/current/_includes/v25.3/sidebar-data/cross-cluster-replication.json +++ b/src/current/_includes/v25.3/sidebar-data/cross-cluster-replication.json @@ -58,6 +58,12 @@ "/${VERSION}/physical-cluster-replication-monitoring.html" ] }, + { + "title": "Read From Standby", + "urls": [ + "/${VERSION}/read-from-standby.html" + ] + }, { "title": "Technical Overview", "urls": [ diff --git a/src/current/_includes/v25.4/sidebar-data/cross-cluster-replication.json b/src/current/_includes/v25.4/sidebar-data/cross-cluster-replication.json index 925e3e2aca9..d9ee279f835 100644 --- a/src/current/_includes/v25.4/sidebar-data/cross-cluster-replication.json +++ b/src/current/_includes/v25.4/sidebar-data/cross-cluster-replication.json @@ -58,6 +58,12 @@ "/${VERSION}/physical-cluster-replication-monitoring.html" ] }, + { + "title": "Read From Standby", + "urls": [ + "/${VERSION}/read-from-standby.html" + ] + }, { "title": "Technical Overview", "urls": [ diff --git a/src/current/v25.3/read-from-standby.md b/src/current/v25.3/read-from-standby.md new file mode 100644 index 00000000000..5f156bd4fe4 --- /dev/null +++ b/src/current/v25.3/read-from-standby.md @@ -0,0 +1,100 @@ +--- +title: Read from Standby +summary: Direct read-only queries to your standby cluster. +toc: true +docs_area: manage +--- + +In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for disaster recovery, CockroachDB **physical cluster replication (PCR)** allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. + +Use this page to understand how the **read from standby** feature works and how to utilize it. + +## How the read from standby feature works + +PCR utilizes cluster virtualization to separate clusters' control planes from their data planes. A cluster always has one control plane, called a _system virtual cluster (SystemVC)_, and at least one data plane, called an _App Virtual Cluster (AppVC)_. A cluster's SystemVC manages PCR jobs and cluster metadata, and is not used for application queries. All data tables, system tables, and cluster settings in the standby cluster's AppVC are identical to the primary cluster's AppVC. The standby cluster's AppVC itself remains offline during replication. + +When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC does not store any data itself, so it does not require extra disk space. + +The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate. Other system tables and cluster settings are set to defaults in the ReaderVC. + +In the event of failover, the ReaderVC's response depends on the type of failover. After failover to the latest timestamp, the ReaderVC continues pointing to the AppVC but stops receiving updates. After failover to a point-in-time timestamp, the ReaderVC is destroyed. + +## Use the read from standby feature +### Before you begin + +Prior to setting up read from standby, ensure that: + +- you have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication %}). +- your CockroachDB version is v24.3 or later. The `read from standby` option is not supported in earlier versions. + +### Start a PCR stream with read from standby + +To start a PCR stream that allows read access to the standby cluster, use the `CREATE VIRTUAL CLUSTER ... REPLICATION` statement with the `READ VIRTUAL CLUSTER` option: + +{% include_cached copy-clipboard.html %} +~~~ sql +CREATE VIRTUAL CLUSTER main FROM REPLICATION OF main ON 'postgresql://{connection string to primary}' WITH READ VIRTUAL CLUSTER; +~~~ + +### Add read from standby to a PCR stream + +To add read from standby capabilities to an existing PCR stream, use the `ALTER VIRTUAL CLUSTER` statement: + +{% include_cached copy-clipboard.html %} +~~~ sql +ALTER VIRTUAL CLUSTER main SET REPLICATION READ VIRTUAL CLUSTER; +~~~ + +### Check the status of your reader virtual cluster + +To confirm that your reader virtual cluster is active: + +{% include_cached copy-clipboard.html %} +~~~ sql +SHOW VIRTUAL CLUSTERS; +~~~ + +The output shows a `standby-readonly` virtual cluster in addition to the primary and standby clusters: + +~~~ + id | name | data_state | service_mode +-----+------------------+-------------+--------------- + 1 | system | ready | shared + 3 | standby | replicating | none + 4 | standby-readonly | ready | shared +~~~ + +### Run read-only queries on the standby cluster + +Once you have created a reader virtual cluster on the standby cluster, you can connect to it and run read (`SELECT`) queries. For example: + +{% include_cached copy-clipboard.html %} +~~~ sql +SELECT COUNT(*) FROM customers; +SELECT region, SUM(amount) FROM orders GROUP BY region; +~~~ + +The results of queries on the standby cluster reflect the state of the primary cluster as of the replicated time. + +{{ site.data.alerts.callout_info }} +Write operations are not permitted on the standby cluster. +{{ site.data.alerts.end }} + +### Monitor replication lag + +Reading from the standby cluster may return slightly stale data due to replication lag between the primary cluster and the standby cluster. You can monitor replication lag to understand how current the data in the standby cluster is. To check the standby cluster's replication status: + +{% include_cached copy-clipboard.html %} +~~~ sql +SHOW VIRTUAL CLUSTER REPLICATION STATUS ; +~~~ + +The output provides the following information: +- the replication status of the standby cluster +- the timestamp of the most recently applied event on the standby cluster +- any lag relative to the primary cluster + +## See also +- [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}) +- [Fail Over from a Primary Cluster to a Standby Cluster]({% link {{ page.version.version }}/failover-replication.md %}) +- [`CREATE VIRTUAL CLUSTER`]({% link {{ page.version.version }}/create-virtual-cluster.md %}) \ No newline at end of file diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md new file mode 100644 index 00000000000..2db755a675d --- /dev/null +++ b/src/current/v25.4/read-from-standby.md @@ -0,0 +1,100 @@ +--- +title: Read from Standby +summary: Direct read-only queries to your standby cluster. +toc: true +docs_area: manage +--- + +In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for disaster recovery, CockroachDB **physical cluster replication (PCR)** allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. + +Use this page to understand how the **read from standby** feature works and how to utilize it. + +## How the read from standby feature works + +PCR utilizes cluster virtualization to separate clusters' control planes from their data planes. A cluster always has one control plane, called a _system virtual cluster (SystemVC)_, and at least one data plane, called an _App Virtual Cluster (AppVC)_. A cluster's SystemVC manages PCR jobs and cluster metadata, and is not used for application queries. All data tables, system tables, and cluster settings in the standby cluster's AppVC are identical to the primary cluster's AppVC. The standby cluster's AppVC itself remains offline during replication. + +When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC does not store any data itself, so it does not require extra disk space. + +The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate. Other system tables and cluster settings are set to defaults in the ReaderVC. + +In the event of failover, the ReaderVC is destroyed. + +## Use the read from standby feature +### Before you begin + +Prior to setting up read from standby, ensure that: + +- you have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication %}). +- your CockroachDB version is v24.3 or later. The `read from standby` option is not supported in earlier versions. + +### Start a PCR stream with read from standby + +To start a PCR stream that allows read access to the standby cluster, use the `CREATE VIRTUAL CLUSTER ... REPLICATION` statement with the `READ VIRTUAL CLUSTER` option: + +{% include_cached copy-clipboard.html %} +~~~ sql +CREATE VIRTUAL CLUSTER main FROM REPLICATION OF main ON 'postgresql://{connection string to primary}' WITH READ VIRTUAL CLUSTER; +~~~ + +### Add read from standby to a PCR stream + +To add read from standby capabilities to an existing PCR stream, use the `ALTER VIRTUAL CLUSTER` statement: + +{% include_cached copy-clipboard.html %} +~~~ sql +ALTER VIRTUAL CLUSTER main SET REPLICATION READ VIRTUAL CLUSTER; +~~~ + +### Check the status of your reader virtual cluster + +To confirm that your reader virtual cluster is active: + +{% include_cached copy-clipboard.html %} +~~~ sql +SHOW VIRTUAL CLUSTERS; +~~~ + +The output shows a `standby-readonly` virtual cluster in addition to the primary and standby clusters: + +~~~ + id | name | data_state | service_mode +-----+------------------+-------------+--------------- + 1 | system | ready | shared + 3 | standby | replicating | none + 4 | standby-readonly | ready | shared +~~~ + +### Run read-only queries on the standby cluster + +Once you have created a reader virtual cluster on the standby cluster, you can connect to it and run read (`SELECT`) queries. For example: + +{% include_cached copy-clipboard.html %} +~~~ sql +SELECT COUNT(*) FROM customers; +SELECT region, SUM(amount) FROM orders GROUP BY region; +~~~ + +The results of queries on the standby cluster reflect the state of the primary cluster as of the replicated time. + +{{ site.data.alerts.callout_info }} +Write operations are not permitted on the standby cluster. +{{ site.data.alerts.end }} + +### Monitor replication lag + +Reading from the standby cluster may return slightly stale data due to replication lag between the primary cluster and the standby cluster. You can monitor replication lag to understand how current the data in the standby cluster is. To check the standby cluster's replication status: + +{% include_cached copy-clipboard.html %} +~~~ sql +SHOW VIRTUAL CLUSTER REPLICATION STATUS ; +~~~ + +The output provides the following information: +- the replication status of the standby cluster +- the timestamp of the most recently applied event on the standby cluster +- any lag relative to the primary cluster + +## See also +- [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}) +- [Fail Over from a Primary Cluster to a Standby Cluster]({% link {{ page.version.version }}/failover-replication.md %}) +- [`CREATE VIRTUAL CLUSTER`]({% link {{ page.version.version }}/create-virtual-cluster.md %}) \ No newline at end of file From 1e90a6f50270f0b791b9acbd42de56aded6175ee Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Mon, 6 Oct 2025 13:46:12 -0400 Subject: [PATCH 02/11] Fixed broken links Fixed broken links --- src/current/v25.3/read-from-standby.md | 2 +- src/current/v25.4/read-from-standby.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/current/v25.3/read-from-standby.md b/src/current/v25.3/read-from-standby.md index 5f156bd4fe4..b8e47aac336 100644 --- a/src/current/v25.3/read-from-standby.md +++ b/src/current/v25.3/read-from-standby.md @@ -24,7 +24,7 @@ In the event of failover, the ReaderVC's response depends on the type of failove Prior to setting up read from standby, ensure that: -- you have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication %}). +- you have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}). - your CockroachDB version is v24.3 or later. The `read from standby` option is not supported in earlier versions. ### Start a PCR stream with read from standby diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md index 2db755a675d..64266474455 100644 --- a/src/current/v25.4/read-from-standby.md +++ b/src/current/v25.4/read-from-standby.md @@ -24,7 +24,7 @@ In the event of failover, the ReaderVC is destroyed. Prior to setting up read from standby, ensure that: -- you have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication %}). +- you have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}). - your CockroachDB version is v24.3 or later. The `read from standby` option is not supported in earlier versions. ### Start a PCR stream with read from standby From 1690300786fdf69c73f4c6bf22148a4e2b17433c Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Mon, 6 Oct 2025 14:05:02 -0400 Subject: [PATCH 03/11] Lengthened summary Build was failing because summary was too short --- src/current/v25.3/read-from-standby.md | 2 +- src/current/v25.4/read-from-standby.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/current/v25.3/read-from-standby.md b/src/current/v25.3/read-from-standby.md index b8e47aac336..d7b6798d363 100644 --- a/src/current/v25.3/read-from-standby.md +++ b/src/current/v25.3/read-from-standby.md @@ -1,6 +1,6 @@ --- title: Read from Standby -summary: Direct read-only queries to your standby cluster. +summary: Direct read-only queries to your standby cluster instead of your primary cluster. toc: true docs_area: manage --- diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md index 64266474455..9e548b1ac06 100644 --- a/src/current/v25.4/read-from-standby.md +++ b/src/current/v25.4/read-from-standby.md @@ -1,6 +1,6 @@ --- title: Read from Standby -summary: Direct read-only queries to your standby cluster. +summary: Direct read-only queries to your standby cluster instead of your primary cluster. toc: true docs_area: manage --- From fbe26dec3fe544ff85da24c292b16949c530e464 Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Thu, 9 Oct 2025 15:51:09 -0400 Subject: [PATCH 04/11] Changes from review Small changes based on tech review --- src/current/v25.3/read-from-standby.md | 12 ++++++------ src/current/v25.4/read-from-standby.md | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/current/v25.3/read-from-standby.md b/src/current/v25.3/read-from-standby.md index d7b6798d363..2c28760fafc 100644 --- a/src/current/v25.3/read-from-standby.md +++ b/src/current/v25.3/read-from-standby.md @@ -5,17 +5,17 @@ toc: true docs_area: manage --- -In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for disaster recovery, CockroachDB **physical cluster replication (PCR)** allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. +In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for disaster recovery, [**physical cluster replication (PCR)**]({% link {{ page.version.version }}/physical-cluster-replication-overview.md %}) allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. -Use this page to understand how the **read from standby** feature works and how to utilize it. +Use this page to understand how the _read from standby_ feature works and how to utilize it. ## How the read from standby feature works -PCR utilizes cluster virtualization to separate clusters' control planes from their data planes. A cluster always has one control plane, called a _system virtual cluster (SystemVC)_, and at least one data plane, called an _App Virtual Cluster (AppVC)_. A cluster's SystemVC manages PCR jobs and cluster metadata, and is not used for application queries. All data tables, system tables, and cluster settings in the standby cluster's AppVC are identical to the primary cluster's AppVC. The standby cluster's AppVC itself remains offline during replication. +PCR utilizes [cluster virtualization]({% link {{ page.version.version }}/cluster-virtualization-overview.md %}) to separate a cluster's control plane from its data plane. A cluster always has one control plane, called a _system virtual cluster (SystemVC)_, and at least one data plane, called an _App Virtual Cluster (AppVC)_. The standby cluster's SystemVC manages the PCR job and other cluster metadata, and is not used for application queries. All data tables, system tables, and cluster settings in the standby cluster's AppVC are identical to the primary cluster's AppVC. The standby cluster's AppVC itself remains offline during replication. -When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC does not store any data itself, so it does not require extra disk space. +When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC itself only stores a few GB of metadata and no user data, so it does not require much extra disk space. -The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate. Other system tables and cluster settings are set to defaults in the ReaderVC. +The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate using the same users and roles as on the primary cluster's AppVC. Other system tables and cluster settings are set to defaults in the ReaderVC. In the event of failover, the ReaderVC's response depends on the type of failover. After failover to the latest timestamp, the ReaderVC continues pointing to the AppVC but stops receiving updates. After failover to a point-in-time timestamp, the ReaderVC is destroyed. @@ -54,7 +54,7 @@ To confirm that your reader virtual cluster is active: SHOW VIRTUAL CLUSTERS; ~~~ -The output shows a `standby-readonly` virtual cluster in addition to the primary and standby clusters: +The output shows a `standby-readonly` virtual cluster in addition to the systemVC and AppVC: ~~~ id | name | data_state | service_mode diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md index 9e548b1ac06..65e7da2a40d 100644 --- a/src/current/v25.4/read-from-standby.md +++ b/src/current/v25.4/read-from-standby.md @@ -5,17 +5,17 @@ toc: true docs_area: manage --- -In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for disaster recovery, CockroachDB **physical cluster replication (PCR)** allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. +In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for disaster recovery, [**physical cluster replication (PCR)**]({% link {{ page.version.version }}/physical-cluster-replication-overview.md %}) allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. -Use this page to understand how the **read from standby** feature works and how to utilize it. +Use this page to understand how the _read from standby_ feature works and how to utilize it. ## How the read from standby feature works -PCR utilizes cluster virtualization to separate clusters' control planes from their data planes. A cluster always has one control plane, called a _system virtual cluster (SystemVC)_, and at least one data plane, called an _App Virtual Cluster (AppVC)_. A cluster's SystemVC manages PCR jobs and cluster metadata, and is not used for application queries. All data tables, system tables, and cluster settings in the standby cluster's AppVC are identical to the primary cluster's AppVC. The standby cluster's AppVC itself remains offline during replication. +PCR utilizes [cluster virtualization]({% link {{ page.version.version }}/cluster-virtualization-overview.md %}) to separate a cluster's control plane from its data plane. A cluster always has one control plane, called a _system virtual cluster (SystemVC)_, and at least one data plane, called an _App Virtual Cluster (AppVC)_. The standby cluster's SystemVC manages the PCR job and other cluster metadata, and is not used for application queries. All data tables, system tables, and cluster settings in the standby cluster's AppVC are identical to the primary cluster's AppVC. The standby cluster's AppVC itself remains offline during replication. -When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC does not store any data itself, so it does not require extra disk space. +When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC itself only stores a few GB of metadata and no user data, so it does not require much extra disk space. -The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate. Other system tables and cluster settings are set to defaults in the ReaderVC. +The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate using the same users and roles as on the primary cluster's AppVC. Other system tables and cluster settings are set to defaults in the ReaderVC. In the event of failover, the ReaderVC is destroyed. @@ -54,7 +54,7 @@ To confirm that your reader virtual cluster is active: SHOW VIRTUAL CLUSTERS; ~~~ -The output shows a `standby-readonly` virtual cluster in addition to the primary and standby clusters: +The output shows a `standby-readonly` virtual cluster in addition to the systemVC and AppVC: ~~~ id | name | data_state | service_mode From 1cc6642e161b058dda35c432d9d3d367d273d58c Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Tue, 14 Oct 2025 10:52:58 -0400 Subject: [PATCH 05/11] Additional changes from review Additional changes from review --- src/current/v25.3/read-from-standby.md | 8 ++++++++ src/current/v25.4/read-from-standby.md | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/current/v25.3/read-from-standby.md b/src/current/v25.3/read-from-standby.md index 2c28760fafc..aea215597e0 100644 --- a/src/current/v25.3/read-from-standby.md +++ b/src/current/v25.3/read-from-standby.md @@ -45,6 +45,10 @@ To add read from standby capabilities to an existing PCR stream, use the `ALTER ALTER VIRTUAL CLUSTER main SET REPLICATION READ VIRTUAL CLUSTER; ~~~ +{{site.data.alerts.callout_info}} +This command only works if the standby cluster's AppVC has a status of `replicating`. Use the `SHOW VIRTUAL CLUSTERS` command to check the status of the AppVC. +{{site.data.alerts.end}} + ### Check the status of your reader virtual cluster To confirm that your reader virtual cluster is active: @@ -64,6 +68,10 @@ The output shows a `standby-readonly` virtual cluster in addition to the systemV 4 | standby-readonly | ready | shared ~~~ +{{site.data.alerts.callout_info}} +The ReaderVC cannot serve reads until after the PCR initial scan is complete. After completing the initial scan, wait until the ReaderVC's `service_mode` is `shared`, then wait about one minute before connecting to the ReaderVC. +{{site.data.alerts.end}} + ### Run read-only queries on the standby cluster Once you have created a reader virtual cluster on the standby cluster, you can connect to it and run read (`SELECT`) queries. For example: diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md index 65e7da2a40d..a68151b739a 100644 --- a/src/current/v25.4/read-from-standby.md +++ b/src/current/v25.4/read-from-standby.md @@ -45,6 +45,10 @@ To add read from standby capabilities to an existing PCR stream, use the `ALTER ALTER VIRTUAL CLUSTER main SET REPLICATION READ VIRTUAL CLUSTER; ~~~ +{{site.data.alerts.callout_info}} +This command only works if the standby cluster's AppVC has a status of `replicating`. Use the `SHOW VIRTUAL CLUSTERS` command to check the status of the AppVC. +{{site.data.alerts.end}} + ### Check the status of your reader virtual cluster To confirm that your reader virtual cluster is active: @@ -64,6 +68,10 @@ The output shows a `standby-readonly` virtual cluster in addition to the systemV 4 | standby-readonly | ready | shared ~~~ +{{site.data.alerts.callout_info}} +The ReaderVC cannot serve reads until after the PCR initial scan is complete. After completing the initial scan, wait until the ReaderVC's `service_mode` is `shared`, then wait about one minute before connecting to the ReaderVC. +{{site.data.alerts.end}} + ### Run read-only queries on the standby cluster Once you have created a reader virtual cluster on the standby cluster, you can connect to it and run read (`SELECT`) queries. For example: From 435c0415d9ad878cc46ca519ce6df38763c2536d Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Tue, 14 Oct 2025 11:29:56 -0400 Subject: [PATCH 06/11] Small wording changes Small wording changes --- src/current/v25.3/read-from-standby.md | 4 ++-- src/current/v25.4/read-from-standby.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/current/v25.3/read-from-standby.md b/src/current/v25.3/read-from-standby.md index aea215597e0..e85920b8df1 100644 --- a/src/current/v25.3/read-from-standby.md +++ b/src/current/v25.3/read-from-standby.md @@ -13,7 +13,7 @@ Use this page to understand how the _read from standby_ feature works and how to PCR utilizes [cluster virtualization]({% link {{ page.version.version }}/cluster-virtualization-overview.md %}) to separate a cluster's control plane from its data plane. A cluster always has one control plane, called a _system virtual cluster (SystemVC)_, and at least one data plane, called an _App Virtual Cluster (AppVC)_. The standby cluster's SystemVC manages the PCR job and other cluster metadata, and is not used for application queries. All data tables, system tables, and cluster settings in the standby cluster's AppVC are identical to the primary cluster's AppVC. The standby cluster's AppVC itself remains offline during replication. -When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC itself only stores a few GB of metadata and no user data, so it does not require much extra disk space. +When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC itself only stores a small amount of metadata and no user data, so it is not expected to take up additional storage space. The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate using the same users and roles as on the primary cluster's AppVC. Other system tables and cluster settings are set to defaults in the ReaderVC. @@ -82,7 +82,7 @@ SELECT COUNT(*) FROM customers; SELECT region, SUM(amount) FROM orders GROUP BY region; ~~~ -The results of queries on the standby cluster reflect the state of the primary cluster as of the replicated time. +The results of queries on the standby cluster reflect the state of the primary cluster as of a historical time that approaches the replicated time. {{ site.data.alerts.callout_info }} Write operations are not permitted on the standby cluster. diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md index a68151b739a..b4a351e92fc 100644 --- a/src/current/v25.4/read-from-standby.md +++ b/src/current/v25.4/read-from-standby.md @@ -13,7 +13,7 @@ Use this page to understand how the _read from standby_ feature works and how to PCR utilizes [cluster virtualization]({% link {{ page.version.version }}/cluster-virtualization-overview.md %}) to separate a cluster's control plane from its data plane. A cluster always has one control plane, called a _system virtual cluster (SystemVC)_, and at least one data plane, called an _App Virtual Cluster (AppVC)_. The standby cluster's SystemVC manages the PCR job and other cluster metadata, and is not used for application queries. All data tables, system tables, and cluster settings in the standby cluster's AppVC are identical to the primary cluster's AppVC. The standby cluster's AppVC itself remains offline during replication. -When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC itself only stores a few GB of metadata and no user data, so it does not require much extra disk space. +When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC itself only stores a small amount of metadata and no user data, so it is not expected to take up additional storage space. The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate using the same users and roles as on the primary cluster's AppVC. Other system tables and cluster settings are set to defaults in the ReaderVC. @@ -82,7 +82,7 @@ SELECT COUNT(*) FROM customers; SELECT region, SUM(amount) FROM orders GROUP BY region; ~~~ -The results of queries on the standby cluster reflect the state of the primary cluster as of the replicated time. +The results of queries on the standby cluster reflect the state of the primary cluster as of a historical time that approaches the replicated time. {{ site.data.alerts.callout_info }} Write operations are not permitted on the standby cluster. From 65577b3693309bcbccedb2ccd03ed646628240e9 Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Wed, 15 Oct 2025 16:39:40 -0400 Subject: [PATCH 07/11] Removed monitor replication lag Removed monitor replication lag --- src/current/v25.3/read-from-standby.md | 18 ++---------------- src/current/v25.4/read-from-standby.md | 18 ++---------------- 2 files changed, 4 insertions(+), 32 deletions(-) diff --git a/src/current/v25.3/read-from-standby.md b/src/current/v25.3/read-from-standby.md index e85920b8df1..90762178d50 100644 --- a/src/current/v25.3/read-from-standby.md +++ b/src/current/v25.3/read-from-standby.md @@ -46,7 +46,7 @@ ALTER VIRTUAL CLUSTER main SET REPLICATION READ VIRTUAL CLUSTER; ~~~ {{site.data.alerts.callout_info}} -This command only works if the standby cluster's AppVC has a status of `replicating`. Use the `SHOW VIRTUAL CLUSTERS` command to check the status of the AppVC. +The standby cluster's AppVC must have a status of `replicating` before you can create your ReaderVC. Use the `SHOW VIRTUAL CLUSTERS` command to check the status of the AppVC. {{site.data.alerts.end}} ### Check the status of your reader virtual cluster @@ -82,26 +82,12 @@ SELECT COUNT(*) FROM customers; SELECT region, SUM(amount) FROM orders GROUP BY region; ~~~ -The results of queries on the standby cluster reflect the state of the primary cluster as of a historical time that approaches the replicated time. +The results of queries on the standby cluster reflect the state of the primary cluster as of a historical time that approaches the [replicated time]({% link {{ page.version.version }}/show-virtual-cluster.md %}#show-replication-status). {{ site.data.alerts.callout_info }} Write operations are not permitted on the standby cluster. {{ site.data.alerts.end }} -### Monitor replication lag - -Reading from the standby cluster may return slightly stale data due to replication lag between the primary cluster and the standby cluster. You can monitor replication lag to understand how current the data in the standby cluster is. To check the standby cluster's replication status: - -{% include_cached copy-clipboard.html %} -~~~ sql -SHOW VIRTUAL CLUSTER REPLICATION STATUS ; -~~~ - -The output provides the following information: -- the replication status of the standby cluster -- the timestamp of the most recently applied event on the standby cluster -- any lag relative to the primary cluster - ## See also - [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}) - [Fail Over from a Primary Cluster to a Standby Cluster]({% link {{ page.version.version }}/failover-replication.md %}) diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md index b4a351e92fc..bad96039093 100644 --- a/src/current/v25.4/read-from-standby.md +++ b/src/current/v25.4/read-from-standby.md @@ -46,7 +46,7 @@ ALTER VIRTUAL CLUSTER main SET REPLICATION READ VIRTUAL CLUSTER; ~~~ {{site.data.alerts.callout_info}} -This command only works if the standby cluster's AppVC has a status of `replicating`. Use the `SHOW VIRTUAL CLUSTERS` command to check the status of the AppVC. +The standby cluster's AppVC must have a status of `replicating` before you can create your ReaderVC. Use the `SHOW VIRTUAL CLUSTERS` command to check the status of the AppVC. {{site.data.alerts.end}} ### Check the status of your reader virtual cluster @@ -82,26 +82,12 @@ SELECT COUNT(*) FROM customers; SELECT region, SUM(amount) FROM orders GROUP BY region; ~~~ -The results of queries on the standby cluster reflect the state of the primary cluster as of a historical time that approaches the replicated time. +The results of queries on the standby cluster reflect the state of the primary cluster as of a historical time that approaches the [replicated time]({% link {{ page.version.version }}/show-virtual-cluster.md %}#show-replication-status). {{ site.data.alerts.callout_info }} Write operations are not permitted on the standby cluster. {{ site.data.alerts.end }} -### Monitor replication lag - -Reading from the standby cluster may return slightly stale data due to replication lag between the primary cluster and the standby cluster. You can monitor replication lag to understand how current the data in the standby cluster is. To check the standby cluster's replication status: - -{% include_cached copy-clipboard.html %} -~~~ sql -SHOW VIRTUAL CLUSTER REPLICATION STATUS ; -~~~ - -The output provides the following information: -- the replication status of the standby cluster -- the timestamp of the most recently applied event on the standby cluster -- any lag relative to the primary cluster - ## See also - [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}) - [Fail Over from a Primary Cluster to a Standby Cluster]({% link {{ page.version.version }}/failover-replication.md %}) From fb8d31374696625815840b7d7ac5f46b66179912 Mon Sep 17 00:00:00 2001 From: Peach Leach <87079419+peachdawnleach@users.noreply.github.com> Date: Thu, 16 Oct 2025 17:13:56 -0400 Subject: [PATCH 08/11] Update read-from-standby.md Added link --- src/current/v25.4/read-from-standby.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md index bad96039093..88669d6c1e0 100644 --- a/src/current/v25.4/read-from-standby.md +++ b/src/current/v25.4/read-from-standby.md @@ -5,7 +5,7 @@ toc: true docs_area: manage --- -In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for disaster recovery, [**physical cluster replication (PCR)**]({% link {{ page.version.version }}/physical-cluster-replication-overview.md %}) allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. +In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for [disaster recovery]({% link {{ page.version.version }}/disaster-recovery-overview.md %}), [**physical cluster replication (PCR)**]({% link {{ page.version.version }}/physical-cluster-replication-overview.md %}) allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. Use this page to understand how the _read from standby_ feature works and how to utilize it. @@ -91,4 +91,4 @@ Write operations are not permitted on the standby cluster. ## See also - [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}) - [Fail Over from a Primary Cluster to a Standby Cluster]({% link {{ page.version.version }}/failover-replication.md %}) -- [`CREATE VIRTUAL CLUSTER`]({% link {{ page.version.version }}/create-virtual-cluster.md %}) \ No newline at end of file +- [`CREATE VIRTUAL CLUSTER`]({% link {{ page.version.version }}/create-virtual-cluster.md %}) From b3e5b1d035bc9a61870ea4571f18eca45bbcce3f Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Fri, 17 Oct 2025 12:44:41 -0400 Subject: [PATCH 09/11] Added links Added links --- src/current/v25.3/read-from-standby.md | 16 ++++++++-------- src/current/v25.4/read-from-standby.md | 14 +++++++------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/current/v25.3/read-from-standby.md b/src/current/v25.3/read-from-standby.md index 90762178d50..5422d686478 100644 --- a/src/current/v25.3/read-from-standby.md +++ b/src/current/v25.3/read-from-standby.md @@ -5,7 +5,7 @@ toc: true docs_area: manage --- -In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for disaster recovery, [**physical cluster replication (PCR)**]({% link {{ page.version.version }}/physical-cluster-replication-overview.md %}) allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. +In addition to providing [failover]({% link {{ page.version.version }}/failover-replication.md %}) capabilities for [disaster recovery]({% link {{ page.version.version }}/disaster-recovery-overview.md %}), [**physical cluster replication (PCR)**]({% link {{ page.version.version }}/physical-cluster-replication-overview.md %}) allows you to direct read-only queries to your standby cluster. This process offloads traffic such as application reads, analytics queries, and ad-hoc reporting from the primary cluster. Use this page to understand how the _read from standby_ feature works and how to utilize it. @@ -15,7 +15,7 @@ PCR utilizes [cluster virtualization]({% link {{ page.version.version }}/cluster When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC itself only stores a small amount of metadata and no user data, so it is not expected to take up additional storage space. -The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate using the same users and roles as on the primary cluster's AppVC. Other system tables and cluster settings are set to defaults in the ReaderVC. +The standby cluster's ReaderVC has its own system tables and [cluster settings]({% link {{ page.version.version }}/cluster-settings.md %}). The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate using the same [users and roles]({% link {{ page.version.version }}/security-reference/authorization.md %}) as on the primary cluster's AppVC. Other system tables and cluster settings are set to defaults in the ReaderVC. For more information, consult [Physical Cluster Replication Technical Overview]({% link {{ page.version.version }}/physical-cluster-replication-technical-overview.md %}). In the event of failover, the ReaderVC's response depends on the type of failover. After failover to the latest timestamp, the ReaderVC continues pointing to the AppVC but stops receiving updates. After failover to a point-in-time timestamp, the ReaderVC is destroyed. @@ -24,12 +24,12 @@ In the event of failover, the ReaderVC's response depends on the type of failove Prior to setting up read from standby, ensure that: -- you have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}). -- your CockroachDB version is v24.3 or later. The `read from standby` option is not supported in earlier versions. +- You have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}). +- Your CockroachDB version is v24.3 or later. The `read from standby` option is not supported in earlier versions. ### Start a PCR stream with read from standby -To start a PCR stream that allows read access to the standby cluster, use the `CREATE VIRTUAL CLUSTER ... REPLICATION` statement with the `READ VIRTUAL CLUSTER` option: +To start a PCR stream that allows read access to the standby cluster, use the [`CREATE VIRTUAL CLUSTER ... REPLICATION`]({% link {{ page.version.version }}/create-virtual-cluster.md %}) statement with the `READ VIRTUAL CLUSTER` option: {% include_cached copy-clipboard.html %} ~~~ sql @@ -38,7 +38,7 @@ CREATE VIRTUAL CLUSTER main FROM REPLICATION OF main ON 'postgresql://{connectio ### Add read from standby to a PCR stream -To add read from standby capabilities to an existing PCR stream, use the `ALTER VIRTUAL CLUSTER` statement: +To add read from standby capabilities to an existing PCR stream, use the [`ALTER VIRTUAL CLUSTER`]({% link {{ page.version.version }}/alter-virtual-cluster.md %}) statement: {% include_cached copy-clipboard.html %} ~~~ sql @@ -46,7 +46,7 @@ ALTER VIRTUAL CLUSTER main SET REPLICATION READ VIRTUAL CLUSTER; ~~~ {{site.data.alerts.callout_info}} -The standby cluster's AppVC must have a status of `replicating` before you can create your ReaderVC. Use the `SHOW VIRTUAL CLUSTERS` command to check the status of the AppVC. +The standby cluster's AppVC must have a status of `replicating` before you can create your ReaderVC. Use the [`SHOW VIRTUAL CLUSTERS`]({% link {{ page.version.version }}/show-virtual-cluster.md %}) command to check the status of the AppVC. {{site.data.alerts.end}} ### Check the status of your reader virtual cluster @@ -74,7 +74,7 @@ The ReaderVC cannot serve reads until after the PCR initial scan is complete. Af ### Run read-only queries on the standby cluster -Once you have created a reader virtual cluster on the standby cluster, you can connect to it and run read (`SELECT`) queries. For example: +Once you have created a reader virtual cluster on the standby cluster, you can connect to it and run [read (`SELECT`) queries]({% link {{ page.version.version }}/selection-queries.md %}). For example: {% include_cached copy-clipboard.html %} ~~~ sql diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md index 88669d6c1e0..642f3f06373 100644 --- a/src/current/v25.4/read-from-standby.md +++ b/src/current/v25.4/read-from-standby.md @@ -15,7 +15,7 @@ PCR utilizes [cluster virtualization]({% link {{ page.version.version }}/cluster When using read from standby, applications can read from the standby cluster, but they do not connect directly to the standby cluster's AppVC. Instead, PCR introduces a _reader virtual cluster (ReaderVC)_. The ReaderVC ensures a clean, isolated environment specifically for serving read queries without interfering with replication or system metadata. It reads continuously from the standby cluster's AppVC using internal pointers, providing access to the replicated data while keeping the AppVC offline. The ReaderVC itself only stores a small amount of metadata and no user data, so it is not expected to take up additional storage space. -The standby cluster's ReaderVC has its own system tables and cluster settings. The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate using the same users and roles as on the primary cluster's AppVC. Other system tables and cluster settings are set to defaults in the ReaderVC. +The standby cluster's ReaderVC has its own system tables and [cluster settings]({% link {{ page.version.version }}/cluster-settings.md %}). The ReaderVC replicates a subset of system tables, including **Users** and **Roles**, from the AppVC, so that existing primary users can authenticate using the same [users and roles]({% link {{ page.version.version }}/security-reference/authorization.md %}) as on the primary cluster's AppVC. Other system tables and cluster settings are set to defaults in the ReaderVC. For more information, consult [Physical Cluster Replication Technical Overview]({% link {{ page.version.version }}/physical-cluster-replication-technical-overview.md %}). In the event of failover, the ReaderVC is destroyed. @@ -24,12 +24,12 @@ In the event of failover, the ReaderVC is destroyed. Prior to setting up read from standby, ensure that: -- you have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}). -- your CockroachDB version is v24.3 or later. The `read from standby` option is not supported in earlier versions. +- You have already configured PCR between a _primary_ cluster and a _standby_ cluster. For information on configuring PCR, refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}). +- Your CockroachDB version is v24.3 or later. The `read from standby` option is not supported in earlier versions. ### Start a PCR stream with read from standby -To start a PCR stream that allows read access to the standby cluster, use the `CREATE VIRTUAL CLUSTER ... REPLICATION` statement with the `READ VIRTUAL CLUSTER` option: +To start a PCR stream that allows read access to the standby cluster, use the [`CREATE VIRTUAL CLUSTER ... REPLICATION`]({% link {{ page.version.version }}/create-virtual-cluster.md %}) statement with the `READ VIRTUAL CLUSTER` option: {% include_cached copy-clipboard.html %} ~~~ sql @@ -38,7 +38,7 @@ CREATE VIRTUAL CLUSTER main FROM REPLICATION OF main ON 'postgresql://{connectio ### Add read from standby to a PCR stream -To add read from standby capabilities to an existing PCR stream, use the `ALTER VIRTUAL CLUSTER` statement: +To add read from standby capabilities to an existing PCR stream, use the [`ALTER VIRTUAL CLUSTER`]({% link {{ page.version.version }}/alter-virtual-cluster.md %}) statement: {% include_cached copy-clipboard.html %} ~~~ sql @@ -46,7 +46,7 @@ ALTER VIRTUAL CLUSTER main SET REPLICATION READ VIRTUAL CLUSTER; ~~~ {{site.data.alerts.callout_info}} -The standby cluster's AppVC must have a status of `replicating` before you can create your ReaderVC. Use the `SHOW VIRTUAL CLUSTERS` command to check the status of the AppVC. +The standby cluster's AppVC must have a status of `replicating` before you can create your ReaderVC. Use the [`SHOW VIRTUAL CLUSTERS`]({% link {{ page.version.version }}/show-virtual-cluster.md %}) command to check the status of the AppVC. {{site.data.alerts.end}} ### Check the status of your reader virtual cluster @@ -74,7 +74,7 @@ The ReaderVC cannot serve reads until after the PCR initial scan is complete. Af ### Run read-only queries on the standby cluster -Once you have created a reader virtual cluster on the standby cluster, you can connect to it and run read (`SELECT`) queries. For example: +Once you have created a reader virtual cluster on the standby cluster, you can connect to it and run [read (`SELECT`) queries]({% link {{ page.version.version }}/selection-queries.md %}). For example: {% include_cached copy-clipboard.html %} ~~~ sql From 712ab1fc9b69ad57490f2e297aa656ca98f17480 Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Fri, 17 Oct 2025 12:50:10 -0400 Subject: [PATCH 10/11] Added see also links Added see also links --- src/current/v25.4/read-from-standby.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/current/v25.4/read-from-standby.md b/src/current/v25.4/read-from-standby.md index 642f3f06373..b1cd65b77be 100644 --- a/src/current/v25.4/read-from-standby.md +++ b/src/current/v25.4/read-from-standby.md @@ -91,4 +91,7 @@ Write operations are not permitted on the standby cluster. ## See also - [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}) - [Fail Over from a Primary Cluster to a Standby Cluster]({% link {{ page.version.version }}/failover-replication.md %}) +- [Physical Cluster Replication Technical Overview]({% link {{ page.version.version }}/physical-cluster-replication-technical-overview.md %}) - [`CREATE VIRTUAL CLUSTER`]({% link {{ page.version.version }}/create-virtual-cluster.md %}) +- [`ALTER VIRTUAL CLUSTER`]({% link {{ page.version.version }}/alter-virtual-cluster.md %}) +- [`SHOW VIRTUAL CLUSTER`]({% link {{ page.version.version }}/show-virtual-cluster.md %}) \ No newline at end of file From dfb424c001543cd7ab9bf96b2738c29cbb78b9c1 Mon Sep 17 00:00:00 2001 From: Peach Leach Date: Fri, 17 Oct 2025 12:50:31 -0400 Subject: [PATCH 11/11] Added see also links Added see also links --- src/current/v25.3/read-from-standby.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/current/v25.3/read-from-standby.md b/src/current/v25.3/read-from-standby.md index 5422d686478..681fa6aa91d 100644 --- a/src/current/v25.3/read-from-standby.md +++ b/src/current/v25.3/read-from-standby.md @@ -91,4 +91,7 @@ Write operations are not permitted on the standby cluster. ## See also - [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}) - [Fail Over from a Primary Cluster to a Standby Cluster]({% link {{ page.version.version }}/failover-replication.md %}) -- [`CREATE VIRTUAL CLUSTER`]({% link {{ page.version.version }}/create-virtual-cluster.md %}) \ No newline at end of file +- [Physical Cluster Replication Technical Overview]({% link {{ page.version.version }}/physical-cluster-replication-technical-overview.md %}) +- [`CREATE VIRTUAL CLUSTER`]({% link {{ page.version.version }}/create-virtual-cluster.md %}) +- [`ALTER VIRTUAL CLUSTER`]({% link {{ page.version.version }}/alter-virtual-cluster.md %}) +- [`SHOW VIRTUAL CLUSTER`]({% link {{ page.version.version }}/show-virtual-cluster.md %}) \ No newline at end of file