This feature is in and subject to change. To share feedback and/or issues, contact Support.
CREATE VIRTUAL CLUSTER statement creates a new virtual cluster. It is supported only starting a .
PCR happens between an active primary cluster and a passive standby cluster that accepts updates from the primary cluster. The unit of replication is a virtual cluster, which is part of the underlying infrastructure in the primary and standby clusters. The CockroachDB cluster has:
- The system virtual cluster manages the cluster’s control plane and the replication of the cluster’s data. Admins connect to the system virtual cluster to configure and manage the underlying CockroachDB cluster, set up PCR, create and manage a virtual cluster, and observe metrics and logs for the CockroachDB cluster and each virtual cluster.
- Each other virtual cluster manages its own data plane. Users connect to a virtual cluster by default, rather than the system virtual cluster. To connect to the system virtual cluster, the connection string must be modified. Virtual clusters contain user data and run application workloads. When PCR is enabled, the non-system virtual cluster on both primary and secondary clusters is named
main.
Required privileges
CREATE VIRTUAL CLUSTER requires one of the following privileges:
- The
adminrole. - The
MANAGEVIRTUALCLUSTERallows the user to run all the relatedVIRTUAL CLUSTERSQL statements for PCR.
Synopsis
<?xml version=“1.0” encoding=“UTF-8”?>Parameters
| Parameter | Description |
|---|---|
virtual_cluster_name | The name for the new virtual cluster. |
LIKE virtual_cluster_spec | Creates a virtual cluster with the same capabilities and settings as another virtual cluster. |
primary_virtual_cluster | The name of the primary’s virtual cluster to replicate. |
primary_connection_string | The PostgreSQL connection string to the primary cluster. Refer to Connection string for more detail. |
replication_options_list | Options to modify the PCR streams. Refer to Options. |
Options
| Option | Description |
|---|---|
READ VIRTUAL CLUSTER | () Create a on the standby cluster, which allows reads of the standby’s replicating virtual cluster. For an example, refer to Start a PCR stream with read from standby. |
Connection string
When you from the standby cluster, it is necessary to pass a connection string to the system virtual cluster on the primary cluster:| Value | Description |
|---|---|
The user on the primary cluster that has the REPLICATION system privilege. Refer to the for more detail. | |
| The replication user’s password. | |
| The node IP address or hostname of any node from the primary cluster. | |
options=ccluster=system | The parameter to connect to the system virtual cluster on the primary cluster. |
sslmode=verify-full | The verify-full secure connection type. |
sslrootcert={primary cert} | The path to the primary cluster’s CA certificate on the standby cluster. |
Capabilities
Cockroach Labs does not recommend changing the default capabilities of created virtual clusters.
LIKE to ensure other virtual clusters on the standby cluster will work in the same way. LIKE will refer to a virtual cluster on the CockroachDB cluster you’re running the statement from.
Examples
Start a PCR stream
To start a PCR stream to the standby of the primary’s virtual cluster:main virtual cluster in the standby cluster. The standby’s system virtual cluster will connect to the primary cluster to initiate the PCR job. For details on the PCR stream, refer to the for SHOW VIRTUAL CLUSTER.
Start a PCR stream with read from standby
While physical cluster replication (PCR) is generally available, using the
READ VIRTUAL CLUSTER option to read from a standby cluster is in .READ VIRTUAL CLUSTER option to set up a PCR stream that also creates a read-only virtual cluster on the standby cluster. You can create a PCR job as per the guide and then add the option to the CREATE VIRTUAL CLUSTER statement:
- The
mainvirtual cluster, which is accepting writes from the primary cluster. - The
main-readonlyvirtual cluster, which is a read-only version of themainvirtual cluster.
readonly virtual cluster:
You can only read data on the created
readonly virtual cluster, other operations like SHOW VIRTUAL CLUSTERS must be run from the system virtual cluster. To connect to the readonly virtual cluster, refer to the .READ VIRTUAL CLUSTER option, failing over with SYSTEM TIME will destroy the readonly virtual cluster. If you fail over with LATEST, the readonly virtual cluster will remain on the original standby cluster, but will not update with new writes. Use to remove the readonly virtual cluster.
For details on adding a read-only virtual cluster after a failback, refer to the page.

